Re: [PATCH v3 3/3] mmc: renesas_sdhi: do hard reset if possible

Geert Uytterhoeven
2021-04-28T14:36:31Z

Hi Wolfram,

On Wed, Mar 17, 2021 at 10:17 AM Wolfram Sang
<wsa+renesas@sang-engineering.com> wrote:
> All recent SDHI instances can be reset via the reset controller. If one
> is found, use it instead of the open coded reset. This is to get a
> future-proof sane reset state.
>
> Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

Thanks for your patch, which is now commit b4d86f37eacb7246 ("mmc:
renesas_sdhi: do hard reset if possible") in mmc/next.

This breaks SDHI on koelsch (R-Car M2-W).
In v5.10, v5.11, and v512, it works fine:

sh_mobile_sdhi ee100000.mmc: timeout waiting for hardware interrupt (CMD19)
mmc0: new ultra high speed SDR104 SDHC card at address aaaa
mmcblk0: mmc0:aaaa SM32G 29.7 GiB
mmcblk0: p1

Note that I do see one timeout during identification.

After b4d86f37eacb7246 (bisected), it fails:

sh_mobile_sdhi ee100000.mmc: timeout waiting for hardware interrupt (CMD19)
sh_mobile_sdhi ee100000.mmc: timeout waiting for hardware interrupt (CMD19)
[...]
sh_mobile_sdhi ee100000.mmc: timeout waiting for hardware interrupt (CMD19)
mmc0: tuning execution failed: -5
mmc0: error -5 whilst initialising SD card
sh_mobile_sdhi ee100000.mmc: timeout waiting for hardware interrupt (CMD19)
sh_mobile_sdhi ee100000.mmc: timeout waiting for hardware interrupt (CMD19)
[...]

Given the single timeout I see with older kernels, the issue may be that the
harder reset causes that timeout to repeat ad infinitum?

With renesas-drivers-2021-04-27-v5.12, I saw various different timeouts:

sh_mobile_sdhi ee100000.mmc: timeout waiting for hardware interrupt (CMD19)
sh_mobile_sdhi ee140000.mmc: timeout waiting for hardware interrupt (CMD0)
sh_mobile_sdhi ee140000.mmc: timeout waiting for hardware interrupt (CMD5)
sh_mobile_sdhi ee140000.mmc: timeout waiting for hardware interrupt (CMD52)
sh_mobile_sdhi ee140000.mmc: timeout waiting for hardware interrupt (CMD55)
sh_mobile_sdhi ee140000.mmc: timeout waiting for hardware interrupt (CMD8)

(ee100000 is the SD104 slot, ee140000 is the SDR50 slot).

The card is a brand new SanDisk Extreme 32GB A1 microSD card in the
microSD adapter that came with the card (Conrad 1553726).

On R-Car H3 ES2.0 (Salvator-XS), the card works fine, without any timeouts:

mmc1: new ultra high speed SDR104 SDHC card at address aaaa
mmcblk1: mmc1:aaaa SM32G 29.7 GiB
mmcblk1: p1

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds