Commit 437db4c6 authored by Adrian Hunter's avatar Adrian Hunter Committed by Ulf Hansson

mmc: mmc: Attempt to flush cache before reset

CMD0 or hardware reset may invalidate the cache, so it needs to be
flushed before reset.

In the case of recovery, we can't expect flushing the cache to work
always, but have a go and ignore errors.
Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent f3f44d51
...@@ -1958,6 +1958,12 @@ static int mmc_reset(struct mmc_host *host) ...@@ -1958,6 +1958,12 @@ static int mmc_reset(struct mmc_host *host)
{ {
struct mmc_card *card = host->card; struct mmc_card *card = host->card;
/*
* In the case of recovery, we can't expect flushing the cache to work
* always, but we have a go and ignore errors.
*/
mmc_flush_cache(host->card);
if ((host->caps & MMC_CAP_HW_RESET) && host->ops->hw_reset && if ((host->caps & MMC_CAP_HW_RESET) && host->ops->hw_reset &&
mmc_can_reset(card)) { mmc_can_reset(card)) {
/* If the card accept RST_n signal, send it. */ /* If the card accept RST_n signal, send it. */
......
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