Message ID | 20190329064924.8728-1-andrew.smirnov@gmail.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Commit | b14c872eebc501b9640b04f4a152df51d6eaf2fc |
Headers | show |
Series | [v3,1/9] ARM: dts: imx6qdl: Specify IMX6QDL_CLK_IPG as "ipg" clock to SDMA | expand |
On Fri, Mar 29, 2019 at 1:49 AM Andrey Smirnov <andrew.smirnov@gmail.com> wrote: > > 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 funtionality(this at least > breaks RAVE SP serdev driver on RDU2). Fix the code to specify > IMX6QDL_CLK_IPG as "ipg" clock for SDMA, to avoid detecting incorrect > clock ratio. > Thank you for this! I the 5.1 kernel is the first revision to include the i.MX6 kit from Logic PD and I thought I messed something up, so I was off in a completely different direction trying to figure out why it was broken. With your patch, my board works again! > Fixes: 25aaa75df1e6 ("dmaengine: imx-sdma: add clock ratio 1:1 check") > Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> > Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Tested-by: Adam Ford <aford173@gmail.com> #imx6q-logicpd > Cc: Angus Ainslie (Purism) <angus@akkea.ca> > Cc: Chris Healy <cphealy@gmail.com> > Cc: Lucas Stach <l.stach@pengutronix.de> > Cc: Fabio Estevam <fabio.estevam@nxp.com> > Cc: Shawn Guo <shawnguo@kernel.org> > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > --- > 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>; > -- > 2.20.1 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Thu, Mar 28, 2019 at 11:49:16PM -0700, Andrey Smirnov wrote: > 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 funtionality(this at least > breaks RAVE SP serdev driver on RDU2). Fix the code to specify > IMX6QDL_CLK_IPG as "ipg" clock for SDMA, to avoid detecting incorrect > clock ratio. > > Fixes: 25aaa75df1e6 ("dmaengine: imx-sdma: add clock ratio 1:1 check") Since we have a fix in the dma driver, I dropped the Fixes tag here. Applied all, thanks. Shawn > Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> > Reviewed-by: Lucas Stach <l.stach@pengutronix.de> > Cc: Angus Ainslie (Purism) <angus@akkea.ca> > Cc: Chris Healy <cphealy@gmail.com> > Cc: Lucas Stach <l.stach@pengutronix.de> > Cc: Fabio Estevam <fabio.estevam@nxp.com> > Cc: Shawn Guo <shawnguo@kernel.org> > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > --- > 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>; > -- > 2.20.1 >
On Wed, Apr 10, 2019 at 9:30 PM Shawn Guo <shawnguo@kernel.org> wrote: > > On Thu, Mar 28, 2019 at 11:49:16PM -0700, Andrey Smirnov wrote: > > 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 funtionality(this at least > > breaks RAVE SP serdev driver on RDU2). Fix the code to specify > > IMX6QDL_CLK_IPG as "ipg" clock for SDMA, to avoid detecting incorrect > > clock ratio. > > > > Fixes: 25aaa75df1e6 ("dmaengine: imx-sdma: add clock ratio 1:1 check") > > Since we have a fix in the dma driver, I dropped the Fixes tag here. > > Applied all, thanks. Do you know if the SDMA fixes will be back-ported to 5.0.y branch? To get 5.0 working, I need to manually apply the patches. thanks adam > > Shawn > > > Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> > > Reviewed-by: Lucas Stach <l.stach@pengutronix.de> > > Cc: Angus Ainslie (Purism) <angus@akkea.ca> > > Cc: Chris Healy <cphealy@gmail.com> > > Cc: Lucas Stach <l.stach@pengutronix.de> > > Cc: Fabio Estevam <fabio.estevam@nxp.com> > > Cc: Shawn Guo <shawnguo@kernel.org> > > Cc: linux-arm-kernel@lists.infradead.org > > Cc: linux-kernel@vger.kernel.org > > --- > > 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>; > > -- > > 2.20.1 > > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Sat, Apr 20, 2019 at 07:14:26AM -0500, Adam Ford wrote: > On Wed, Apr 10, 2019 at 9:30 PM Shawn Guo <shawnguo@kernel.org> wrote: > > > > On Thu, Mar 28, 2019 at 11:49:16PM -0700, Andrey Smirnov wrote: > > > 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 funtionality(this at least > > > breaks RAVE SP serdev driver on RDU2). Fix the code to specify > > > IMX6QDL_CLK_IPG as "ipg" clock for SDMA, to avoid detecting incorrect > > > clock ratio. > > > > > > Fixes: 25aaa75df1e6 ("dmaengine: imx-sdma: add clock ratio 1:1 check") > > > > Since we have a fix in the dma driver, I dropped the Fixes tag here. > > > > Applied all, thanks. > > Do you know if the SDMA fixes will be back-ported to 5.0.y branch? To > get 5.0 working, I need to manually apply the patches. I'm confused here. The regression was caused by 25aaa75df1e6 ("dmaengine: imx-sdma: add clock ratio 1:1 check"), which only lands on mainline with v5.1-rc1. How would 5.0.y branch need fixing? Shawn
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>;