diff mbox series

arm64: dts: rockchip: Add dma-names to uart1 on quartz64-b

Message ID 20240628120130.24076-1-didi.debian@cknow.org (mailing list archive)
State New
Headers show
Series arm64: dts: rockchip: Add dma-names to uart1 on quartz64-b | expand

Commit Message

Diederik de Haas June 28, 2024, noon UTC
There have been several attempts to set the dma-names property on the
SoC level (in rk356x.dtsi), but that appears to cause problems when set
on channels without flow control.

Quoting part of a previous attempt for clarification:

> Nah, enabling it for bluetooth is fine because you have flow control.
> My issues have been on channels without flow control. Without DMA it
> simply drops messages or the channel hangs until you close and reopen
> it. With DMA, when an overflow locks up the channel it is usually
> unavailable until the board is rebooted.

Setting it on the board level for the bluetooth connection was deemed
safe, so do so for the Quartz64 Model B.

This fixes the following error/warning:

  of_dma_request_slave_channel: dma-names property of node
      '/serial@fe650000' missing or empty
  dw-apb-uart fe650000.serial: failed to request DMA

Signed-off-by: Diederik de Haas <didi.debian@cknow.org>
Link: https://libera.irclog.whitequark.org/armlinux/2024-02-29
Link: https://lore.kernel.org/linux-rockchip/18284546.sWSEgdgrri@diego/
---
 arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts | 1 +
 1 file changed, 1 insertion(+)

Comments

Dragan Simic June 29, 2024, 5:05 a.m. UTC | #1
On 2024-06-28 14:00, Diederik de Haas wrote:
> There have been several attempts to set the dma-names property on the
> SoC level (in rk356x.dtsi), but that appears to cause problems when set
> on channels without flow control.
> 
> Quoting part of a previous attempt for clarification:
> 
>> Nah, enabling it for bluetooth is fine because you have flow control.
>> My issues have been on channels without flow control. Without DMA it
>> simply drops messages or the channel hangs until you close and reopen
>> it. With DMA, when an overflow locks up the channel it is usually
>> unavailable until the board is rebooted.
> 
> Setting it on the board level for the bluetooth connection was deemed
> safe, so do so for the Quartz64 Model B.
> 
> This fixes the following error/warning:
> 
>   of_dma_request_slave_channel: dma-names property of node
>       '/serial@fe650000' missing or empty
>   dw-apb-uart fe650000.serial: failed to request DMA
> 
> Signed-off-by: Diederik de Haas <didi.debian@cknow.org>
> Link: https://libera.irclog.whitequark.org/armlinux/2024-02-29
> Link: https://lore.kernel.org/linux-rockchip/18284546.sWSEgdgrri@diego/

Thanks for this patch, it's looking good to me.

Reviewed-by: Dragan Simic <dsimic@manjaro.org>

> ---
>  arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
> b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
> index b908ce006c26..13e599a85eb8 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
> @@ -652,6 +652,7 @@ &tsadc {
>  };
> 
>  &uart1 {
> +	dma-names = "tx", "rx";
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
>  	status = "okay";
Heiko Stübner July 4, 2024, 6:01 p.m. UTC | #2
On Fri, 28 Jun 2024 14:00:43 +0200, Diederik de Haas wrote:
> There have been several attempts to set the dma-names property on the
> SoC level (in rk356x.dtsi), but that appears to cause problems when set
> on channels without flow control.
> 
> Quoting part of a previous attempt for clarification:
> 
> > Nah, enabling it for bluetooth is fine because you have flow control.
> > My issues have been on channels without flow control. Without DMA it
> > simply drops messages or the channel hangs until you close and reopen
> > it. With DMA, when an overflow locks up the channel it is usually
> > unavailable until the board is rebooted.
> 
> [...]

Applied, thanks!

[1/1] arm64: dts: rockchip: Add dma-names to uart1 on quartz64-b
      commit: bf6f26deb0e84089700c1b864f643442e262e16b

Best regards,
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
index b908ce006c26..13e599a85eb8 100644
--- a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
@@ -652,6 +652,7 @@  &tsadc {
 };
 
 &uart1 {
+	dma-names = "tx", "rx";
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
 	status = "okay";