Re: [PATCH] ARM: dts: imx6qdl: Specify IMX6QDL_CLK_IPG as "ipg" clock for SDMA

From: Lucas Stach
Date: Mon Mar 25 2019 - 06:39:21 EST


Am Sonntag, den 24.03.2019, 22:01 -0700 schrieb Andrey Smirnov:
> Since 25aaa75df1e6 SDMA driver uses clock rates of "ipg" and "ahb"
> clock to determine if it needs to configure the IP block as operating
> at 1:1 or 1:2 clock ratio (ACR bit in SDMAARM_CONFIG). Specifying both
> clocks as IMX6QDL_CLK_SDMA results in driver incorrectly thinking that
> ratio is 1:1 which results in broken SDMA functionality(this at least
> breaks RAVE SP serdev driver on RDU2). Fix the code to specify
> IMX6QDL_CLK_IPG as "ipg" clock for SDMA, to the problem.

As this is breaking DT backward compatibility, I think we need a
blacklist in the driver for SOCs where the DT is known to be broken.

But fixing the broken DT is still a good idea, so:

Reviewed-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx>

> Fixes: 25aaa75df1e6 ("dmaengine: imx-sdma: add clock ratio 1:1 check")
> > Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx>
> > Cc: Angus Ainslie (Purism) <angus@xxxxxxxx>
> > Cc: Chris Healy <cphealy@xxxxxxxxx>
> > Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
> > Cc: Fabio Estevam <fabio.estevam@xxxxxxx>
> > Cc: Shawn Guo <shawnguo@xxxxxxxxxx>
> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> ---
>
> This probably has been fixed already, so please ignore this patch if
> that is the case.
>
> Thanks,
> Andrey Smirnov
>
> Âarch/arm/boot/dts/imx6qdl.dtsi | 2 +-
> Â1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
> index 9f9aa6e7ed0e..354feba077b2 100644
> --- a/arch/arm/boot/dts/imx6qdl.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl.dtsi
> @@ -949,7 +949,7 @@
> > Â compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma";
> > Â reg = <0x020ec000 0x4000>;
> > Â interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
> > - clocks = <&clks IMX6QDL_CLK_SDMA>,
> > + clocks = <&clks IMX6QDL_CLK_IPG>,
> > Â Â<&clks IMX6QDL_CLK_SDMA>;
> > Â clock-names = "ipg", "ahb";
> > Â #dma-cells = <3>;