diff options
Diffstat (limited to 'drivers/mmc/core/core.c')
-rw-r--r-- | drivers/mmc/core/core.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 07b2f086213f..910aa254f23a 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c | |||
@@ -2476,15 +2476,20 @@ static int mmc_rescan_try_freq(struct mmc_host *host, unsigned freq) | |||
2476 | * sdio_reset sends CMD52 to reset card. Since we do not know | 2476 | * sdio_reset sends CMD52 to reset card. Since we do not know |
2477 | * if the card is being re-initialized, just send it. CMD52 | 2477 | * if the card is being re-initialized, just send it. CMD52 |
2478 | * should be ignored by SD/eMMC cards. | 2478 | * should be ignored by SD/eMMC cards. |
2479 | * Skip it if we already know that we do not support SDIO commands | ||
2479 | */ | 2480 | */ |
2480 | sdio_reset(host); | 2481 | if (!(host->caps2 & MMC_CAP2_NO_SDIO)) |
2482 | sdio_reset(host); | ||
2483 | |||
2481 | mmc_go_idle(host); | 2484 | mmc_go_idle(host); |
2482 | 2485 | ||
2483 | mmc_send_if_cond(host, host->ocr_avail); | 2486 | mmc_send_if_cond(host, host->ocr_avail); |
2484 | 2487 | ||
2485 | /* Order's important: probe SDIO, then SD, then MMC */ | 2488 | /* Order's important: probe SDIO, then SD, then MMC */ |
2486 | if (!mmc_attach_sdio(host)) | 2489 | if (!(host->caps2 & MMC_CAP2_NO_SDIO)) |
2487 | return 0; | 2490 | if (!mmc_attach_sdio(host)) |
2491 | return 0; | ||
2492 | |||
2488 | if (!mmc_attach_sd(host)) | 2493 | if (!mmc_attach_sd(host)) |
2489 | return 0; | 2494 | return 0; |
2490 | if (!mmc_attach_mmc(host)) | 2495 | if (!mmc_attach_mmc(host)) |