diff options
| -rw-r--r-- | drivers/mmc/core/core.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index befde2bd26d3..a8c17b4cd737 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -551,7 +551,7 @@ int mmc_cqe_recovery(struct mmc_host *host)  	cmd.flags        = MMC_RSP_R1B | MMC_CMD_AC;  	cmd.flags       &= ~MMC_RSP_CRC; /* Ignore CRC */  	cmd.busy_timeout = MMC_CQE_RECOVERY_TIMEOUT; -	mmc_wait_for_cmd(host, &cmd, 0); +	mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES);  	mmc_poll_for_busy(host->card, MMC_CQE_RECOVERY_TIMEOUT, true, MMC_BUSY_IO); @@ -561,10 +561,13 @@ int mmc_cqe_recovery(struct mmc_host *host)  	cmd.flags        = MMC_RSP_R1B | MMC_CMD_AC;  	cmd.flags       &= ~MMC_RSP_CRC; /* Ignore CRC */  	cmd.busy_timeout = MMC_CQE_RECOVERY_TIMEOUT; -	err = mmc_wait_for_cmd(host, &cmd, 0); +	err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES);  	host->cqe_ops->cqe_recovery_finish(host); +	if (err) +		err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); +  	mmc_retune_release(host);  	return err; | 
