]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.14.111/mmc-omap-fix-the-maximum-timeout-setting.patch
5.1-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.14.111 / mmc-omap-fix-the-maximum-timeout-setting.patch
CommitLineData
04fd09d4
SL
1From 43b3480a33711620b34c3dd284d597bfde338735 Mon Sep 17 00:00:00 2001
2From: Aaro Koskinen <aaro.koskinen@iki.fi>
3Date: Sun, 3 Feb 2019 00:14:33 +0200
4Subject: mmc: omap: fix the maximum timeout setting
5
6[ Upstream commit a6327b5e57fdc679c842588c3be046c0b39cc127 ]
7
8When running OMAP1 kernel on QEMU, MMC access is annoyingly noisy:
9
10 MMC: CTO of 0xff and 0xfe cannot be used!
11 MMC: CTO of 0xff and 0xfe cannot be used!
12 MMC: CTO of 0xff and 0xfe cannot be used!
13 [ad inf.]
14
15Emulator warnings appear to be valid. The TI document SPRU680 [1]
16("OMAP5910 Dual-Core Processor MultiMedia Card/Secure Data Memory Card
17(MMC/SD) Reference Guide") page 36 states that the maximum timeout is 253
18cycles and "0xff and 0xfe cannot be used".
19
20Fix by using 0xfd as the maximum timeout.
21
22Tested using QEMU 2.5 (Siemens SX1 machine, OMAP310), and also checked on
23real hardware using Palm TE (OMAP310), Nokia 770 (OMAP1710) and Nokia N810
24(OMAP2420) that MMC works as before.
25
26[1] http://www.ti.com/lit/ug/spru680/spru680.pdf
27
28Fixes: 730c9b7e6630f ("[MMC] Add OMAP MMC host driver")
29Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
30Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
31Signed-off-by: Sasha Levin <sashal@kernel.org>
32---
33 drivers/mmc/host/omap.c | 2 +-
34 1 file changed, 1 insertion(+), 1 deletion(-)
35
36diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c
37index c28c51ad650f..f11245a0521c 100644
38--- a/drivers/mmc/host/omap.c
39+++ b/drivers/mmc/host/omap.c
40@@ -920,7 +920,7 @@ static inline void set_cmd_timeout(struct mmc_omap_host *host, struct mmc_reques
41 reg &= ~(1 << 5);
42 OMAP_MMC_WRITE(host, SDIO, reg);
43 /* Set maximum timeout */
44- OMAP_MMC_WRITE(host, CTO, 0xff);
45+ OMAP_MMC_WRITE(host, CTO, 0xfd);
46 }
47
48 static inline void set_data_timeout(struct mmc_omap_host *host, struct mmc_request *req)
49--
502.19.1
51