mirror of
https://github.com/u-boot/u-boot.git
synced 2025-01-20 09:43:53 +08:00
mmc: add host_caps checking avoid switch card improperly
Add a host capability checking to avoid the mmc stack switch the card to HIGHSPEED mode when the card supports HIGHSPEED while the host doesn't. This patch avoid furthur transaction problem when the mmc/sd card runs different mode to the host. Signed-off-by: Macpaul Lin <macpaul@andestech.com>
This commit is contained in:
parent
4692708d45
commit
2c3fbf4cbe
@ -785,6 +785,16 @@ retry_scr:
|
||||
if (!(__be32_to_cpu(switch_status[3]) & SD_HIGHSPEED_SUPPORTED))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* If the host doesn't support SD_HIGHSPEED, do not switch card to
|
||||
* HIGHSPEED mode even if the card support SD_HIGHSPPED.
|
||||
* This can avoid furthur problem when the card runs in different
|
||||
* mode between the host.
|
||||
*/
|
||||
if (!((mmc->host_caps & MMC_MODE_HS_52MHz) &&
|
||||
(mmc->host_caps & MMC_MODE_HS)))
|
||||
return 0;
|
||||
|
||||
err = sd_switch(mmc, SD_SWITCH_SWITCH, 0, 1, (u8 *)switch_status);
|
||||
|
||||
if (err)
|
||||
|
Loading…
Reference in New Issue
Block a user