From: Chaotian Jing <chaotian.jing@mediatek.com> To: Ulf Hansson <ulf.hansson@linaro.org> Cc: srv_heupstream@mediatek.com, Shawn Lin <shawn.lin@rock-chips.com>, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, Harish Jenny K N <harish_kandiga@mentor.com>, linux-arm-kernel@lists.infradead.org, Hongjie Fang <hongjiefang@asrmicro.com>, Matthias Brugger <matthias.bgg@gmail.com>, Simon Horman <horms+renesas@verge.net.au>, Kyle Roeschley <kyle.roeschley@ni.com>, Chaotian Jing <chaotian.jing@mediatek.com> Subject: [PATCH] mmc: mmc: Fix HS setting in mmc_hs400_to_hs200() Date: Thu, 31 Jan 2019 15:53:31 +0800 Message-ID: <1548921212-5219-1-git-send-email-chaotian.jing@mediatek.com> (raw) mmc_hs400_to_hs200() begins with the card and host in HS400 mode. Therefore, any commands sent to the card should use HS400 timing. It is incorrect to reduce frequency to 50Mhz before sending the switch command, in this case, only reduce clock frequency to 50Mhz but without host timming change, host is still in hs400 mode but clock changed from 200Mhz to 50Mhz, which makes the tuning result unsuitable and cause the switch command gets response CRC error. this patch refers to mmc_select_hs400(), make the reduce clock frequency after card timing change. Signed-off-by: Chaotian Jing <chaotian.jing@mediatek.com> --- drivers/mmc/core/mmc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index da892a5..21b811e 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -1239,10 +1239,6 @@ int mmc_hs400_to_hs200(struct mmc_card *card) int err; u8 val; - /* Reduce frequency to HS */ - max_dtr = card->ext_csd.hs_max_dtr; - mmc_set_clock(host, max_dtr); - /* Switch HS400 to HS DDR */ val = EXT_CSD_TIMING_HS; err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_HS_TIMING, @@ -1253,6 +1249,10 @@ int mmc_hs400_to_hs200(struct mmc_card *card) mmc_set_timing(host, MMC_TIMING_MMC_DDR52); + /* Reduce frequency to HS */ + max_dtr = card->ext_csd.hs_max_dtr; + mmc_set_clock(host, max_dtr); + err = mmc_switch_status(card); if (err) goto out_err; -- 1.8.1.1.dirty _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply index Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-01-31 7:53 Chaotian Jing [this message] 2019-01-31 15:58 ` Ulf Hansson 2019-02-01 1:38 ` Chaotian Jing 2019-02-01 8:10 ` Ulf Hansson 2019-02-04 9:56 ` Adrian Hunter 2019-02-04 10:54 ` Ulf Hansson 2019-02-04 13:40 ` Adrian Hunter 2019-02-05 13:06 ` Ulf Hansson 2019-02-05 13:42 ` Adrian Hunter 2019-02-12 2:04 ` Chaotian Jing 2019-02-12 8:04 ` Adrian Hunter 2019-02-13 0:54 ` Chaotian Jing 2019-02-13 3:13 ` Chaotian Jing 2019-02-13 7:24 ` Ulf Hansson 2019-02-13 7:55 ` Chaotian Jing 2019-02-13 8:33 ` Ulf Hansson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1548921212-5219-1-git-send-email-chaotian.jing@mediatek.com \ --to=chaotian.jing@mediatek.com \ --cc=harish_kandiga@mentor.com \ --cc=hongjiefang@asrmicro.com \ --cc=horms+renesas@verge.net.au \ --cc=kyle.roeschley@ni.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=linux-mmc@vger.kernel.org \ --cc=matthias.bgg@gmail.com \ --cc=shawn.lin@rock-chips.com \ --cc=srv_heupstream@mediatek.com \ --cc=ulf.hansson@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-ARM-Kernel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-arm-kernel/0 linux-arm-kernel/git/0.git git clone --mirror https://lore.kernel.org/linux-arm-kernel/1 linux-arm-kernel/git/1.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-arm-kernel linux-arm-kernel/ https://lore.kernel.org/linux-arm-kernel \ linux-arm-kernel@lists.infradead.org public-inbox-index linux-arm-kernel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.infradead.lists.linux-arm-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git