UHS-I bus speed mode should be set last in UHS initialization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Chris, Arindam,

mmc_sd_init_uhs_card function sets the driver type, current limit and bus
speed mode on card as well as on host controller side. Currently bus speed
mode is set by sending CMD6 to card and setting timing mode in host
controller and then before initiating tuning sequence, it also tries to
set current limit by sending CMD6 to card which fails on our host
controller (due to data CRC or timeout errors) if bus speed mode is
SDR50/SDR104 mode.

So basically bus speed mode should be set only after current limit is set
in the card and immediately after setting the bus speed mode, tuning
sequence should be initiated. So following changes is needed. If it looks
fine then I can send you this change in patch.

diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c index
0da37eb..19634d5 100644
--- a/drivers/mmc/core/sd.c
+++ b/drivers/mmc/core/sd.c
@@ -610,13 +610,13 @@ static int mmc_sd_init_uhs_card(struct mmc_card *card)
        if (err)
                goto out;

-       /* Set bus speed mode of the card */
-       err = sd_set_bus_speed_mode(card, status);
+       /* Set current limit for the card */
+       err = sd_set_current_limit(card, status);
        if (err)
                goto out;

-       /* Set current limit for the card */
-       err = sd_set_current_limit(card, status);
+       /* Set bus speed mode of the card */
+       err = sd_set_bus_speed_mode(card, status);
        if (err)
                goto out;

Regards,
Subhash

-- 
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.


--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux