[U-Boot] [PATCH v2 2/2] bcm283x_pl011: Flush RX queue after setting baud rate

Tuomas Tynkkynen
2018-03-09T16:04:44Z

On Wed, 7 Mar 2018 22:08:25 +0100
Alexander Graf <agraf@suse.de> wrote:

> After the UART was initialized, we may still have bogus data in the
> RX queue if it was enabled with incorrect pin muxing before.
>
> So let's flush the RX queue whenever we initialize baud rates.
>
> This fixes a regression with the dynamic pinmuxing code when enable_uart=1
> is not set in config.txt on Raspberry Pis that use pl011 for serial.
>
> Fixes: caf2233b28 ("bcm283x: Add pinctrl driver")
> Reported-by: GÃ¶ran Lundberg <goran@lundberg.email>
> Reported-by: Peter Robinson <pbrobinson@gmail.com>
> Signed-off-by: Alexander Graf <agraf@suse.de>
>
> ---
>
> v1 -> v2:
>
> - correctly drain the queue
> ---
> drivers/serial/serial_bcm283x_pl011.c | 25 ++++++++++++++++++++++++-
> drivers/serial/serial_pl01x.c | 10 +++++-----
> drivers/serial/serial_pl01x_internal.h | 7 ++++++-
> 3 files changed, 35 insertions(+), 7 deletions(-)
>

On a RPi 1, with no enable_uart in config.txt:

Tested-by: Tuomas Tynkkynen <tuomas@tuxera.com>