aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/sdhci.c
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2016-04-20 02:24:03 -0400
committerUlf Hansson <ulf.hansson@linaro.org>2016-05-02 04:33:35 -0400
commit4228b21390f55616e50d2cfa3a374489b930a130 (patch)
tree8414f4d3d7637cd95eea5a8ece5d19e0319a3bc4 /drivers/mmc/host/sdhci.c
parent5c59065be5a1b347e06d1ad57e017ae2992e606a (diff)
mmc: sdhci: Remove SDHCI_SDR104_NEEDS_TUNING
SDHCI_SDR104_NEEDS_TUNING was originally named SDHCI_HS200_NEEDS_TUNING and was added in commit 069c9f142822 ("mmc: host: Adds support for eMMC 4.5 HS200 mode"). That commit conflated SDHCI_SDR50_NEEDS_TUNING and SDHCI_HS200_NEEDS_TUNING due to what appears to be misplaced parentheses. Commit 156e14b126ff ("mmc: sdhci: fix caps2 for HS200") made HS200 configuration equivalent to SDR104 configuration, renaming SDHCI_HS200_NEEDS_TUNING to SDHCI_SDR104_NEEDS_TUNING despite tuning for HS200 now being non-optional. The mix-up with SDHCI_SDR50_NEEDS_TUNING remained and became more obvious after commit 4b6f37d3a379 ("mmc: sdhci: clean up sdhci_execute_tuning() decision") where the author noted the patch was "reflecting what the original code was doing, it shows that it may not be what the author actually intended." The way the code is currently written, SDHCI_SDR104_NEEDS_TUNING causes tuning to be done always for SDR50 mode if SDR104 mode is also supported by the host controller. That makes no sense because we already have capabilities bit SDHCI_USE_SDR50_TUNING and corresponding flag SDHCI_SDR50_NEEDS_TUNING for that purpose. Given the dubious origins of SDHCI_SDR104_NEEDS_TUNING, it seems reasonable to remove it. The benefit being SDR50 mode will now not un-nessessarily do tuning. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host/sdhci.c')
-rw-r--r--drivers/mmc/host/sdhci.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index b284924aed13..a26c3996d78d 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1906,8 +1906,7 @@ static int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode)
1906 break; 1906 break;
1907 1907
1908 case MMC_TIMING_UHS_SDR50: 1908 case MMC_TIMING_UHS_SDR50:
1909 if (host->flags & SDHCI_SDR50_NEEDS_TUNING || 1909 if (host->flags & SDHCI_SDR50_NEEDS_TUNING)
1910 host->flags & SDHCI_SDR104_NEEDS_TUNING)
1911 break; 1910 break;
1912 /* FALLTHROUGH */ 1911 /* FALLTHROUGH */
1913 1912
@@ -3171,10 +3170,6 @@ int sdhci_add_host(struct sdhci_host *host)
3171 if (caps[1] & SDHCI_USE_SDR50_TUNING) 3170 if (caps[1] & SDHCI_USE_SDR50_TUNING)
3172 host->flags |= SDHCI_SDR50_NEEDS_TUNING; 3171 host->flags |= SDHCI_SDR50_NEEDS_TUNING;
3173 3172
3174 /* Does the host need tuning for SDR104 / HS200? */
3175 if (mmc->caps2 & MMC_CAP2_HS200)
3176 host->flags |= SDHCI_SDR104_NEEDS_TUNING;
3177
3178 /* Driver Type(s) (A, C, D) supported by the host */ 3173 /* Driver Type(s) (A, C, D) supported by the host */
3179 if (caps[1] & SDHCI_DRIVER_TYPE_A) 3174 if (caps[1] & SDHCI_DRIVER_TYPE_A)
3180 mmc->caps |= MMC_CAP_DRIVER_TYPE_A; 3175 mmc->caps |= MMC_CAP_DRIVER_TYPE_A;