On 15/05/18 09:18, Tom Hebb wrote: > 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. + a few people that have worked on sdhci-esdhc-imx > >>> >>> 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