Skip to contentSkip to conversation

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

PATCH New Romain Perier 3 participants 5 messages Jun 16, 2015 – Jun 23, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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

This enable DMA capability for the corresponding UART interfaces, also it removes warning "ttyS%d - Failed to request dma" from kernel logs.

---

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(+)
arch/arm/boot/dts/rk3288.dtsi +10 -0
index 22316d0..1996452 100644
@@ -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";
 	};
 
Signature · 1 line
1.9.1
#1 lore raw

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

ping :)

2015-06-16 19:19 GMT+02:00 Romain Perier <[email protected]>:

Quoted 65 lines

This enable DMA capability for the corresponding UART interfaces, also it removes warning "ttyS%d - Failed to request dma" from kernel logs.

---

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(+)
arch/arm/boot/dts/rk3288.dtsi +10 -1
index 22316d0..1996452 100644
@@ -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

maintainer
#2 lore raw

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

Hi Romain,

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

Quoted 1 line

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

Quoted 8 lines

2015-06-16 19:19 GMT+02:00 Romain Perier <[email protected]>:

Quoted 7 lines

This enable DMA capability for the corresponding UART interfaces, also it removes warning "ttyS%d - Failed to request dma" from kernel logs.

---

Changes since v1 ("[PATCH] ARM: dts: rockchip: Add dmac_bus rx and tx for

uart2"):

Quoted 77 lines
Quoted 77 lines

- 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(+)
arch/arm/boot/dts/rk3288.dtsi +2 -0
index 22316d0..1996452 100644
@@ -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";
        
        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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";
        
        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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";
        
        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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";
        
        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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

#3 lore raw

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

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 <[email protected]>:

Quoted 107 lines

Hi Romain,

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

Quoted 1 line

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

Quoted 8 lines

2015-06-16 19:19 GMT+02:00 Romain Perier <[email protected]>:

Quoted 7 lines

This enable DMA capability for the corresponding UART interfaces, also it removes warning "ttyS%d - Failed to request dma" from kernel logs.

---

Changes since v1 ("[PATCH] ARM: dts: rockchip: Add dmac_bus rx and tx for

uart2"):

Quoted 77 lines
Quoted 77 lines

- 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(+)
arch/arm/boot/dts/rk3288.dtsi +2 -0
index 22316d0..1996452 100644
@@ -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";

        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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";

        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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";

        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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";

        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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

#4 lore raw

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

In reply to Heiko Stübner
Quoted 7 lines · Heiko St?bner

Hi Romain,

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

Quoted 1 line

ping :)

I haven't forgotten this patch :-)

Quoted 7 lines

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.

Quoted 98 lines

Heiko

Quoted 8 lines

2015-06-16 19:19 GMT+02:00 Romain Perier <[email protected]>:

Quoted 7 lines

This enable DMA capability for the corresponding UART interfaces, also it removes warning "ttyS%d - Failed to request dma" from kernel logs.

---

Changes since v1 ("[PATCH] ARM: dts: rockchip: Add dmac_bus rx and tx for

uart2"):

Quoted 71 lines
Quoted 71 lines

- 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(+)
arch/arm/boot/dts/rk3288.dtsi +2 -0
index 22316d0..1996452 100644
@@ -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";

        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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";

        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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";

        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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";

        };
arch/arm/boot/dts/rk3288.dtsi +2 -0
@@ -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";
 
Quoted 6 lines
Quoted 6 lines
                status = "disabled";

        };

--
1.9.1

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip