]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mmc: tegra: fix ddr signaling for non-ddr modes
authorSowjanya Komatineni <skomatineni@nvidia.com>
Sun, 24 Mar 2019 04:45:18 +0000 (21:45 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 May 2019 05:38:39 +0000 (07:38 +0200)
commit 92cd1667d579af5c3ef383680598a112da3695df upstream.

ddr_signaling is set to true for DDR50 and DDR52 modes but is
not set back to false for other modes. This programs incorrect
host clock when mode change happens from DDR52/DDR50 to other
SDR or HS modes like incase of mmc_retune where it switches
from HS400 to HS DDR and then from HS DDR to HS mode and then
to HS200.

This patch fixes the ddr_signaling to set properly for non DDR
modes.

Tested-by: Jon Hunter <jonathanh@nvidia.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Cc: stable@vger.kernel.org # v4.20 +
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mmc/host/sdhci-tegra.c

index e6ace31e2a418cc80e0df72eb66f89d1119c26ca..084d22d83d140a7316b0911dc726ce2e865c6fcd 100644 (file)
@@ -675,6 +675,7 @@ static void tegra_sdhci_set_uhs_signaling(struct sdhci_host *host,
        bool set_dqs_trim = false;
        bool do_hs400_dll_cal = false;
 
+       tegra_host->ddr_signaling = false;
        switch (timing) {
        case MMC_TIMING_UHS_SDR50:
        case MMC_TIMING_UHS_SDR104: