diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 0c9ec1017e30bbe7531a4c26b9c750ca81e4c0f4..c8eac26bebcbec0c1f1ec67683be28de52245103 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -363,8 +363,6 @@ static int mmc_reset_to_idle(void) { int ret; - mdelay(1); - /* CMD0: reset to IDLE */ ret = mmc_send_cmd(MMC_CMD(0), 0, 0, NULL); if (ret != 0) { @@ -413,14 +411,16 @@ static int mmc_enumerate(unsigned int clk, unsigned int bus_width) mmc_reset_to_idle(); - /* CMD8: Send Interface Condition Command */ - ret = mmc_send_cmd(MMC_CMD(8), VHS_2_7_3_6_V | CMD8_CHECK_PATTERN, - MMC_RESPONSE_R(7), &resp_data[0]); - - if ((ret == 0) && ((resp_data[0] & 0xffU) == CMD8_CHECK_PATTERN)) { - ret = sd_send_op_cond(); - } else { + if (mmc_dev_info->mmc_dev_type == MMC_IS_EMMC) { ret = mmc_send_op_cond(); + } else { + /* CMD8: Send Interface Condition Command */ + ret = mmc_send_cmd(MMC_CMD(8), VHS_2_7_3_6_V | CMD8_CHECK_PATTERN, + MMC_RESPONSE_R(7), &resp_data[0]); + + if ((ret == 0) && ((resp_data[0] & 0xffU) == CMD8_CHECK_PATTERN)) { + ret = sd_send_op_cond(); + } } if (ret != 0) { return ret;