Thread (4 messages) 4 messages, 3 authors, 2015-09-30

[PATCH] mmc: core: fix dead loop of mmc_retune

From: Ulf Hansson <hidden>
Date: 2015-09-30 12:47:44
Also in: linux-mediatek, linux-mmc, lkml

On 30 September 2015 at 14:01, Adrian Hunter [off-list ref] wrote:
On 30/09/15 12:37, Chaotian Jing wrote:
quoted
When get a CRC error, start the mmc_retune, it will issue CMD19/CMD21
to do tune, assume there were 10 clock phase need to try, phase 0 to
phase 6 is ok, phase 7 to phase 9 is NG, we try it from 0 to 9, so
the last CMD19/CMD21 will get CRC error, host->need_retune was set and
cause mmc_retune was called, then dead loop of mmc_retune

Signed-off-by: Chaotian Jing <chaotian.jing@mediatek.com>
Wasn't my idea to have this CRC checking in the core ;-) and sdhci
doesn't put it's tuning commands through a mmc request so it doesn't
see this issue.
That's not true for all sdhci variants. For those that uses sdhci's
->platform_execute_tuning() callback, all uses mmc_send_tuning().

I think for sdhci's default tuning path, we should change to use
mmc_send_tuning() and thus we would potentially hit this problem as
well.
But definitely the CRC logic is not meant for the tuning commands, so

Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Thanks for reviewing Adrian and for keeping an eye on "tuning" related patches.

Kind regards
Uffe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help