Merge 6.3-rc6 into tty-next
[platform/kernel/linux-rpi.git] / drivers / tty / serial / 8250 / 8250_port.c
index 3ba9c8b..dfbc501 100644 (file)
@@ -2016,18 +2016,19 @@ static int serial8250_tx_threshold_handle_irq(struct uart_port *port)
 static unsigned int serial8250_tx_empty(struct uart_port *port)
 {
        struct uart_8250_port *up = up_to_u8250p(port);
+       unsigned int result = 0;
        unsigned long flags;
-       u16 lsr;
 
        serial8250_rpm_get(up);
 
        spin_lock_irqsave(&port->lock, flags);
-       lsr = serial_lsr_in(up);
+       if (!serial8250_tx_dma_running(up) && uart_lsr_tx_empty(serial_lsr_in(up)))
+               result = TIOCSER_TEMT;
        spin_unlock_irqrestore(&port->lock, flags);
 
        serial8250_rpm_put(up);
 
-       return uart_lsr_tx_empty(lsr) ? TIOCSER_TEMT : 0;
+       return result;
 }
 
 unsigned int serial8250_do_get_mctrl(struct uart_port *port)