Re: [PATCH v4 1/7] mmc: sdhci-esdhc-imx: remove unnecessary mmc_card_wake_sdio_irq check for tuning save/restore
Adrian Hunter <[email protected]>
| Newsgroups | org.kernel.vger.linux-mmc,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Organization | Intel Finland Oy, Registered Address: c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo, Business Identity Code: 0357606 - 4, Domiciled in Helsinki |
| Message-ID | <[email protected]> |
On 03/07/2026 13:42, [email protected] wrote: > From: Luke Wang <[email protected]> > > The tuning save/restore during system PM is conditioned on > mmc_card_wake_sdio_irq(), but this check is unrelated to whether > tuning values need to be preserved. The actual requirement is that > the card keeps power during suspend and the controller is a uSDHC. > > SDIO devices using out-of-band GPIO wakeup maintain power during > suspend but do not set the SDIO IRQ wake flag. In this case the > tuning delay values are not saved/restored. > > Remove the unnecessary mmc_card_wake_sdio_irq() condition from both > the suspend save and resume restore paths. > > Fixes: c63d25cdc59a ("mmc: sdhci-esdhc-imx: Save tuning value when card stays powered in suspend") > Reviewed-by: Frank Li <[email protected]> > Reviewed-by: Haibo Chen <[email protected]> > Signed-off-by: Luke Wang <[email protected]> Acked-by: Adrian Hunter <[email protected]> > --- > drivers/mmc/host/sdhci-esdhc-imx.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c > index 18ecddd6df6f..6526d65538de 100644 > --- a/drivers/mmc/host/sdhci-esdhc-imx.c > +++ b/drivers/mmc/host/sdhci-esdhc-imx.c > @@ -2064,8 +2064,7 @@ static int sdhci_esdhc_suspend(struct device *dev) > * to save the tuning delay value just in case the usdhc > * lost power during system PM. > */ > - if (mmc_card_keep_power(host->mmc) && mmc_card_wake_sdio_irq(host->mmc) && > - esdhc_is_usdhc(imx_data)) > + if (mmc_card_keep_power(host->mmc) && esdhc_is_usdhc(imx_data)) > sdhc_esdhc_tuning_save(host); > > if (device_may_wakeup(dev)) { > @@ -2124,8 +2123,7 @@ static int sdhci_esdhc_resume(struct device *dev) > * restore the saved tuning delay value for the device which keep > * power during system PM. > */ > - if (mmc_card_keep_power(host->mmc) && mmc_card_wake_sdio_irq(host->mmc) && > - esdhc_is_usdhc(imx_data)) > + if (mmc_card_keep_power(host->mmc) && esdhc_is_usdhc(imx_data)) > sdhc_esdhc_tuning_restore(host); > > pm_runtime_put_autosuspend(dev);