Add patch that remove cache flush on reset

This commit is contained in:
SolidHal 2018-10-22 19:39:35 -05:00
parent 704a6aaffd
commit ab75e656d3

View File

@ -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