mmc_select_mode_and_width() already passes true for the hsdowngrade
parameter when the bus mode is HS400-ES. However, mmc_set_card_speed()
only checks MMC_HS400_SUPPORT in that branch, and if (hsdowngrade)
never checks the mode itself. Add MMC_HS400_ES_SUPPORT so the
downgrade path also applies to HS400-ES.

Signed-off-by: baozhu.liu <[email protected]>
---
Changes for v2:
- drop the dw_mmc: prefix; the change is in generic mmc.c
- mention mmc_select_mode_and_width(), which already passes true for
  HS400-ES
- clarify that if (hsdowngrade) does not check the mode

 drivers/mmc/mmc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 670e92ee12b..2bc36c1405c 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1007,7 +1007,8 @@ static int mmc_set_card_speed(struct mmc *mmc, enum 
bus_mode mode,
                return err;
 
 #if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \
-    CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)
+       CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) || \
+       CONFIG_IS_ENABLED(MMC_HS400_ES_SUPPORT)
        /*
         * In case the eMMC is in HS200/HS400 mode and we are downgrading
         * to HS mode, the card clock are still running much faster than
-- 
2.34.1

Reply via email to