mmc: sunxi-mmc: Fix clock refcount imbalance during unbind
commit8509419758upstream. If the controller is suspended by runtime PM, the clock is already disabled, so do not try to disable it again during removal. Use pm_runtime_disable() to flush any pending runtime PM transitions. Fixes:9a8e1e8cc2("mmc: sunxi: Add runtime_pm support") Signed-off-by: Samuel Holland <samuel@sholland.org> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20220810022509.43743-1-samuel@sholland.org Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2eed23765b
commit
79819909c2
1 changed files with 5 additions and 3 deletions
|
|
@ -1459,9 +1459,11 @@ static int sunxi_mmc_remove(struct platform_device *pdev)
|
|||
struct sunxi_mmc_host *host = mmc_priv(mmc);
|
||||
|
||||
mmc_remove_host(mmc);
|
||||
pm_runtime_force_suspend(&pdev->dev);
|
||||
disable_irq(host->irq);
|
||||
sunxi_mmc_disable(host);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
if (!pm_runtime_status_suspended(&pdev->dev)) {
|
||||
disable_irq(host->irq);
|
||||
sunxi_mmc_disable(host);
|
||||
}
|
||||
dma_free_coherent(&pdev->dev, PAGE_SIZE, host->sg_cpu, host->sg_dma);
|
||||
mmc_free_host(mmc);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue