|
@@ -582,9 +582,6 @@ static int mmc_sd_init_uhs_card(struct mmc_card *card)
|
|
|
int err;
|
|
|
u8 *status;
|
|
|
|
|
|
- if (!card->scr.sda_spec3)
|
|
|
- return 0;
|
|
|
-
|
|
|
if (!(card->csd.cmdclass & CCC_SWITCH))
|
|
|
return 0;
|
|
|
|
|
@@ -593,14 +590,11 @@ static int mmc_sd_init_uhs_card(struct mmc_card *card)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
/* Set 4-bit bus width */
|
|
|
- if ((card->host->caps & MMC_CAP_4_BIT_DATA) &&
|
|
|
- (card->scr.bus_widths & SD_SCR_BUS_WIDTH_4)) {
|
|
|
- err = mmc_app_set_bus_width(card, MMC_BUS_WIDTH_4);
|
|
|
- if (err)
|
|
|
- goto out;
|
|
|
+ err = mmc_app_set_bus_width(card, MMC_BUS_WIDTH_4);
|
|
|
+ if (err)
|
|
|
+ goto out;
|
|
|
|
|
|
- mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4);
|
|
|
- }
|
|
|
+ mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4);
|
|
|
|
|
|
/*
|
|
|
* Select the bus speed mode depending on host
|
|
@@ -1033,7 +1027,7 @@ retry:
|
|
|
}
|
|
|
|
|
|
/* Initialization sequence for UHS-I cards */
|
|
|
- if (rocr & SD_ROCR_S18A) {
|
|
|
+ if (rocr & SD_ROCR_S18A && mmc_host_uhs(host)) {
|
|
|
err = mmc_sd_init_uhs_card(card);
|
|
|
if (err)
|
|
|
goto free_card;
|