diff options
-rw-r--r-- | drivers/serial/8250.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index b75e63e9d1ee..c3e37c8e7e26 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -1339,14 +1339,12 @@ static void serial8250_start_tx(struct uart_port *port) | |||
1339 | serial_out(up, UART_IER, up->ier); | 1339 | serial_out(up, UART_IER, up->ier); |
1340 | 1340 | ||
1341 | if (up->bugs & UART_BUG_TXEN) { | 1341 | if (up->bugs & UART_BUG_TXEN) { |
1342 | unsigned char lsr, iir; | 1342 | unsigned char lsr; |
1343 | lsr = serial_in(up, UART_LSR); | 1343 | lsr = serial_in(up, UART_LSR); |
1344 | up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; | 1344 | up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; |
1345 | iir = serial_in(up, UART_IIR) & 0x0f; | ||
1346 | if ((up->port.type == PORT_RM9000) ? | 1345 | if ((up->port.type == PORT_RM9000) ? |
1347 | (lsr & UART_LSR_THRE && | 1346 | (lsr & UART_LSR_THRE) : |
1348 | (iir == UART_IIR_NO_INT || iir == UART_IIR_THRI)) : | 1347 | (lsr & UART_LSR_TEMT)) |
1349 | (lsr & UART_LSR_TEMT && iir & UART_IIR_NO_INT)) | ||
1350 | transmit_chars(up); | 1348 | transmit_chars(up); |
1351 | } | 1349 | } |
1352 | } | 1350 | } |