lkml.org 
[lkml]   [2021]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH] mmc: core: add a power cycle when CMD11 fails
On Wed, 10 Feb 2021 at 06:12, DooHyun Hwang <dh0421.hwang@samsung.com> wrote:
>
> A power cycle is required if CMD11 fails.
> CMD11 failure should be handled as no response.
>
> If there is a timeout error that means no response to the CMD11,
> do not send the CMD11 again and the power cycle is required.
> Any other errors for CMD11 are the same because CMD11 failed.
>
> On some bad SD Card, CMD11 may fail but the card may have already
> invoked the voltage switch sequence.
> In this case, it is necessary to retry without voltage switching
> after power cycle.
>
> Signed-off-by: DooHyun Hwang <dh0421.hwang@samsung.com>

Applied for next, thanks!

I took the liberty of updating the commit message a bit, to try to
clarify things. Moreover, I have tagged this for stable kernels.

BTW, did you try to force the error to -EAGAIN, to keep retrying for a
couple of times? If so, did it end up with the same kind of errors?

> ---
> drivers/mmc/core/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
> index 1136b859ddd8..a6674df2a7bb 100644
> --- a/drivers/mmc/core/core.c
> +++ b/drivers/mmc/core/core.c
> @@ -1207,7 +1207,7 @@ int mmc_set_uhs_voltage(struct mmc_host *host, u32 ocr)
>
> err = mmc_wait_for_cmd(host, &cmd, 0);
> if (err)
> - return err;
> + goto power_cycle;
>
> if (!mmc_host_is_spi(host) && (cmd.resp[0] & R1_ERROR))
> return -EIO;
> --
> 2.29.0
>

Kind regards
Uffe

\
 
 \ /
  Last update: 2021-03-02 16:39    [W:0.082 / U:1.532 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site