Add patch that remove cache flush on reset
This commit is contained in:
parent
704a6aaffd
commit
ab75e656d3
@ -0,0 +1,41 @@
|
|||||||
|
From e4f737ba76eedeb9c924f46fe6a66520485b2bc6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: SolidHal <hal@halemmerich.com>
|
||||||
|
Date: Mon, 22 Oct 2018 19:19:13 -0500
|
||||||
|
Subject: [PATCH] Don't try to flush cache on reset
|
||||||
|
|
||||||
|
A hardware reset is called for two situations. The first is on init
|
||||||
|
and the second is if the driver encounters an error with the card.
|
||||||
|
Flushing the cache when the emmc is already in a bad state causes a ~10
|
||||||
|
minute long hang.
|
||||||
|
|
||||||
|
Not only does the cache flush fail after
|
||||||
|
a long hang, it causes a cmd write during the bus init in mmc_power_cycle
|
||||||
|
to fail, leaving the card potentially incorrectly configured.
|
||||||
|
|
||||||
|
The effects specifically the skHynix emmc with designware controller
|
||||||
|
used in the c201 chromebook (veyron-speedy), but could causes issues
|
||||||
|
with other emmcs as well.
|
||||||
|
---
|
||||||
|
drivers/mmc/core/mmc.c | 6 ------
|
||||||
|
1 file changed, 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
|
||||||
|
index 6f8ebd6c..186cf61b 100644
|
||||||
|
--- a/drivers/mmc/core/mmc.c
|
||||||
|
+++ b/drivers/mmc/core/mmc.c
|
||||||
|
@@ -2121,12 +2121,6 @@ static int mmc_reset(struct mmc_host *host)
|
||||||
|
{
|
||||||
|
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 &&
|
||||||
|
mmc_can_reset(card)) {
|
||||||
|
/* If the card accept RST_n signal, send it. */
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user