mmc: sdhci: Fix the SD tuning issue that the SDHCI_TRANSFER_MODE is cleared incorrectly
authorCharl Liu <charl.liu@bayhubtech.com>
Fri, 11 Nov 2022 12:23:14 +0000 (04:23 -0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 7 Dec 2022 12:22:37 +0000 (13:22 +0100)
When cmd->opcode == MMC_SEND_TUNING_BLOCK, the SDHCI_TRANSFER_MODE
should also be kept

Signed-off-by: Charl Liu <charl.liu@bayhubtech.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Link: https://lore.kernel.org/r/20221111122314.307-1-charl.liu@bayhubtech.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci.c

index ebb71d2..64750fb 100644 (file)
@@ -1452,7 +1452,7 @@ static void sdhci_set_transfer_mode(struct sdhci_host *host,
                if (host->quirks2 &
                        SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD) {
                        /* must not clear SDHCI_TRANSFER_MODE when tuning */
-                       if (cmd->opcode != MMC_SEND_TUNING_BLOCK_HS200)
+                       if (!mmc_op_tuning(cmd->opcode))
                                sdhci_writew(host, 0x0, SDHCI_TRANSFER_MODE);
                } else {
                /* clear Auto CMD settings for no data CMDs */