Commit 67716327 authored by Adrian Hunter's avatar Adrian Hunter Committed by Chris Ball

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: default avatarAdrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarChris Ball <cjb@laptop.org>
parent 2311344c
This diff is collapsed.
...@@ -1529,7 +1529,7 @@ static int mmc_do_erase(struct mmc_card *card, unsigned int from, ...@@ -1529,7 +1529,7 @@ static int mmc_do_erase(struct mmc_card *card, unsigned int from,
if (err) { if (err) {
printk(KERN_ERR "mmc_erase: group start error %d, " printk(KERN_ERR "mmc_erase: group start error %d, "
"status %#x\n", err, cmd.resp[0]); "status %#x\n", err, cmd.resp[0]);
err = -EINVAL; err = -EIO;
goto out; goto out;
} }
...@@ -1544,7 +1544,7 @@ static int mmc_do_erase(struct mmc_card *card, unsigned int from, ...@@ -1544,7 +1544,7 @@ static int mmc_do_erase(struct mmc_card *card, unsigned int from,
if (err) { if (err) {
printk(KERN_ERR "mmc_erase: group end error %d, status %#x\n", printk(KERN_ERR "mmc_erase: group end error %d, status %#x\n",
err, cmd.resp[0]); err, cmd.resp[0]);
err = -EINVAL; err = -EIO;
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment