Re: [PATCH 1/2] mmc: jz4740: Work around bug on JZ4760(B)

From: Ulf Hansson
Date: Mon Feb 13 2023 - 18:49:54 EST


On Tue, 31 Jan 2023 at 22:02, Paul Cercueil <paul@xxxxxxxxxxxxxxx> wrote:
>
> On JZ4760 and JZ4760B, SD cards fail to run if the maximum clock
> rate is set to 50 MHz, even though the controller officially does
> support it.
>
> Until the actual bug is found and fixed, limit the maximum clock rate to
> 24 MHz.
>
> Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx>

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

Kind regards
Uffe


> ---
> drivers/mmc/host/jz4740_mmc.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/mmc/host/jz4740_mmc.c b/drivers/mmc/host/jz4740_mmc.c
> index 319a2a79c9a0..eb8e9607b086 100644
> --- a/drivers/mmc/host/jz4740_mmc.c
> +++ b/drivers/mmc/host/jz4740_mmc.c
> @@ -1104,6 +1104,16 @@ static int jz4740_mmc_probe(struct platform_device* pdev)
> mmc->ops = &jz4740_mmc_ops;
> if (!mmc->f_max)
> mmc->f_max = JZ_MMC_CLK_RATE;
> +
> + /*
> + * There seems to be a problem with this driver on the JZ4760 and
> + * JZ4760B SoCs. There, when using the maximum rate supported (50 MHz),
> + * the communication fails with many SD cards.
> + * Until this bug is sorted out, limit the maximum rate to 24 MHz.
> + */
> + if (host->version == JZ_MMC_JZ4760 && mmc->f_max > JZ_MMC_CLK_RATE)
> + mmc->f_max = JZ_MMC_CLK_RATE;
> +
> mmc->f_min = mmc->f_max / 128;
> mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;
>
> --
> 2.39.1
>