[SRU][J:linux-bluefield][PATCH v1 1/1] UBUNTU: SAUCE: sdhci-of-dwcmshc-bf3: Enable SDHCI_QUIRK_BROKEN_TIMEOUT_VAL

Liming Sun limings at nvidia.com
Wed Oct 18 18:54:12 UTC 2023


BugLink: https://bugs.launchpad.net/bugs/2039325

This commit enables SDHCI_QUIRK_BROKEN_TIMEOUT_VAL to fix the
intermittent eMMC timeout issue. eMMC has two timeout, one is in
the controller and one is configured in OS. Previously, both are
calculated on top of configuration read from eMMC CSD register and
clock setting. With the quirk setting, controller timeout value
0xe (max value) will be used which is the same as UEFI does. The OS
timeout will be set to 10 seconds accordingly.

Signed-off-by: Liming Sun <limings at nvidia.com>
---
 drivers/mmc/host/sdhci-of-dwcmshc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c
index 44fd58014b7f..188c5ae7efc5 100644
--- a/drivers/mmc/host/sdhci-of-dwcmshc.c
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
@@ -316,7 +316,8 @@ static const struct sdhci_pltfm_data sdhci_dwcmshc_pdata = {
 #ifdef CONFIG_ACPI
 static const struct sdhci_pltfm_data sdhci_dwcmshc_bf3_pdata = {
 	.ops = &sdhci_dwcmshc_ops,
-	.quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN,
+	.quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
+		  SDHCI_QUIRK_BROKEN_TIMEOUT_VAL,
 	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
 		   SDHCI_QUIRK2_ACMD23_BROKEN,
 };
-- 
2.30.1




More information about the kernel-team mailing list