OSDN Git Service

mmc: sdhci-msm: Clear tuning done flag while hs400 tuning
authorVeerabhadrarao Badiganti <vbadigan@codeaurora.org>
Thu, 28 May 2020 15:13:52 +0000 (20:43 +0530)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 1 Jun 2020 06:04:40 +0000 (08:04 +0200)
Clear tuning_done flag while executing tuning to ensure vendor
specific HS400 settings are applied properly when the controller
is re-initialized in HS400 mode.

Without this, re-initialization of the qcom SDHC in HS400 mode fails
while resuming the driver from runtime-suspend or system-suspend.

Fixes: ff06ce417828 ("mmc: sdhci-msm: Add HS400 platform support")
Cc: stable@vger.kernel.org
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Link: https://lore.kernel.org/r/1590678838-18099-1-git-send-email-vbadigan@codeaurora.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-msm.c

index 95cd973..b277dd7 100644 (file)
@@ -1174,6 +1174,12 @@ static int sdhci_msm_execute_tuning(struct mmc_host *mmc, u32 opcode)
        msm_host->use_cdr = true;
 
        /*
+        * Clear tuning_done flag before tuning to ensure proper
+        * HS400 settings.
+        */
+       msm_host->tuning_done = 0;
+
+       /*
         * For HS400 tuning in HS200 timing requires:
         * - select MCLK/2 in VENDOR_SPEC
         * - program MCLK to 400MHz (or nearest supported) in GCC