summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYangbo Lu <yangbo.lu@nxp.com>2016-08-02 15:33:18 +0800
committerJaehoon Chung <jh80.chung@samsung.com>2016-08-16 10:27:07 +0900
commitd188b1130226d304fb3cd2c901b968eca927f39f (patch)
treeffe7465192b843d5ad55552e271207ab423a70a6
parentba92cd74d227b0d3f39c2452513055c1477697e9 (diff)
downloadu-boot-d188b1130226d304fb3cd2c901b968eca927f39f.tar.gz
u-boot-d188b1130226d304fb3cd2c901b968eca927f39f.tar.bz2
u-boot-d188b1130226d304fb3cd2c901b968eca927f39f.zip
mmc: send CMD0 before CMD1 for some MMC cards
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>
-rw-r--r--drivers/mmc/mmc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 3daa748822..43ea0bba76 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);