FROMGIT: mmc: core: Set reset done after hw reset

Set hw reset flag as done after sdcc hw reset else
hw reset as part of recovery happens only once.

md->reset_done flag is set inside mmc_blk_reset function with
flag MMC_BLK_CQE_RECOVERY. And this flag is cleared only
inside function mmc_blk_reset_success. But since mmc_blk_reset
and mmc_blk_reset_success are used with if else condition, code
flow can execute only one of the function, hence if mmc_blk_reset
is executed and not cleared within mmc_blk_reset_success, next
mmc_blk_reset call returns without resetting the hw.

(cherry picked from commit a051246b786af7e4a9d9219cc7038a6e8a411531
https://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git devel)
Bug: 235059940
Link: https://lore.kernel.org/linux-mmc/20220531171922.76080-1-adrian.hunter@intel.com/

Change-Id: I14915ae26240769b45cec8d2793e5f8604062eef
Signed-off-by: Ram Prakash Gupta <rampraka@codeaurora.org>
This commit is contained in:
Ram Prakash Gupta 2020-01-22 19:00:40 +05:30 committed by Todd Kjos
parent b9029542be
commit 862fbb8517
1 changed files with 1 additions and 2 deletions

View File

@ -1482,8 +1482,7 @@ void mmc_blk_cqe_recovery(struct mmc_queue *mq)
err = mmc_cqe_recovery(host);
if (err)
mmc_blk_reset(mq->blkdata, host, MMC_BLK_CQE_RECOVERY);
else
mmc_blk_reset_success(mq->blkdata, MMC_BLK_CQE_RECOVERY);
mmc_blk_reset_success(mq->blkdata, MMC_BLK_CQE_RECOVERY);
pr_debug("%s: CQE recovery done\n", mmc_hostname(host));
}