diff mbox

ARM: dts: rockchip: Add DMA tx and rx channels in UART interfaces for RK3288 SoCs

Message ID 1434475166-30338-1-git-send-email-romain.perier@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Romain Perier June 16, 2015, 5:19 p.m. UTC
This enable DMA capability for the corresponding UART interfaces, also it removes
warning "ttyS%d - Failed to request dma" from kernel logs.

Signed-off-by: Romain Perier <romain.perier@gmail.com>
---

Changes since v1 ("[PATCH] ARM: dts: rockchip: Add dmac_bus rx and tx for uart2"):
	- Add DMA tx and rx channels for all UART interfaces
	- Rename commit summary

 arch/arm/boot/dts/rk3288.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Romain Perier June 23, 2015, 6:53 a.m. UTC | #1
ping :)

2015-06-16 19:19 GMT+02:00 Romain Perier <romain.perier@gmail.com>:
> This enable DMA capability for the corresponding UART interfaces, also it removes
> warning "ttyS%d - Failed to request dma" from kernel logs.
>
> Signed-off-by: Romain Perier <romain.perier@gmail.com>
> ---
>
> Changes since v1 ("[PATCH] ARM: dts: rockchip: Add dmac_bus rx and tx for uart2"):
>         - Add DMA tx and rx channels for all UART interfaces
>         - Rename commit summary
>
>  arch/arm/boot/dts/rk3288.dtsi | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
> index 22316d0..1996452 100644
> --- a/arch/arm/boot/dts/rk3288.dtsi
> +++ b/arch/arm/boot/dts/rk3288.dtsi
> @@ -359,6 +359,8 @@
>                 clock-names = "baudclk", "apb_pclk";
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&uart0_xfer>;
> +               dmas = <&dmac_peri 1>, <&dmac_peri 2>;
> +               dma-names = "tx", "rx";
>                 status = "disabled";
>         };
>
> @@ -372,6 +374,8 @@
>                 clock-names = "baudclk", "apb_pclk";
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&uart1_xfer>;
> +               dmas = <&dmac_peri 3>, <&dmac_peri 4>;
> +               dma-names = "tx", "rx";
>                 status = "disabled";
>         };
>
> @@ -385,6 +389,8 @@
>                 clock-names = "baudclk", "apb_pclk";
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&uart2_xfer>;
> +               dmas = <&dmac_bus_s 4>, <&dmac_bus_s 5>;
> +               dma-names = "tx", "rx";
>                 status = "disabled";
>         };
>
> @@ -398,6 +404,8 @@
>                 clock-names = "baudclk", "apb_pclk";
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&uart3_xfer>;
> +               dmas = <&dmac_peri 7>, <&dmac_peri 8>;
> +               dma-names = "tx", "rx";
>                 status = "disabled";
>         };
>
> @@ -411,6 +419,8 @@
>                 clock-names = "baudclk", "apb_pclk";
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&uart4_xfer>;
> +               dmas = <&dmac_peri 9>, <&dmac_peri 10>;
> +               dma-names = "tx", "rx";
>                 status = "disabled";
>         };
>
> --
> 1.9.1
>
Heiko Stuebner June 23, 2015, 11:09 a.m. UTC | #2
Hi Romain,

Am Dienstag, 23. Juni 2015, 08:53:17 schrieb Romain Perier:
> ping :)

I haven't forgotten this patch :-)

I just haven't fully made up my mind concerning the bug in the pl330 
implementation on Rockchip SoCs - aka if we'll make it worse by also enabling 
dma on the uarts.

So far the problem reports I read only mentioned degraded functionality like 
popping sounds in audio, not full system failures or freezes. So I tend to 
include the patch and see what happens ;-)


Heiko



> 2015-06-16 19:19 GMT+02:00 Romain Perier <romain.perier@gmail.com>:
> > This enable DMA capability for the corresponding UART interfaces, also it
> > removes warning "ttyS%d - Failed to request dma" from kernel logs.
> > 
> > Signed-off-by: Romain Perier <romain.perier@gmail.com>
> > ---
> > 
> > Changes since v1 ("[PATCH] ARM: dts: rockchip: Add dmac_bus rx and tx for 
uart2"):
> >         - Add DMA tx and rx channels for all UART interfaces
> >         - Rename commit summary
> >  
> >  arch/arm/boot/dts/rk3288.dtsi | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> > 
> > diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
> > index 22316d0..1996452 100644
> > --- a/arch/arm/boot/dts/rk3288.dtsi
> > +++ b/arch/arm/boot/dts/rk3288.dtsi
> > @@ -359,6 +359,8 @@
> > 
> >                 clock-names = "baudclk", "apb_pclk";
> >                 pinctrl-names = "default";
> >                 pinctrl-0 = <&uart0_xfer>;
> > 
> > +               dmas = <&dmac_peri 1>, <&dmac_peri 2>;
> > +               dma-names = "tx", "rx";
> > 
> >                 status = "disabled";
> >         
> >         };
> > 
> > @@ -372,6 +374,8 @@
> > 
> >                 clock-names = "baudclk", "apb_pclk";
> >                 pinctrl-names = "default";
> >                 pinctrl-0 = <&uart1_xfer>;
> > 
> > +               dmas = <&dmac_peri 3>, <&dmac_peri 4>;
> > +               dma-names = "tx", "rx";
> > 
> >                 status = "disabled";
> >         
> >         };
> > 
> > @@ -385,6 +389,8 @@
> > 
> >                 clock-names = "baudclk", "apb_pclk";
> >                 pinctrl-names = "default";
> >                 pinctrl-0 = <&uart2_xfer>;
> > 
> > +               dmas = <&dmac_bus_s 4>, <&dmac_bus_s 5>;
> > +               dma-names = "tx", "rx";
> > 
> >                 status = "disabled";
> >         
> >         };
> > 
> > @@ -398,6 +404,8 @@
> > 
> >                 clock-names = "baudclk", "apb_pclk";
> >                 pinctrl-names = "default";
> >                 pinctrl-0 = <&uart3_xfer>;
> > 
> > +               dmas = <&dmac_peri 7>, <&dmac_peri 8>;
> > +               dma-names = "tx", "rx";
> > 
> >                 status = "disabled";
> >         
> >         };
> > 
> > @@ -411,6 +419,8 @@
> > 
> >                 clock-names = "baudclk", "apb_pclk";
> >                 pinctrl-names = "default";
> >                 pinctrl-0 = <&uart4_xfer>;
> > 
> > +               dmas = <&dmac_peri 9>, <&dmac_peri 10>;
> > +               dma-names = "tx", "rx";
> > 
> >                 status = "disabled";
> >         
> >         };
> > 
> > --
> > 1.9.1
Romain Perier June 23, 2015, 11:55 a.m. UTC | #3
Hi Heiko,

Oh sure, I completly forgot this issue ^^ , no problem. If you want
some help feel free to ping on IRC.
I did not notice regressions or issues, but my system was not under
load, I will try to investigate and/or test with care.

Have a nice day,
Romain

2015-06-23 13:09 GMT+02:00 Heiko Stübner <heiko@sntech.de>:
> Hi Romain,
>
> Am Dienstag, 23. Juni 2015, 08:53:17 schrieb Romain Perier:
>> ping :)
>
> I haven't forgotten this patch :-)
>
> I just haven't fully made up my mind concerning the bug in the pl330
> implementation on Rockchip SoCs - aka if we'll make it worse by also enabling
> dma on the uarts.
>
> So far the problem reports I read only mentioned degraded functionality like
> popping sounds in audio, not full system failures or freezes. So I tend to
> include the patch and see what happens ;-)
>
>
> Heiko
>
>
>
>> 2015-06-16 19:19 GMT+02:00 Romain Perier <romain.perier@gmail.com>:
>> > This enable DMA capability for the corresponding UART interfaces, also it
>> > removes warning "ttyS%d - Failed to request dma" from kernel logs.
>> >
>> > Signed-off-by: Romain Perier <romain.perier@gmail.com>
>> > ---
>> >
>> > Changes since v1 ("[PATCH] ARM: dts: rockchip: Add dmac_bus rx and tx for
> uart2"):
>> >         - Add DMA tx and rx channels for all UART interfaces
>> >         - Rename commit summary
>> >
>> >  arch/arm/boot/dts/rk3288.dtsi | 10 ++++++++++
>> >  1 file changed, 10 insertions(+)
>> >
>> > diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
>> > index 22316d0..1996452 100644
>> > --- a/arch/arm/boot/dts/rk3288.dtsi
>> > +++ b/arch/arm/boot/dts/rk3288.dtsi
>> > @@ -359,6 +359,8 @@
>> >
>> >                 clock-names = "baudclk", "apb_pclk";
>> >                 pinctrl-names = "default";
>> >                 pinctrl-0 = <&uart0_xfer>;
>> >
>> > +               dmas = <&dmac_peri 1>, <&dmac_peri 2>;
>> > +               dma-names = "tx", "rx";
>> >
>> >                 status = "disabled";
>> >
>> >         };
>> >
>> > @@ -372,6 +374,8 @@
>> >
>> >                 clock-names = "baudclk", "apb_pclk";
>> >                 pinctrl-names = "default";
>> >                 pinctrl-0 = <&uart1_xfer>;
>> >
>> > +               dmas = <&dmac_peri 3>, <&dmac_peri 4>;
>> > +               dma-names = "tx", "rx";
>> >
>> >                 status = "disabled";
>> >
>> >         };
>> >
>> > @@ -385,6 +389,8 @@
>> >
>> >                 clock-names = "baudclk", "apb_pclk";
>> >                 pinctrl-names = "default";
>> >                 pinctrl-0 = <&uart2_xfer>;
>> >
>> > +               dmas = <&dmac_bus_s 4>, <&dmac_bus_s 5>;
>> > +               dma-names = "tx", "rx";
>> >
>> >                 status = "disabled";
>> >
>> >         };
>> >
>> > @@ -398,6 +404,8 @@
>> >
>> >                 clock-names = "baudclk", "apb_pclk";
>> >                 pinctrl-names = "default";
>> >                 pinctrl-0 = <&uart3_xfer>;
>> >
>> > +               dmas = <&dmac_peri 7>, <&dmac_peri 8>;
>> > +               dma-names = "tx", "rx";
>> >
>> >                 status = "disabled";
>> >
>> >         };
>> >
>> > @@ -411,6 +419,8 @@
>> >
>> >                 clock-names = "baudclk", "apb_pclk";
>> >                 pinctrl-names = "default";
>> >                 pinctrl-0 = <&uart4_xfer>;
>> >
>> > +               dmas = <&dmac_peri 9>, <&dmac_peri 10>;
>> > +               dma-names = "tx", "rx";
>> >
>> >                 status = "disabled";
>> >
>> >         };
>> >
>> > --
>> > 1.9.1
>
Sonny Rao June 23, 2015, 9:11 p.m. UTC | #4
On Tue, Jun 23, 2015 at 4:09 AM, Heiko Stübner <heiko@sntech.de> wrote:
> Hi Romain,
>
> Am Dienstag, 23. Juni 2015, 08:53:17 schrieb Romain Perier:
>> ping :)
>
> I haven't forgotten this patch :-)
>
> I just haven't fully made up my mind concerning the bug in the pl330
> implementation on Rockchip SoCs - aka if we'll make it worse by also enabling
> dma on the uarts.
>
> So far the problem reports I read only mentioned degraded functionality like
> popping sounds in audio, not full system failures or freezes. So I tend to
> include the patch and see what happens ;-)

You should look out for corrupted data -- like zeros or repeated data
in the serial input or output.  That was what was causing the pops --
a sudden sample of zeros, or buzzing from repeated samples.

It may not happen at low speeds, but might happen if you tried doing
something like PPP over the UART.

>
>
> Heiko
>
>
>
>> 2015-06-16 19:19 GMT+02:00 Romain Perier <romain.perier@gmail.com>:
>> > This enable DMA capability for the corresponding UART interfaces, also it
>> > removes warning "ttyS%d - Failed to request dma" from kernel logs.
>> >
>> > Signed-off-by: Romain Perier <romain.perier@gmail.com>
>> > ---
>> >
>> > Changes since v1 ("[PATCH] ARM: dts: rockchip: Add dmac_bus rx and tx for
> uart2"):
>> >         - Add DMA tx and rx channels for all UART interfaces
>> >         - Rename commit summary
>> >
>> >  arch/arm/boot/dts/rk3288.dtsi | 10 ++++++++++
>> >  1 file changed, 10 insertions(+)
>> >
>> > diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
>> > index 22316d0..1996452 100644
>> > --- a/arch/arm/boot/dts/rk3288.dtsi
>> > +++ b/arch/arm/boot/dts/rk3288.dtsi
>> > @@ -359,6 +359,8 @@
>> >
>> >                 clock-names = "baudclk", "apb_pclk";
>> >                 pinctrl-names = "default";
>> >                 pinctrl-0 = <&uart0_xfer>;
>> >
>> > +               dmas = <&dmac_peri 1>, <&dmac_peri 2>;
>> > +               dma-names = "tx", "rx";
>> >
>> >                 status = "disabled";
>> >
>> >         };
>> >
>> > @@ -372,6 +374,8 @@
>> >
>> >                 clock-names = "baudclk", "apb_pclk";
>> >                 pinctrl-names = "default";
>> >                 pinctrl-0 = <&uart1_xfer>;
>> >
>> > +               dmas = <&dmac_peri 3>, <&dmac_peri 4>;
>> > +               dma-names = "tx", "rx";
>> >
>> >                 status = "disabled";
>> >
>> >         };
>> >
>> > @@ -385,6 +389,8 @@
>> >
>> >                 clock-names = "baudclk", "apb_pclk";
>> >                 pinctrl-names = "default";
>> >                 pinctrl-0 = <&uart2_xfer>;
>> >
>> > +               dmas = <&dmac_bus_s 4>, <&dmac_bus_s 5>;
>> > +               dma-names = "tx", "rx";
>> >
>> >                 status = "disabled";
>> >
>> >         };
>> >
>> > @@ -398,6 +404,8 @@
>> >
>> >                 clock-names = "baudclk", "apb_pclk";
>> >                 pinctrl-names = "default";
>> >                 pinctrl-0 = <&uart3_xfer>;
>> >
>> > +               dmas = <&dmac_peri 7>, <&dmac_peri 8>;
>> > +               dma-names = "tx", "rx";
>> >
>> >                 status = "disabled";
>> >
>> >         };
>> >
>> > @@ -411,6 +419,8 @@
>> >
>> >                 clock-names = "baudclk", "apb_pclk";
>> >                 pinctrl-names = "default";
>> >                 pinctrl-0 = <&uart4_xfer>;
>> >
>> > +               dmas = <&dmac_peri 9>, <&dmac_peri 10>;
>> > +               dma-names = "tx", "rx";
>> >
>> >                 status = "disabled";
>> >
>> >         };
>> >
>> > --
>> > 1.9.1
>
>
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip
diff mbox

Patch

diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 22316d0..1996452 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -359,6 +359,8 @@ 
 		clock-names = "baudclk", "apb_pclk";
 		pinctrl-names = "default";
 		pinctrl-0 = <&uart0_xfer>;
+		dmas = <&dmac_peri 1>, <&dmac_peri 2>;
+		dma-names = "tx", "rx";
 		status = "disabled";
 	};
 
@@ -372,6 +374,8 @@ 
 		clock-names = "baudclk", "apb_pclk";
 		pinctrl-names = "default";
 		pinctrl-0 = <&uart1_xfer>;
+		dmas = <&dmac_peri 3>, <&dmac_peri 4>;
+		dma-names = "tx", "rx";
 		status = "disabled";
 	};
 
@@ -385,6 +389,8 @@ 
 		clock-names = "baudclk", "apb_pclk";
 		pinctrl-names = "default";
 		pinctrl-0 = <&uart2_xfer>;
+		dmas = <&dmac_bus_s 4>, <&dmac_bus_s 5>;
+		dma-names = "tx", "rx";
 		status = "disabled";
 	};
 
@@ -398,6 +404,8 @@ 
 		clock-names = "baudclk", "apb_pclk";
 		pinctrl-names = "default";
 		pinctrl-0 = <&uart3_xfer>;
+		dmas = <&dmac_peri 7>, <&dmac_peri 8>;
+		dma-names = "tx", "rx";
 		status = "disabled";
 	};
 
@@ -411,6 +419,8 @@ 
 		clock-names = "baudclk", "apb_pclk";
 		pinctrl-names = "default";
 		pinctrl-0 = <&uart4_xfer>;
+		dmas = <&dmac_peri 9>, <&dmac_peri 10>;
+		dma-names = "tx", "rx";
 		status = "disabled";
 	};