Add new helper function, mmc_sdio_retry_init_card, to be reused when trying to retry the init sequence. Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> --- drivers/mmc/core/sdio.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c index ecbc529..47f824b 100644 --- a/drivers/mmc/core/sdio.c +++ b/drivers/mmc/core/sdio.c @@ -541,6 +541,18 @@ static int mmc_sdio_init_uhs_card(struct mmc_card *card) return err; } +static void mmc_sdio_retry_init_card(struct mmc_host *host, + struct mmc_card *card, + int *retries) +{ + sdio_reset(host); + mmc_go_idle(host); + mmc_send_if_cond(host, host->ocr_avail); + mmc_remove_card(card); + (*retries)--; + +} + /* * Handle the detection and initialisation of a card. * @@ -630,11 +642,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180, ocr_card); if (err == -EAGAIN) { - sdio_reset(host); - mmc_go_idle(host); - mmc_send_if_cond(host, host->ocr_avail); - mmc_remove_card(card); - retries--; + mmc_sdio_retry_init_card(host, card, &retries); goto try_again; } else if (err) { ocr &= ~R4_18V_PRESENT; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html