Re: [PATCH v3] ARM: dts: armada-xp-98dx3236: Switch to armada-38x-uart serial node

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Joshua Scott <joshua.scott@xxxxxxxxxxxxxxxxxxx> writes:

> Switch to the "marvell,armada-38x-uart" driver variant to empty
> the UART buffer before writing to the UART_LCR register.
>
> Signed-off-by: Joshua Scott <joshua.scott@xxxxxxxxxxxxxxxxxxx>
> Tested-by: Andrew Lunn <andrew@xxxxxxx>
> Acked-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxx>.
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: 43e28ba87708 ("ARM: dts: Use armada-370-xp as a base for
> armada-xp-98dx3236")

Applied on mvebu/fixes

Thanks,

Gregory


>
> ---
> Changes in v3:
>
> Updated title, added tested-by, and Fixes tag
>
> Changes in v2:
>
> Andrew Lunn was able to test on a Marvell 370RD reference design, and
> the character loss issue did not occur.
>
> The fix has now been changed to only affect the following SOCs:
>  * 98DX323x
>  * 98DX3333
>  * 98DX4251
>
> v1 message:
>
> We have found that like the armada 38x, other Marvell SOCs can lose
> characters when the UART_LCR register is written to without first
> waiting for the buffer to empty.
>
> We have observed this behaviour on the following Marvell switch SOCs:
>
>  * 98DX323x
>  * 98DX3333
>  * 98DX4251
>
> However, we do not currently have access to non-switch SOCs which share
> the same parent device-tree.
>
> The question we have is, should the fix be applied to the common
> armada-370-xp device-tree, or should it be restricted to only affect the
> SOCs listed above.
>
> If anybody is able to check, we would like to find out if the issue
> affects other armada-xp / armada-370 based SOCs.
>
> The issue can be reproduced, if logging in using the serial port, with:
>     resize && echo "hello world"
>
> On affected devices, the first couple letters of "hello world" are
> lost. On some SOCs this can be seen at 115200 baud, and on others
> we have had to slow down to 9600 to see the issue.
>
> Cheers,
> Joshua Scott
> ---
>  arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
> index 59753470cd34..267d0c178e55 100644
> --- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
> +++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
> @@ -336,3 +336,11 @@
>  	status = "disabled";
>  };
>  
> +&uart0 {
> +	compatible = "marvell,armada-38x-uart";
> +};
> +
> +&uart1 {
> +	compatible = "marvell,armada-38x-uart";
> +};
> +
> -- 
> 2.21.0
>

-- 
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux