]> Git Repo - linux.git/commitdiff
mmc: sdhci-iproc: Set NO_HISPD bit to fix HS50 data hold time problem
authorTrac Hoang <[email protected]>
Thu, 9 May 2019 17:24:27 +0000 (10:24 -0700)
committerUlf Hansson <[email protected]>
Wed, 15 May 2019 11:52:05 +0000 (13:52 +0200)
The iproc host eMMC/SD controller hold time does not meet the
specification in the HS50 mode.  This problem can be mitigated
by disabling the HISPD bit; thus forcing the controller output
data to be driven on the falling clock edges rather than the
rising clock edges.

Stable tag (v4.12+) chosen to assist stable kernel maintainers so that
the change does not produce merge conflicts backporting to older kernel
versions. In reality, the timing bug existed since the driver was first
introduced but there is no need for this driver to be supported in kernel
versions that old.

Cc: [email protected] # v4.12+
Signed-off-by: Trac Hoang <[email protected]>
Signed-off-by: Scott Branden <[email protected]>
Acked-by: Adrian Hunter <[email protected]>
Signed-off-by: Ulf Hansson <[email protected]>
drivers/mmc/host/sdhci-iproc.c

index 9d4071c41c94bb6c54b479fc0683a486247f552a..2feb4ef32035ad6fcb6fe3742163afe7c4478ccb 100644 (file)
@@ -220,7 +220,8 @@ static const struct sdhci_iproc_data iproc_cygnus_data = {
 
 static const struct sdhci_pltfm_data sdhci_iproc_pltfm_data = {
        .quirks = SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
-                 SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
+                 SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 |
+                 SDHCI_QUIRK_NO_HISPD_BIT,
        .quirks2 = SDHCI_QUIRK2_ACMD23_BROKEN,
        .ops = &sdhci_iproc_ops,
 };
This page took 0.054926 seconds and 4 git commands to generate.