The A83T MMC support code introduces the timings mode switch, however
such a switch doesn't exist on new SoCs with only new timings mode.

Only execute the switch if the SoC really have the timings mode switch,
to fix the regression shown on new timings mode only SoCs (A64, H5,

Fixes: b0600daebf31 ("mmc: sunxi: Support controllers that can use
                      both old and new timings")
Signed-off-by: Icenowy Zheng <>
Reviewed-by: Chen-Yu Tsai <>
Changes in v2:
- Slightly adjusted the format of the Fixes: line/
- Added review tag from Chen-Yu.

 drivers/mmc/host/sunxi-mmc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
index 020547e5fa45..7447d41833ee 100644
--- a/drivers/mmc/host/sunxi-mmc.c
+++ b/drivers/mmc/host/sunxi-mmc.c
@@ -789,7 +789,7 @@ static int sunxi_mmc_clk_set_rate(struct sunxi_mmc_host 
                clock <<= 1;
-       if (host->use_new_timings) {
+       if (host->use_new_timings && host->cfg->has_timings_switch) {
                ret = sunxi_ccu_set_mmc_timing_mode(host->clk_mmc, true);
                if (ret) {

Reply via email to