mmc: send CMD0 before CMD1 for some MMC cards
authorYangbo Lu <yangbo.lu@nxp.com>
Tue, 2 Aug 2016 07:33:18 +0000 (15:33 +0800)
committerJaehoon Chung <jh80.chung@samsung.com>
Tue, 16 Aug 2016 01:27:07 +0000 (10:27 +0900)
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.lu@nxp.com>
drivers/mmc/mmc.c

index 3daa74882265ef356453b0ba086f4bc3c2f519c7..43ea0bba763e4168fbef8f80a40cfa23e76f3e70 100644 (file)
@@ -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);