]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
mmc: sdhci: add signal voltage switch in sdhci_resume_host
authorJisheng Zhang <jszhang@kernel.org>
Sun, 24 May 2026 02:34:55 +0000 (10:34 +0800)
committerUlf Hansson <ulfh@kernel.org>
Fri, 29 May 2026 13:02:47 +0000 (15:02 +0200)
commitf595e8e77a51eee35e331f69321766593a845ef2
tree4f646478e0a72eaf117ef95bf1f25ce9f214b489
parent1e9a4850afa0ceb63984fb1a9f3e86d0fc4fd18f
mmc: sdhci: add signal voltage switch in sdhci_resume_host

I met one suspend/resume issue with sdr104 capable sdio wifi card (with
"keep-power-in-suspend" set in DT property):
After resuming from suspend to ram, the sdio wifi card stops working.
Further debug shows that although ios shows the sdio card is at sdr104
mode, the voltage is still at 3V3. This is due to missing the calling
of ->start_signal_voltage_switch() in sdhci_resume_host().

Fix this issue by adding ->start_signal_voltage_switch() in
sdhci_resume_host(). This also matches what we do for
sdhci_runtime_resume_host().

Then the question is: why this issue hasn't reported and fixed for so
long time. IMHO, several reasons: Some host controllers just kick off
the runtime resume for system resume, so they benefit from the well
supported runtime pm code; Some platforms just use the old sdio wifi
card which doesn't need signal voltage switch at all, the default
voltage is 3v3 after resuming.

Fixes: 6308d2905bd3 ("mmc: sdhci: add quirk for keeping card power during suspend")
Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulfh@kernel.org>
drivers/mmc/host/sdhci.c