Hi, On 05/15/2018 01:59 AM, Adrian Hunter wrote: > On 15/05/18 00:56, Thomas Hebb wrote: >> Currently, runtime_suspend() unconditionally disables the clock gates >> for the controller, which means that it's unable to receive interrupts >> generated by connected SDIO cards. > > We currently get / put runtime pm with enable / disable of the SDIO IRQ > (refer sdhci_enable_sdio_irq()) so are you sure this is needed? You're correct; this patch is unnecessary. I wrote it before 923713b35745 ("mmc: sdhci: Disable runtime pm when the sdio_irq is enabled"), and it was needed then. Sorry for the noise. FYI, sdhci-esdhc-imx still checks the IRQ in its suspend/resume functions. That's one of the things that misled me to think this patch was still relevant. >> >> Signed-off-by: Thomas Hebb <tommyhebb@xxxxxxxxx> >> --- >> drivers/mmc/host/sdhci-pxav3.c | 16 ++++++++++------ >> 1 file changed, 10 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c >> index a34434166ca7..59760f3cc1d7 100644 >> --- a/drivers/mmc/host/sdhci-pxav3.c >> +++ b/drivers/mmc/host/sdhci-pxav3.c >> @@ -562,9 +562,11 @@ static int sdhci_pxav3_runtime_suspend(struct device *dev) >> if (host->tuning_mode != SDHCI_TUNING_MODE_3) >> mmc_retune_needed(host->mmc); >> >> - clk_disable_unprepare(pxa->clk_io); >> - if (!IS_ERR(pxa->clk_core)) >> - clk_disable_unprepare(pxa->clk_core); >> + if (!sdhci_sdio_irq_enabled(host)) { >> + clk_disable_unprepare(pxa->clk_io); >> + if (!IS_ERR(pxa->clk_core)) >> + clk_disable_unprepare(pxa->clk_core); >> + } >> >> return 0; >> } >> @@ -575,9 +577,11 @@ static int sdhci_pxav3_runtime_resume(struct device *dev) >> struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); >> struct sdhci_pxa *pxa = sdhci_pltfm_priv(pltfm_host); >> >> - clk_prepare_enable(pxa->clk_io); >> - if (!IS_ERR(pxa->clk_core)) >> - clk_prepare_enable(pxa->clk_core); >> + if (!sdhci_sdio_irq_enabled(host)) { >> + clk_prepare_enable(pxa->clk_io); >> + if (!IS_ERR(pxa->clk_core)) >> + clk_prepare_enable(pxa->clk_core); >> + } >> >> return sdhci_runtime_resume_host(host); >> } >> > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html