Skip to content

Commit 723ef0e

Browse files
Kamal Dasustorulf
authored andcommitted
mmc: sdhci-brcmstb: add cqhci suspend/resume to PM ops
cqhci timeouts observed on brcmstb platforms during suspend: ... [ 164.832853] mmc0: cqhci: timeout for tag 18 ... Adding cqhci_suspend()/resume() calls to disable cqe in sdhci_brcmstb_suspend()/resume() respectively to fix CQE timeouts seen on PM suspend. Fixes: d46ba2d ("mmc: sdhci-brcmstb: Add support for Command Queuing (CQE)") Cc: stable@vger.kernel.org Signed-off-by: Kamal Dasu <kamal.dasu@broadcom.com> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Link: https://lore.kernel.org/r/20250311165946.28190-1-kamal.dasu@broadcom.com Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
1 parent e51a349 commit 723ef0e

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

drivers/mmc/host/sdhci-brcmstb.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,8 +503,15 @@ static int sdhci_brcmstb_suspend(struct device *dev)
503503
struct sdhci_host *host = dev_get_drvdata(dev);
504504
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
505505
struct sdhci_brcmstb_priv *priv = sdhci_pltfm_priv(pltfm_host);
506+
int ret;
506507

507508
clk_disable_unprepare(priv->base_clk);
509+
if (host->mmc->caps2 & MMC_CAP2_CQE) {
510+
ret = cqhci_suspend(host->mmc);
511+
if (ret)
512+
return ret;
513+
}
514+
508515
return sdhci_pltfm_suspend(dev);
509516
}
510517

@@ -529,6 +536,9 @@ static int sdhci_brcmstb_resume(struct device *dev)
529536
ret = clk_set_rate(priv->base_clk, priv->base_freq_hz);
530537
}
531538

539+
if (host->mmc->caps2 & MMC_CAP2_CQE)
540+
ret = cqhci_resume(host->mmc);
541+
532542
return ret;
533543
}
534544
#endif

0 commit comments

Comments
 (0)