]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mmc: host: sdhci-sprd: Fix the missing pm_runtime_put_noidle()
authorBaolin Wang <baolin.wang@linaro.org>
Mon, 15 Jul 2019 10:00:14 +0000 (18:00 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 6 Aug 2019 17:08:15 +0000 (19:08 +0200)
commit fc62113b32c95906b3ea8ba42e91014c7d0c6fa6 upstream.

When the SD host controller tries to probe again due to the derferred
probe mechanism, it will always keep the SD host device as runtime
resume state due to missing the runtime put operation in error path
last time.

Thus add the pm_runtime_put_noidle() in error path to make the PM runtime
counter balance, which can make the SD host device's PM runtime work well.

Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Fixes: fb8bd90f83c4 ("mmc: sdhci-sprd: Add Spreadtrum's initial host controller")
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mmc/host/sdhci-sprd.c

index 9a822e2e9f0b61967c3ae2c703bcc35527d73a0e..06f84a4d79e00510e267f2726573b1af08165976 100644 (file)
@@ -405,6 +405,7 @@ err_cleanup_host:
        sdhci_cleanup_host(host);
 
 pm_runtime_disable:
+       pm_runtime_put_noidle(&pdev->dev);
        pm_runtime_disable(&pdev->dev);
        pm_runtime_set_suspended(&pdev->dev);