| From d3c4a6e1e26655c2f6642fbce4c468662176acb6 Mon Sep 17 00:00:00 2001 |
| From: Veerabhadrarao Badiganti <vbadigan@codeaurora.org> |
| Date: Thu, 28 May 2020 20:43:52 +0530 |
| Subject: [PATCH] mmc: sdhci-msm: Clear tuning done flag while hs400 tuning |
| |
| commit 9253d71011c349d5f5cc0cebdf68b4a80811b92d upstream. |
| |
| 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> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c |
| index 82dd7d1247bb..f9fa8728e1e5 100644 |
| --- a/drivers/mmc/host/sdhci-msm.c |
| +++ b/drivers/mmc/host/sdhci-msm.c |
| @@ -1112,6 +1112,12 @@ static int sdhci_msm_execute_tuning(struct mmc_host *mmc, u32 opcode) |
| /* Clock-Data-Recovery used to dynamically adjust RX sampling point */ |
| 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 |
| -- |
| 2.27.0 |
| |