Message ID | 20200312142405.9813-2-adrian.hunter@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mmc: core: Do not change frequency before switch from HS400 | expand |
diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c index aa0cab190cd8..619088a94688 100644 --- a/drivers/mmc/core/mmc_ops.c +++ b/drivers/mmc/core/mmc_ops.c @@ -599,6 +599,12 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value, cmd.sanitize_busy = true; err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); + if (err && index == EXT_CSD_HS_TIMING) { + /* Try harder for timing changes */ + __mmc_poll_for_busy(card, timeout_ms, send_status, + retry_crc_err, MMC_BUSY_CMD6); + err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); + } if (err) goto out;
Add extra busy wait and retries if transfer mode switch fails. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> --- drivers/mmc/core/mmc_ops.c | 6 ++++++ 1 file changed, 6 insertions(+)