OSDN Git Service

mmc: core: prefer SDR50 mode over DDR50 for SD card
authorSubhash Jadavani <subhashj@codeaurora.org>
Wed, 29 Mar 2017 18:05:05 +0000 (11:05 -0700)
committerSubhash Jadavani <subhashj@codeaurora.org>
Mon, 3 Apr 2017 17:40:41 +0000 (10:40 -0700)
If Ultra High Speed SD card supports both SDR50 and DDR50 modes then
this change will give preference to SDR50 over DDR50 mode as it seems
to be more reliable for board designs. While we are doing this, this
change also fixes some indentation issues in the function we are have
modified.

Change-Id: Ifa075563ec41f43584d93f669caecbaed9369e24
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
drivers/mmc/core/sd.c

index ec5ce79..9e147a6 100644 (file)
@@ -433,26 +433,26 @@ static void sd_update_bus_speed_mode(struct mmc_card *card)
        if ((card->host->caps & MMC_CAP_UHS_SDR104) &&
            (card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR104) &&
            (card->host->f_max > UHS_SDR104_MIN_DTR)) {
-                       card->sd_bus_speed = UHS_SDR104_BUS_SPEED;
-       } else if ((card->host->caps & MMC_CAP_UHS_DDR50) &&
-                  (card->sw_caps.sd3_bus_mode & SD_MODE_UHS_DDR50) &&
-                   (card->host->f_max > UHS_DDR50_MIN_DTR)) {
-                       card->sd_bus_speed = UHS_DDR50_BUS_SPEED;
+               card->sd_bus_speed = UHS_SDR104_BUS_SPEED;
        } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 |
                    MMC_CAP_UHS_SDR50)) && (card->sw_caps.sd3_bus_mode &
                    SD_MODE_UHS_SDR50) &&
                    (card->host->f_max > UHS_SDR50_MIN_DTR)) {
-                       card->sd_bus_speed = UHS_SDR50_BUS_SPEED;
+               card->sd_bus_speed = UHS_SDR50_BUS_SPEED;
+       } else if ((card->host->caps & MMC_CAP_UHS_DDR50) &&
+                  (card->sw_caps.sd3_bus_mode & SD_MODE_UHS_DDR50) &&
+                   (card->host->f_max > UHS_DDR50_MIN_DTR)) {
+               card->sd_bus_speed = UHS_DDR50_BUS_SPEED;
        } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 |
                    MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR25)) &&
                   (card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR25) &&
                 (card->host->f_max > UHS_SDR25_MIN_DTR)) {
-                       card->sd_bus_speed = UHS_SDR25_BUS_SPEED;
+               card->sd_bus_speed = UHS_SDR25_BUS_SPEED;
        } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 |
                    MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR25 |
                    MMC_CAP_UHS_SDR12)) && (card->sw_caps.sd3_bus_mode &
                    SD_MODE_UHS_SDR12)) {
-                       card->sd_bus_speed = UHS_SDR12_BUS_SPEED;
+               card->sd_bus_speed = UHS_SDR12_BUS_SPEED;
        }
 }