diff options
Diffstat (limited to 'drivers/mmc/core/sdio.c')
-rw-r--r-- | drivers/mmc/core/sdio.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c index 9565d38d91a4..3a64933466b8 100644 --- a/drivers/mmc/core/sdio.c +++ b/drivers/mmc/core/sdio.c | |||
@@ -485,23 +485,27 @@ static int sdio_set_bus_speed_mode(struct mmc_card *card) | |||
485 | bus_speed = SDIO_SPEED_SDR104; | 485 | bus_speed = SDIO_SPEED_SDR104; |
486 | timing = MMC_TIMING_UHS_SDR104; | 486 | timing = MMC_TIMING_UHS_SDR104; |
487 | card->sw_caps.uhs_max_dtr = UHS_SDR104_MAX_DTR; | 487 | card->sw_caps.uhs_max_dtr = UHS_SDR104_MAX_DTR; |
488 | card->sd_bus_speed = UHS_SDR104_BUS_SPEED; | ||
488 | } else if ((card->host->caps & MMC_CAP_UHS_DDR50) && | 489 | } else if ((card->host->caps & MMC_CAP_UHS_DDR50) && |
489 | (card->sw_caps.sd3_bus_mode & SD_MODE_UHS_DDR50)) { | 490 | (card->sw_caps.sd3_bus_mode & SD_MODE_UHS_DDR50)) { |
490 | bus_speed = SDIO_SPEED_DDR50; | 491 | bus_speed = SDIO_SPEED_DDR50; |
491 | timing = MMC_TIMING_UHS_DDR50; | 492 | timing = MMC_TIMING_UHS_DDR50; |
492 | card->sw_caps.uhs_max_dtr = UHS_DDR50_MAX_DTR; | 493 | card->sw_caps.uhs_max_dtr = UHS_DDR50_MAX_DTR; |
494 | card->sd_bus_speed = UHS_DDR50_BUS_SPEED; | ||
493 | } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | | 495 | } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | |
494 | MMC_CAP_UHS_SDR50)) && (card->sw_caps.sd3_bus_mode & | 496 | MMC_CAP_UHS_SDR50)) && (card->sw_caps.sd3_bus_mode & |
495 | SD_MODE_UHS_SDR50)) { | 497 | SD_MODE_UHS_SDR50)) { |
496 | bus_speed = SDIO_SPEED_SDR50; | 498 | bus_speed = SDIO_SPEED_SDR50; |
497 | timing = MMC_TIMING_UHS_SDR50; | 499 | timing = MMC_TIMING_UHS_SDR50; |
498 | card->sw_caps.uhs_max_dtr = UHS_SDR50_MAX_DTR; | 500 | card->sw_caps.uhs_max_dtr = UHS_SDR50_MAX_DTR; |
501 | card->sd_bus_speed = UHS_SDR50_BUS_SPEED; | ||
499 | } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | | 502 | } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | |
500 | MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR25)) && | 503 | MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR25)) && |
501 | (card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR25)) { | 504 | (card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR25)) { |
502 | bus_speed = SDIO_SPEED_SDR25; | 505 | bus_speed = SDIO_SPEED_SDR25; |
503 | timing = MMC_TIMING_UHS_SDR25; | 506 | timing = MMC_TIMING_UHS_SDR25; |
504 | card->sw_caps.uhs_max_dtr = UHS_SDR25_MAX_DTR; | 507 | card->sw_caps.uhs_max_dtr = UHS_SDR25_MAX_DTR; |
508 | card->sd_bus_speed = UHS_SDR25_BUS_SPEED; | ||
505 | } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | | 509 | } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | |
506 | MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR25 | | 510 | MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR25 | |
507 | MMC_CAP_UHS_SDR12)) && (card->sw_caps.sd3_bus_mode & | 511 | MMC_CAP_UHS_SDR12)) && (card->sw_caps.sd3_bus_mode & |
@@ -509,6 +513,7 @@ static int sdio_set_bus_speed_mode(struct mmc_card *card) | |||
509 | bus_speed = SDIO_SPEED_SDR12; | 513 | bus_speed = SDIO_SPEED_SDR12; |
510 | timing = MMC_TIMING_UHS_SDR12; | 514 | timing = MMC_TIMING_UHS_SDR12; |
511 | card->sw_caps.uhs_max_dtr = UHS_SDR12_MAX_DTR; | 515 | card->sw_caps.uhs_max_dtr = UHS_SDR12_MAX_DTR; |
516 | card->sd_bus_speed = UHS_SDR12_BUS_SPEED; | ||
512 | } | 517 | } |
513 | 518 | ||
514 | err = mmc_io_rw_direct(card, 0, 0, SDIO_CCCR_SPEED, 0, &speed); | 519 | err = mmc_io_rw_direct(card, 0, 0, SDIO_CCCR_SPEED, 0, &speed); |