|
@@ -486,7 +486,7 @@ static int mmc_change_freq(struct mmc *mmc)
|
|
char cardtype;
|
|
char cardtype;
|
|
int err;
|
|
int err;
|
|
|
|
|
|
- mmc->card_caps = MMC_MODE_4BIT | MMC_MODE_8BIT;
|
|
|
|
|
|
+ mmc->card_caps = 0;
|
|
|
|
|
|
if (mmc_host_is_spi(mmc))
|
|
if (mmc_host_is_spi(mmc))
|
|
return 0;
|
|
return 0;
|
|
@@ -495,6 +495,8 @@ static int mmc_change_freq(struct mmc *mmc)
|
|
if (mmc->version < MMC_VERSION_4)
|
|
if (mmc->version < MMC_VERSION_4)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
|
|
+ mmc->card_caps |= MMC_MODE_4BIT | MMC_MODE_8BIT;
|
|
|
|
+
|
|
err = mmc_send_ext_csd(mmc, ext_csd);
|
|
err = mmc_send_ext_csd(mmc, ext_csd);
|
|
|
|
|
|
if (err)
|
|
if (err)
|
|
@@ -1349,7 +1351,8 @@ static int mmc_startup(struct mmc *mmc)
|
|
mmc->tran_speed = 50000000;
|
|
mmc->tran_speed = 50000000;
|
|
else
|
|
else
|
|
mmc->tran_speed = 25000000;
|
|
mmc->tran_speed = 25000000;
|
|
- } else {
|
|
|
|
|
|
+ } else if (mmc->version >= MMC_VERSION_4) {
|
|
|
|
+ /* Only version 4 of MMC supports wider bus widths */
|
|
int idx;
|
|
int idx;
|
|
|
|
|
|
/* An array of possible bus widths in order of preference */
|
|
/* An array of possible bus widths in order of preference */
|