mmc: sdhci-sprd: Set the missing MMC_CAP_WAIT_WHILE_BUSY flag
authorBaolin Wang <baolin.wang7@gmail.com>
Mon, 24 Feb 2020 09:08:49 +0000 (17:08 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 24 Mar 2020 13:35:42 +0000 (14:35 +0100)
The Spreadtrum host controller supports HW busy detection for commands with
R1B responses, but also for I/O operations. This means when the host gets a
transfer complete event, that always indicates the busy signal is released.

Let's inform the mmc core about this, via setting the corresponding
MMC_CAP_WAIT_WHILE_BUSY flag, as to remove some redundant software busy
polling.

Signed-off-by: Baolin Wang <baolin.wang7@gmail.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Link: https://lore.kernel.org/r/96f16647f6a6e8cb058c44e46c61b122df027059.1582535202.git.baolin.wang7@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-sprd.c

index d346223..2ab42c5 100644 (file)
@@ -556,7 +556,7 @@ static int sdhci_sprd_probe(struct platform_device *pdev)
                sdhci_sprd_voltage_switch;
 
        host->mmc->caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED |
-               MMC_CAP_ERASE | MMC_CAP_CMD23;
+               MMC_CAP_ERASE | MMC_CAP_CMD23 | MMC_CAP_WAIT_WHILE_BUSY;
        ret = mmc_of_parse(host->mmc);
        if (ret)
                goto pltfm_free;