Hi Andre,

> Subject: [PATCH 1/2] sunxi: mmc: Fix T113-s3 MMC clock divider
> 
> On the Allwinner D1/R528/T113-s3 SoCs the MMC clock source
> selected by mux value 1 is PLL_PERIPH0(1x), not (2x), as in the other
> SoCs.
> But we have still the hidden divisor of 2 in the MMC mod clock, so
> need to explicitly compensate for that on those SoCs.
> 
> This leads to the actually programmed clock rate to be double
> compared to before, which increases the MMC performance on those
> SoCs.
> 
> Signed-off-by: Andre Przywara <andre.przyw...@arm.com>
> Reported-by: Kuba Szczodrzyński <k...@szczodrzynski.pl>
> ---
>  drivers/mmc/sunxi_mmc.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
> index 0b56d1405be..8f72d758e46 100644
> --- a/drivers/mmc/sunxi_mmc.c
> +++ b/drivers/mmc/sunxi_mmc.c
> @@ -92,6 +92,13 @@ static int mmc_set_mod_clk(struct
> sunxi_mmc_priv *priv, unsigned int hz)
>               pll = CCM_MMC_CTRL_PLL6;
>               pll_hz = clock_get_pll6();
>  #endif
> +             /*
> +              * On the D1/R528/T113 mux source 1 refers to
> PLL_PERIPH0(1x),
> +              * like for the older SoCs. However we still have the
> hidden
> +              * divider of 2x, so compensate for that here.
> +              */
> +             if (IS_ENABLED(CONFIG_MACH_SUN8I_R528))

Use CONFIG_IS_ENABLED(MACH_SUN8I_R528)?

Regards,
Peng.

> +                     pll_hz /= 2;
>       }
> 
>       div = pll_hz / hz;
> --
> 2.25.1

Reply via email to