[U-Boot] [PATCH 22/22] mmc: Retry some MMC cmds on failure

Simon Glass sjg at chromium.org
Wed May 17 01:38:53 UTC 2017


Hi Jean-Jacques,

On 15 May 2017 at 09:49, Jean-Jacques Hiblot <jjhiblot at ti.com> wrote:
>
>
> On 15/05/2017 05:28, Simon Glass wrote:
>>
>> On 12 May 2017 at 12:16, Jean-Jacques Hiblot <jjhiblot at ti.com> wrote:
>>>
>>> From: Vignesh R <vigneshr at ti.com>
>>>
>>> With certain SD cards like Kingston 8GB/16GB UHS card, it is seen that
>>> MMC_CMD_ALL_SEND_CID cmd fails on first attempt, but succeeds
>>> subsequently. Therefore, retry MMC_CMD_ALL_SEND_CID cmd at least thrice
>>> as done in Linux kernel.
>>> Similarly, it is seen that MMC_CMD_SET_BLOCKLEN may fail on first
>>> attempt, therefore retry this cmd five times as done in kernel.
>>>
>>> Signed-off-by: Vignesh R <vigneshr at ti.com>
>>> Signed-off-by: Kishon Vijay Abraham I <kishon at ti.com>
>>> Signed-off-by: Jean-Jacques Hiblot <jjhiblot at ti.com>
>>> ---
>>>   drivers/mmc/mmc.c | 15 ++++++++++++---
>>>   1 file changed, 12 insertions(+), 3 deletions(-)
>>>
>> So sad to see this sort of thing.
>>
>> Can we enable this via a quirk and a Kconfig? Could default to on, but
>> I'm not sure we want this code in regardless.
>>
>> Reviewed-by: Simon Glass <sjg at chromium.org>
>
> I admit that it's ugly...  no clean code survives contact with a few hundred
> different hardware parts.
> We could add KConfig options to enable/disable those quirks but I don't see
> the point of being able to. It's just a basic retry that has no impact on
> things that work well already and might make other work more reliably.

I'm OK with it being there. But I suggest it should be a quirk flag in
struct mmc. You can always have it enabled (by default), but that way
it becomes very clear that this is a work-around, since it can be
disabled at run-time.

Regards,
Simon


More information about the U-Boot mailing list