When the MMC framework was added in u-boot, the mmc_go_idle was
added before mmc_send_op_cond_iter in function mmc_send_op_cond
annotating that some cards seemed to need this. Actually, we still
need to do this in function mmc_complete_op_cond for those cards.
This has been verified on Micron MTFC4GACAECN eMMC chip.

Signed-off-by: Yangbo Lu <yangbo...@nxp.com>
---
 drivers/mmc/mmc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index f8e5f7a..d4e96bc 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -422,6 +422,9 @@ static int mmc_complete_op_cond(struct mmc *mmc)
 
        mmc->op_cond_pending = 0;
        if (!(mmc->ocr & OCR_BUSY)) {
+               /* Some cards seem to need this */
+               mmc_go_idle(mmc);
+
                start = get_timer(0);
                while (1) {
                        err = mmc_send_op_cond_iter(mmc, 1);
-- 
2.1.0.27.g96db324

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to