2021-06-04 13:02:48

by Geert Uytterhoeven

[permalink] [raw]
Subject: [PATCH] mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+

R-Car M3-W ES3.0 is marketed as R-Car M3-W+ (R8A77961), and has its own
compatible value "renesas,r8a77961".

Hence using soc_device_match() with soc_id = "r8a7796" and revision =
"ES3.*" does not actually match running on an R-Car M3-W+ SoC.

Fix this by matching with soc_id = "r8a77961" instead.

Fixes: a38c078fea0b1393 ("mmc: renesas_sdhi: Avoid bad TAP in HS400")
Signed-off-by: Geert Uytterhoeven <[email protected]>
---
Boot-tested on Salvator-XS with R-Car M3-W+ ES3.0.
No difference seen in eMMC/SHHC detection:

mmc0: new HS400 MMC card at address 0001
mmcblk0: mmc0:0001 BGSD4R 29.1 GiB
mmcblk0boot0: mmc0:0001 BGSD4R 31.9 MiB
mmcblk0boot1: mmc0:0001 BGSD4R 31.9 MiB
mmcblk0rpmb: mmc0:0001 BGSD4R 4.00 MiB, chardev (247:0)
mmcblk0: p1
mmc1: new ultra high speed SDR104 SDHC card at address aaaa
mmcblk1: mmc1:aaaa SL16G 14.8 GiB
mmcblk1: p1
mmc2: new ultra high speed SDR104 SDHC card at address aaaa
mmcblk2: mmc2:aaaa SL32G 29.7 GiB
mmcblk2: p1
---
drivers/mmc/host/renesas_sdhi_core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c
index 635bf31a67359f10..b719eda6b8619453 100644
--- a/drivers/mmc/host/renesas_sdhi_core.c
+++ b/drivers/mmc/host/renesas_sdhi_core.c
@@ -939,7 +939,7 @@ static const struct soc_device_attribute sdhi_quirks_match[] = {
{ .soc_id = "r8a7795", .revision = "ES3.*", .data = &sdhi_quirks_bad_taps2367 },
{ .soc_id = "r8a7796", .revision = "ES1.[012]", .data = &sdhi_quirks_4tap_nohs400 },
{ .soc_id = "r8a7796", .revision = "ES1.*", .data = &sdhi_quirks_r8a7796_es13 },
- { .soc_id = "r8a7796", .revision = "ES3.*", .data = &sdhi_quirks_bad_taps1357 },
+ { .soc_id = "r8a77961", .data = &sdhi_quirks_bad_taps1357 },
{ .soc_id = "r8a77965", .data = &sdhi_quirks_r8a77965 },
{ .soc_id = "r8a77980", .data = &sdhi_quirks_nohs400 },
{ .soc_id = "r8a77990", .data = &sdhi_quirks_r8a77990 },
--
2.25.1


2021-06-04 13:18:52

by Wolfram Sang

[permalink] [raw]
Subject: Re: [PATCH] mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+

On Fri, Jun 04, 2021 at 02:59:43PM +0200, Geert Uytterhoeven wrote:
> R-Car M3-W ES3.0 is marketed as R-Car M3-W+ (R8A77961), and has its own
> compatible value "renesas,r8a77961".
>
> Hence using soc_device_match() with soc_id = "r8a7796" and revision =
> "ES3.*" does not actually match running on an R-Car M3-W+ SoC.
>
> Fix this by matching with soc_id = "r8a77961" instead.
>
> Fixes: a38c078fea0b1393 ("mmc: renesas_sdhi: Avoid bad TAP in HS400")
> Signed-off-by: Geert Uytterhoeven <[email protected]>

Great, thanks for this fix!

> Boot-tested on Salvator-XS with R-Car M3-W+ ES3.0.
> No difference seen in eMMC/SHHC detection:

You'd need some stress testing plus debug output of the TAPs chosen to
actually see a difference. However, the patch is obviously correct.
Testing if soc_id actually matches now is good enough.

Reviewed-by: Wolfram Sang <[email protected]>


Attachments:
(No filename) (927.00 B)
signature.asc (849.00 B)
Download all attachments

2021-06-04 13:22:31

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+

Hi Wolfram,

On Fri, Jun 4, 2021 at 3:16 PM Wolfram Sang
<[email protected]> wrote:
> On Fri, Jun 04, 2021 at 02:59:43PM +0200, Geert Uytterhoeven wrote:
> > R-Car M3-W ES3.0 is marketed as R-Car M3-W+ (R8A77961), and has its own
> > compatible value "renesas,r8a77961".
> >
> > Hence using soc_device_match() with soc_id = "r8a7796" and revision =
> > "ES3.*" does not actually match running on an R-Car M3-W+ SoC.
> >
> > Fix this by matching with soc_id = "r8a77961" instead.
> >
> > Fixes: a38c078fea0b1393 ("mmc: renesas_sdhi: Avoid bad TAP in HS400")
> > Signed-off-by: Geert Uytterhoeven <[email protected]>
>
> Great, thanks for this fix!
>
> > Boot-tested on Salvator-XS with R-Car M3-W+ ES3.0.
> > No difference seen in eMMC/SHHC detection:
>
> You'd need some stress testing plus debug output of the TAPs chosen to
> actually see a difference. However, the patch is obviously correct.
> Testing if soc_id actually matches now is good enough.

FTR, I did check that part.

> Reviewed-by: Wolfram Sang <[email protected]>

Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

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

2021-06-04 16:15:35

by Niklas Söderlund

[permalink] [raw]
Subject: Re: [PATCH] mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+

Hi Geert,

Thanks for your work.

On 2021-06-04 14:59:43 +0200, Geert Uytterhoeven wrote:
> R-Car M3-W ES3.0 is marketed as R-Car M3-W+ (R8A77961), and has its own
> compatible value "renesas,r8a77961".
>
> Hence using soc_device_match() with soc_id = "r8a7796" and revision =
> "ES3.*" does not actually match running on an R-Car M3-W+ SoC.
>
> Fix this by matching with soc_id = "r8a77961" instead.
>
> Fixes: a38c078fea0b1393 ("mmc: renesas_sdhi: Avoid bad TAP in HS400")
> Signed-off-by: Geert Uytterhoeven <[email protected]>

Reviewed-by: Niklas S?derlund <[email protected]>

> ---
> Boot-tested on Salvator-XS with R-Car M3-W+ ES3.0.
> No difference seen in eMMC/SHHC detection:
>
> mmc0: new HS400 MMC card at address 0001
> mmcblk0: mmc0:0001 BGSD4R 29.1 GiB
> mmcblk0boot0: mmc0:0001 BGSD4R 31.9 MiB
> mmcblk0boot1: mmc0:0001 BGSD4R 31.9 MiB
> mmcblk0rpmb: mmc0:0001 BGSD4R 4.00 MiB, chardev (247:0)
> mmcblk0: p1
> mmc1: new ultra high speed SDR104 SDHC card at address aaaa
> mmcblk1: mmc1:aaaa SL16G 14.8 GiB
> mmcblk1: p1
> mmc2: new ultra high speed SDR104 SDHC card at address aaaa
> mmcblk2: mmc2:aaaa SL32G 29.7 GiB
> mmcblk2: p1
> ---
> drivers/mmc/host/renesas_sdhi_core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c
> index 635bf31a67359f10..b719eda6b8619453 100644
> --- a/drivers/mmc/host/renesas_sdhi_core.c
> +++ b/drivers/mmc/host/renesas_sdhi_core.c
> @@ -939,7 +939,7 @@ static const struct soc_device_attribute sdhi_quirks_match[] = {
> { .soc_id = "r8a7795", .revision = "ES3.*", .data = &sdhi_quirks_bad_taps2367 },
> { .soc_id = "r8a7796", .revision = "ES1.[012]", .data = &sdhi_quirks_4tap_nohs400 },
> { .soc_id = "r8a7796", .revision = "ES1.*", .data = &sdhi_quirks_r8a7796_es13 },
> - { .soc_id = "r8a7796", .revision = "ES3.*", .data = &sdhi_quirks_bad_taps1357 },
> + { .soc_id = "r8a77961", .data = &sdhi_quirks_bad_taps1357 },
> { .soc_id = "r8a77965", .data = &sdhi_quirks_r8a77965 },
> { .soc_id = "r8a77980", .data = &sdhi_quirks_nohs400 },
> { .soc_id = "r8a77990", .data = &sdhi_quirks_r8a77990 },
> --
> 2.25.1
>

--
Regards,
Niklas S?derlund

2021-06-07 01:10:39

by Yoshihiro Shimoda

[permalink] [raw]
Subject: RE: [PATCH] mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+

Hi Geert-san,

> From: Geert Uytterhoeven, Sent: Friday, June 4, 2021 10:00 PM
>
> R-Car M3-W ES3.0 is marketed as R-Car M3-W+ (R8A77961), and has its own
> compatible value "renesas,r8a77961".
>
> Hence using soc_device_match() with soc_id = "r8a7796" and revision =
> "ES3.*" does not actually match running on an R-Car M3-W+ SoC.
>
> Fix this by matching with soc_id = "r8a77961" instead.
>
> Fixes: a38c078fea0b1393 ("mmc: renesas_sdhi: Avoid bad TAP in HS400")
> Signed-off-by: Geert Uytterhoeven <[email protected]>

Thank you for the patch!

Reviewed-by: Yoshihiro Shimoda <[email protected]>

Best regards,
Yoshihiro Shimoda

2021-06-09 01:36:26

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH] mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+

On Fri, 4 Jun 2021 at 14:59, Geert Uytterhoeven <[email protected]> wrote:
>
> R-Car M3-W ES3.0 is marketed as R-Car M3-W+ (R8A77961), and has its own
> compatible value "renesas,r8a77961".
>
> Hence using soc_device_match() with soc_id = "r8a7796" and revision =
> "ES3.*" does not actually match running on an R-Car M3-W+ SoC.
>
> Fix this by matching with soc_id = "r8a77961" instead.
>
> Fixes: a38c078fea0b1393 ("mmc: renesas_sdhi: Avoid bad TAP in HS400")
> Signed-off-by: Geert Uytterhoeven <[email protected]>

Applied for fixes and by adding a stable tag, thanks!

Kind regards
Uffe


> ---
> Boot-tested on Salvator-XS with R-Car M3-W+ ES3.0.
> No difference seen in eMMC/SHHC detection:
>
> mmc0: new HS400 MMC card at address 0001
> mmcblk0: mmc0:0001 BGSD4R 29.1 GiB
> mmcblk0boot0: mmc0:0001 BGSD4R 31.9 MiB
> mmcblk0boot1: mmc0:0001 BGSD4R 31.9 MiB
> mmcblk0rpmb: mmc0:0001 BGSD4R 4.00 MiB, chardev (247:0)
> mmcblk0: p1
> mmc1: new ultra high speed SDR104 SDHC card at address aaaa
> mmcblk1: mmc1:aaaa SL16G 14.8 GiB
> mmcblk1: p1
> mmc2: new ultra high speed SDR104 SDHC card at address aaaa
> mmcblk2: mmc2:aaaa SL32G 29.7 GiB
> mmcblk2: p1
> ---
> drivers/mmc/host/renesas_sdhi_core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c
> index 635bf31a67359f10..b719eda6b8619453 100644
> --- a/drivers/mmc/host/renesas_sdhi_core.c
> +++ b/drivers/mmc/host/renesas_sdhi_core.c
> @@ -939,7 +939,7 @@ static const struct soc_device_attribute sdhi_quirks_match[] = {
> { .soc_id = "r8a7795", .revision = "ES3.*", .data = &sdhi_quirks_bad_taps2367 },
> { .soc_id = "r8a7796", .revision = "ES1.[012]", .data = &sdhi_quirks_4tap_nohs400 },
> { .soc_id = "r8a7796", .revision = "ES1.*", .data = &sdhi_quirks_r8a7796_es13 },
> - { .soc_id = "r8a7796", .revision = "ES3.*", .data = &sdhi_quirks_bad_taps1357 },
> + { .soc_id = "r8a77961", .data = &sdhi_quirks_bad_taps1357 },
> { .soc_id = "r8a77965", .data = &sdhi_quirks_r8a77965 },
> { .soc_id = "r8a77980", .data = &sdhi_quirks_nohs400 },
> { .soc_id = "r8a77990", .data = &sdhi_quirks_r8a77990 },
> --
> 2.25.1
>