From: yong mao <yong.mao@xxxxxxxxxxxx> When mmc_sdio_resned_if_cond is invoked, it indicates the SDIO device is not in the right state. In this condition, the previous implementation of mmc_sdio_resend_if_cond can't make sure SDIO device be back to idle state. mmc_power_cycle can reset the SDIO device by HW and also make sure SDIO device enter to idle state correctly. Signed-off-by: Yong Mao <yong.mao@xxxxxxxxxxxx> --- drivers/mmc/core/sdio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c index ebb387a..ada0a80 100644 --- a/drivers/mmc/core/sdio.c +++ b/drivers/mmc/core/sdio.c @@ -546,6 +546,7 @@ static int mmc_sdio_init_uhs_card(struct mmc_card *card) static void mmc_sdio_resend_if_cond(struct mmc_host *host, struct mmc_card *card) { + mmc_power_cycle(host, host->card->ocr); sdio_reset(host); mmc_go_idle(host); mmc_send_if_cond(host, host->ocr_avail); -- 1.9.1