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 <[email protected]>
---
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;
+
pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
--
2.17.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 <[email protected]>
> ---
> 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);
>