Message ID | 1474589577-11193-2-git-send-email-shawn.lin@rock-chips.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, On Thu, Sep 22, 2016 at 5:12 PM, Shawn Lin <shawn.lin@rock-chips.com> wrote: > Per JESD84-B51 P69, Host need to change frequency to <=52MHz Technically Page 49. In the PDF you go to page 69, but the heading on the top of the page says 49. > after setting HS_TIMING to 0x1, and host may changes frequency > to <= 200MHz after setting HS_TIMING to 0x3. That means the card > expects the clock rate to increase from the current used f_init > (which is less than 400KHz, but still being less than 52MHz) to > 52MHz, otherwise we find some eMMC devices significantly report > failure when sending status. Technically it seems like things ought to be OK at the slow speed since technically we're allowed to talk "high speed" at 400 kHZ (or at any rate <= 52MHz). ...but I guess I could also see some cards not liking that. Though I'm no expert, feel free to add my reviewed-by if it is useful: Reviewed-by: Douglas Anderson <dianders@chromium.org>
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index f4ed5ac..39fc5b2 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -1282,6 +1282,8 @@ static int mmc_select_hs400es(struct mmc_card *card) if (err) goto out_err; + mmc_set_clock(host, card->ext_csd.hs_max_dtr); + err = mmc_switch_status(card); if (err) goto out_err;
Per JESD84-B51 P69, Host need to change frequency to <=52MHz after setting HS_TIMING to 0x1, and host may changes frequency to <= 200MHz after setting HS_TIMING to 0x3. That means the card expects the clock rate to increase from the current used f_init (which is less than 400KHz, but still being less than 52MHz) to 52MHz, otherwise we find some eMMC devices significantly report failure when sending status. Reported-by: Xiao Yao <xiaoyao@rock-chips.com> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> --- Changes in v2: - improve the changelog drivers/mmc/core/mmc.c | 2 ++ 1 file changed, 2 insertions(+)