diff options
author | Kyungmin Park <kyungmin.park@samsung.com> | 2011-10-14 09:15:48 +0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2011-10-27 00:32:26 +0400 |
commit | d9ddd62943ee07a75d0428ffcf52f1a747a28c39 (patch) | |
tree | e4fb8b0b2ba2fe39bf725762b2c04441f1adf3b8 /drivers/mmc/card/block.c | |
parent | 4e0a5adf46ee7810af2e1b7e4e8c2a298652618e (diff) | |
download | linux-d9ddd62943ee07a75d0428ffcf52f1a747a28c39.tar.xz |
mmc: core: mmc sanitize feature support for v4.5
In the v4.5, there's no secure erase & trim support.
Instead it supports the sanitize feature.
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc/card/block.c')
-rw-r--r-- | drivers/mmc/card/block.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index 049445eb4f74..e85816e1634a 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -792,11 +792,18 @@ static int mmc_blk_issue_secdiscard_rq(struct mmc_queue *mq, unsigned int from, nr, arg; int err = 0, type = MMC_BLK_SECDISCARD; - if (!mmc_can_secure_erase_trim(card)) { + if (!(mmc_can_secure_erase_trim(card) || mmc_can_sanitize(card))) { err = -EOPNOTSUPP; goto out; } + /* The sanitize operation is supported at v4.5 only */ + if (mmc_can_sanitize(card)) { + err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, + EXT_CSD_SANITIZE_START, 1, 0); + goto out; + } + from = blk_rq_pos(req); nr = blk_rq_sectors(req); |