use default speed of the eMMC

From: ìëì
Date: Tue May 24 2016 - 05:05:19 EST


Dear chrisball.

Hello, I'm Minwoo Jang.

I have a question about using default speed of the eMMC.

When default speed is used, mmc_select_bus_width() is never called.

So, eMMC can not be set 4 bit or 8 bit bus width, I think.

Please, give me your opinions on the following diff codes.

Thank you.

=====================================================

diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 94b4462..3b1cc4d 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -952,6 +952,8 @@ static int mmc_select_bus_width(struct mmc_card *card)

if (!err) {
err = bus_width;
+ pr_warn("%s: switch to bus width %d\n",
+ mmc_hostname(host), (1 << bus_width));
break;
} else {
pr_warn("%s: switch to bus width %d failed\n",
@@ -1500,6 +1502,14 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
if (err)
goto err;
}
+ } else {
+ /* Select the bus width for normal speed mode */
+ err = mmc_select_bus_width(card);
+ if (IS_ERR_VALUE(err)) {
+ pr_warn("%s: Selecting bus width failed\n",
+ mmc_hostname(card->host));
+ goto err;
+ }
}

Best regards,

MW Jang.