|
@@ -444,6 +444,7 @@ static int sdio_set_bus_speed_mode(struct mmc_card *card)
|
|
|
unsigned int bus_speed, timing;
|
|
|
int err;
|
|
|
unsigned char speed;
|
|
|
+ unsigned int max_rate;
|
|
|
|
|
|
/*
|
|
|
* If the host doesn't support any of the UHS-I modes, fallback on
|
|
@@ -500,9 +501,12 @@ static int sdio_set_bus_speed_mode(struct mmc_card *card)
|
|
|
if (err)
|
|
|
return err;
|
|
|
|
|
|
+ max_rate = min_not_zero(card->quirk_max_rate,
|
|
|
+ card->sw_caps.uhs_max_dtr);
|
|
|
+
|
|
|
if (bus_speed) {
|
|
|
mmc_set_timing(card->host, timing);
|
|
|
- mmc_set_clock(card->host, card->sw_caps.uhs_max_dtr);
|
|
|
+ mmc_set_clock(card->host, max_rate);
|
|
|
}
|
|
|
|
|
|
return 0;
|