diff mbox series

[v3,1/9] ARM: dts: imx6qdl: Specify IMX6QDL_CLK_IPG as "ipg" clock to SDMA

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

Commit Message

Andrey Smirnov March 29, 2019, 6:49 a.m. UTC
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")
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(-)

Comments

Adam Ford April 10, 2019, 6:47 p.m. UTC | #1
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
Shawn Guo April 11, 2019, 2:30 a.m. UTC | #2
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
>
Adam Ford April 20, 2019, 12:14 p.m. UTC | #3
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
Shawn Guo April 20, 2019, 1:33 p.m. UTC | #4
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 mbox series

Patch

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>;