tty: serial: fsl_lpuart: Fix lpuart_flush_buffer()
Fix incorrect read-modify-write sequence in lpuart_flush_buffer() that was reading from UARTPFIFO and writing to UARTCFIFO instead of operating solely on the latter. Fixes: 9bc19af9dacb ("tty: serial: fsl_lpuart: Flush HW FIFOs in .flush_buffer") Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Reported-by: Vivien Didelot <vivien.didelot@gmail.com> Tested-by: Vivien Didelot <vivien.didelot@gmail.com> Tested-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Fabio Estevam <festevam@gmail.com> Cc: Stefan Agner <stefan@agner.ch> Cc: Chris Healy <cphealy@gmail.com> Cc: Cory Tusar <cory.tusar@zii.aero> Cc: Lucas Stach <l.stach@pengutronix.de> Cc: Jiri Slaby <jslaby@suse.com> Link: https://lore.kernel.org/r/20191004215537.5308-1-andrew.smirnov@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
47934ef7f1
commit
5df884d4b8
@ -548,7 +548,7 @@ static void lpuart_flush_buffer(struct uart_port *port)
|
||||
val |= UARTFIFO_TXFLUSH | UARTFIFO_RXFLUSH;
|
||||
lpuart32_write(&sport->port, val, UARTFIFO);
|
||||
} else {
|
||||
val = readb(sport->port.membase + UARTPFIFO);
|
||||
val = readb(sport->port.membase + UARTCFIFO);
|
||||
val |= UARTCFIFO_TXFLUSH | UARTCFIFO_RXFLUSH;
|
||||
writeb(val, sport->port.membase + UARTCFIFO);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user