serial: 8250: Revert "tty: serial: 8250_core: read only RX if there is something in the FIFO"
This reverts commit0aa525d118
. The conditional RX-FIFO read seems to cause spurious interrupts and we see just: |serial8250: too much work for irq29 The previous behaviour was "default" for decades and Marvell's 88f6282 SoC might not be the only that relies on it. Therefore the Omap fix is reverted for now. Fixes:0aa525d118
("tty: serial: 8250_core: read only RX if there is something in the FIFO") Reported-By: Nicolas Schichan <nschichan@freebox.fr> Debuged-By: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
045f32dda9
commit
ca8bb4aefb
1 changed files with 5 additions and 6 deletions
|
@ -2138,8 +2138,8 @@ int serial8250_do_startup(struct uart_port *port)
|
|||
/*
|
||||
* Clear the interrupt registers.
|
||||
*/
|
||||
if (serial_port_in(port, UART_LSR) & UART_LSR_DR)
|
||||
serial_port_in(port, UART_RX);
|
||||
serial_port_in(port, UART_LSR);
|
||||
serial_port_in(port, UART_RX);
|
||||
serial_port_in(port, UART_IIR);
|
||||
serial_port_in(port, UART_MSR);
|
||||
|
||||
|
@ -2300,8 +2300,8 @@ int serial8250_do_startup(struct uart_port *port)
|
|||
* saved flags to avoid getting false values from polling
|
||||
* routines or the previous session.
|
||||
*/
|
||||
if (serial_port_in(port, UART_LSR) & UART_LSR_DR)
|
||||
serial_port_in(port, UART_RX);
|
||||
serial_port_in(port, UART_LSR);
|
||||
serial_port_in(port, UART_RX);
|
||||
serial_port_in(port, UART_IIR);
|
||||
serial_port_in(port, UART_MSR);
|
||||
up->lsr_saved_flags = 0;
|
||||
|
@ -2394,8 +2394,7 @@ void serial8250_do_shutdown(struct uart_port *port)
|
|||
* Read data port to reset things, and then unlink from
|
||||
* the IRQ chain.
|
||||
*/
|
||||
if (serial_port_in(port, UART_LSR) & UART_LSR_DR)
|
||||
serial_port_in(port, UART_RX);
|
||||
serial_port_in(port, UART_RX);
|
||||
serial8250_rpm_put(up);
|
||||
|
||||
del_timer_sync(&up->timer);
|
||||
|
|
Loading…
Reference in a new issue