
On 17/05/2017 03:38, Simon Glass wrote:
Hi Jean-Jacques,
On 15 May 2017 at 09:49, Jean-Jacques Hiblot jjhiblot@ti.com wrote:
On 15/05/2017 05:28, Simon Glass wrote:
On 12 May 2017 at 12:16, Jean-Jacques Hiblot jjhiblot@ti.com wrote:
From: Vignesh R vigneshr@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@ti.com Signed-off-by: Kishon Vijay Abraham I kishon@ti.com Signed-off-by: Jean-Jacques Hiblot jjhiblot@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@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.
OK. It'll be in v2
Regards, Simon