diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2011-08-29 16:42:15 +0300 |
---|---|---|
committer | Ulf HANSSON <ulf.hansson@stericsson.com> | 2011-10-10 13:43:13 +0200 |
commit | 43d0f1de92c2a3b6b23e1fc739c66d6196085a94 (patch) | |
tree | b083aa61c15104c3083bc9e2777d96aadb52f9a4 /drivers/mmc/core/core.c | |
parent | c5c476f4eee5e73d7da181d4101cac81bd593d86 (diff) |
mmc: block: add eMMC hardware reset support
For cards that support hardware reset (just eMMC), try a reset and
retry before returning an I/O error. However this is not done for
ECC errors and is never done twice for the same operation type
(READ, WRITE, DISCARD, SECURE DISCARD) until that type of operation
again succeeds.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Change-Id: I1de8391f1781501a3a526714135dd2632acb26c5
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33454
Reviewed-by: Ulf HANSSON <ulf.hansson@stericsson.com>
Tested-by: Ulf HANSSON <ulf.hansson@stericsson.com>
Diffstat (limited to 'drivers/mmc/core/core.c')
-rw-r--r-- | drivers/mmc/core/core.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 3466e0f1fbe..9461b38b0aa 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -1558,7 +1558,7 @@ static int mmc_do_erase(struct mmc_card *card, unsigned int from, if (err) { printk(KERN_ERR "mmc_erase: group start error %d, " "status %#x\n", err, cmd.resp[0]); - err = -EINVAL; + err = -EIO; goto out; } @@ -1573,7 +1573,7 @@ static int mmc_do_erase(struct mmc_card *card, unsigned int from, if (err) { printk(KERN_ERR "mmc_erase: group end error %d, status %#x\n", err, cmd.resp[0]); - err = -EINVAL; + err = -EIO; goto out; } |