diff mbox series

mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+

Message ID ee8af5d631f5331139ffea714539030d97352e93.1622811525.git.geert+renesas@glider.be
State New
Headers show
Series mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+ | expand

Commit Message

Geert Uytterhoeven June 4, 2021, 12:59 p.m. UTC
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 <geert+renesas@glider.be>
---
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(-)

Comments

Wolfram Sang June 4, 2021, 1:16 p.m. UTC | #1
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 <geert+renesas@glider.be>

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 <wsa+renesas@sang-engineering.com>
Yoshihiro Shimoda June 7, 2021, 1:08 a.m. UTC | #2
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 <geert+renesas@glider.be>


Thank you for the patch!

Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>


Best regards,
Yoshihiro Shimoda
Ulf Hansson June 8, 2021, 1:16 p.m. UTC | #3
On Fri, 4 Jun 2021 at 14:59, Geert Uytterhoeven <geert+renesas@glider.be> 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 <geert+renesas@glider.be>


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

>
diff mbox series

Patch

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 },