Re: [PATCH v2] mmc: dw_mmc: Fix UHS tuning on some brand of cards.

From: Enric Balletbo Serra
Date: Mon Apr 25 2016 - 11:29:32 EST


Oh, damn, I didn't include the proper tags,

[PATCH v2] mmc: dw_mmc: Wait for data transfer after response errors.
[PATCH v2] mmc: dw_mmc: Fix UHS tuning on some brand of cards

should be

[PATCH v2 0/1] mmc: dw_mmc: Fix UHS tuning on some brand of cards
[PATCH v2 1/1] mmc: dw_mmc: Wait for data transfer after response errors.

2016-04-25 17:18 GMT+02:00 Enric Balletbo i Serra
<enric.balletbo@xxxxxxxxxxxxx>:
> Hi,
>
> I introduced the cover letter to give some background about this.
>
> I have been investigating a problem related to at least one specific sdcard when
> UHS-I is set. The card is not detected due the tuning phase reports a
> failure. Since the problem is only reproduced with a single model of a single
> brand of card, it is probably a card firmware issue, but the card works fine
> on my laptop.
>
> The first attempt to fix this was a patch sent by Doug Anderson [1], but Alim
> Akhtar found that this produced randomly a hung task on Peach-pi. I can confirm
> that it's easy to reproduce the hung task, either, with cold boots or suspend to
> ram tests.
>
> I tried to fix both problems (the original issue and the one introduced by the
> patch) in different ways, but I ended thinking that this second proposal is the
> most simple that solves both issues. So let's try to fix this by handling the
> response CRC error slightly differently when tuning command is happening.
>
> I tested the patch on both platforms, on exynos and on rockhip. I did lots of
> tests and at the moment the patch seems to fix the rockchip issue and don't
> hung on exynos. I'll continue testing meanwhile we discuss about it.
>
> I think the patch, at least, needs the Doug's approval (as he dig into the issue
> before) and the Tested-by Alim. So will be good if you have a slot of time to
> look a bit into this.
>
> Thanks in advance.
> Enric
>
> [1] https://lkml.org/lkml/2015/5/18/495
>
> Doug Anderson (1):
> mmc: dw_mmc: Wait for data transfer after response errors.
>
> drivers/mmc/host/dw_mmc.c | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> --
> 2.1.0
>