[PATCH] mmc: sunxi: reset the controller after an update-clock timeout
Tam Do
tam.do at manyhobbies.com
Mon Oct 26 20:52:01 PDT 2026
If the clock-update command times out it stays pending in the
controller, and every later clock update times out as well, so the
card cannot be initialised until the next probe.
This happens on an R16 board whose SDIO Wi-Fi holds DAT0 busy while
its supply comes up during the first clock update.
Reset the controller on timeout so the next attempt can succeed.
Fixes: 3cbcb16095f9 ("mmc: sunxi: Add driver for SD/MMC hosts found on Allwinner sunxi SoCs")
Cc: stable at vger.kernel.org
Signed-off-by: Tam Do <tam.do at manyhobbies.com>
---
drivers/mmc/host/sunxi-mmc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
index fe4c0f6..439cfa4 100644
--- a/drivers/mmc/host/sunxi-mmc.c
+++ b/drivers/mmc/host/sunxi-mmc.c
@@ -688,6 +688,7 @@ static int sunxi_mmc_oclk_onoff(struct sunxi_mmc_host *host, u32 oclk_en)
if (rval & SDXC_START) {
dev_err(mmc_dev(host->mmc), "fatal err update clk timeout\n");
+ sunxi_mmc_init_host(host);
return -EIO;
}
--
2.39.5
More information about the linux-arm-kernel
mailing list