diff mbox series

mmc: sdhci-sprd: disable polling scan for sdio card

Message ID 20221219084754.11070-1-wenchao.chen@unisoc.com (mailing list archive)
State New, archived
Headers show
Series mmc: sdhci-sprd: disable polling scan for sdio card | expand

Commit Message

Wenchao Chen Dec. 19, 2022, 8:47 a.m. UTC
Enable polling will increase the power consumption of the host.

Fixes: fb8bd90f83c4 ("mmc: sdhci-sprd: Add Spreadtrum's initial host controller")
Signed-off-by: Wenchao Chen <wenchao.chen@unisoc.com>
---
 drivers/mmc/host/sdhci-sprd.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Adrian Hunter Dec. 19, 2022, 10:36 a.m. UTC | #1
On 19/12/22 10:47, Wenchao Chen wrote:
> Enable polling will increase the power consumption of the host.
> 
> Fixes: fb8bd90f83c4 ("mmc: sdhci-sprd: Add Spreadtrum's initial host controller")
> Signed-off-by: Wenchao Chen <wenchao.chen@unisoc.com>
> ---
>  drivers/mmc/host/sdhci-sprd.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/mmc/host/sdhci-sprd.c b/drivers/mmc/host/sdhci-sprd.c
> index 525f979e2a97..113a5c77578f 100644
> --- a/drivers/mmc/host/sdhci-sprd.c
> +++ b/drivers/mmc/host/sdhci-sprd.c
> @@ -696,6 +696,10 @@ static int sdhci_sprd_probe(struct platform_device *pdev)
>  	if (ret)
>  		goto err_cleanup_host;
>  
> +	if ((host->mmc->caps2 & MMC_CAP2_NO_SD) &&
> +			(host->mmc->caps2 & MMC_CAP2_NO_MMC))
> +		host->mmc->caps &= ~MMC_CAP_NEEDS_POLL;

How is MMC_CAP_NEEDS_POLL getting set? SDHCI won't set it for
non-removable cards.  Is it removable?

> +
>  	pm_runtime_mark_last_busy(&pdev->dev);
>  	pm_runtime_put_autosuspend(&pdev->dev);
>
diff mbox series

Patch

diff --git a/drivers/mmc/host/sdhci-sprd.c b/drivers/mmc/host/sdhci-sprd.c
index 525f979e2a97..113a5c77578f 100644
--- a/drivers/mmc/host/sdhci-sprd.c
+++ b/drivers/mmc/host/sdhci-sprd.c
@@ -696,6 +696,10 @@  static int sdhci_sprd_probe(struct platform_device *pdev)
 	if (ret)
 		goto err_cleanup_host;
 
+	if ((host->mmc->caps2 & MMC_CAP2_NO_SD) &&
+			(host->mmc->caps2 & MMC_CAP2_NO_MMC))
+		host->mmc->caps &= ~MMC_CAP_NEEDS_POLL;
+
 	pm_runtime_mark_last_busy(&pdev->dev);
 	pm_runtime_put_autosuspend(&pdev->dev);