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:
parent
b9029542be
commit
862fbb8517
|
@ -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));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue