[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1530280769-14114-1-git-send-email-kehuanlin@pinecone.net>
Date: Fri, 29 Jun 2018 21:59:29 +0800
From: "Huanlin.Ke" <chgokhl@...il.com>
To: unlisted-recipients:; (no To-header on input)
Cc: kehuanlin@...econe.net, zhangbo_a <zhangbo_a@...omi.com>,
Jaehoon Chung <jh80.chung@...sung.com>,
Ulf Hansson <ulf.hansson@...aro.org>,
linux-mmc@...r.kernel.org (open list:SYNOPSYS DESIGNWARE MMC/SD/SDIO
DRIVER), linux-kernel@...r.kernel.org (open list)
Subject: [PATCH] mmc: dw_mmc: fix errors to use card read/write threshold for HS400 mode
The card write threshold is applicable for HS400 mode only, so it should
return back except HS400 timing mode.
The card read threshold is also required for HS400 mode as the host
controller incorrectly samples the data if the card clock stops within
a block transfer.
Signed-off-by: Huanlin.Ke <kehuanlin@...econe.net>
Signed-off-by: zhangbo_a <zhangbo_a@...omi.com>
---
drivers/mmc/host/dw_mmc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 623f4d2..d4e6983 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1065,7 +1065,7 @@ static void dw_mci_ctrl_thld(struct dw_mci *host, struct mmc_data *data)
* It's used when HS400 mode is enabled.
*/
if (data->flags & MMC_DATA_WRITE &&
- !(host->timing != MMC_TIMING_MMC_HS400))
+ (host->timing != MMC_TIMING_MMC_HS400))
return;
if (data->flags & MMC_DATA_WRITE)
@@ -1074,6 +1074,7 @@ static void dw_mci_ctrl_thld(struct dw_mci *host, struct mmc_data *data)
enable = SDMMC_CARD_RD_THR_EN;
if (host->timing != MMC_TIMING_MMC_HS200 &&
+ host->timing != MMC_TIMING_MMC_HS400 &&
host->timing != MMC_TIMING_UHS_SDR104)
goto disable;
--
2.7.4
Powered by blists - more mailing lists