From 5343ba4a6fab8d91021403315d36a175a097c5d8 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 13 Mar 2023 22:32:19 +0100 Subject: [PATCH] Revert "serial: 8250: use THRE & __stop_tx also with DMA" This reverts commit e8ffbb71f783f577b24c25bd4dd1c7119d344924. --- drivers/tty/serial/8250/8250_dma.c | 3 ++- drivers/tty/serial/8250/8250_port.c | 9 +++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/tty/serial/8250/8250_dma.c b/drivers/tty/serial/8250/8250_dma.c index 7fa66501792d..80c70a5cfa4c 100644 --- a/drivers/tty/serial/8250/8250_dma.c +++ b/drivers/tty/serial/8250/8250_dma.c @@ -32,7 +32,7 @@ static void __dma_tx_complete(void *param) uart_write_wakeup(&p->port); ret = serial8250_tx_dma(p); - if (ret || !dma->tx_running) + if (ret) serial8250_set_THRI(p); spin_unlock_irqrestore(&p->port.lock, flags); @@ -104,6 +104,7 @@ int serial8250_tx_dma(struct uart_8250_port *p) if (uart_tx_stopped(&p->port) || uart_circ_empty(xmit)) { /* We have been called from __dma_tx_complete() */ + serial8250_rpm_put_tx(p); return 0; } diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index fa43df05342b..4e3605a494e8 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -1950,12 +1950,9 @@ int serial8250_handle_irq(struct uart_port *port, unsigned int iir) status = serial8250_rx_chars(up, status); } serial8250_modem_status(up); - if ((status & UART_LSR_THRE) && (up->ier & UART_IER_THRI)) { - if (!up->dma || up->dma->tx_err) - serial8250_tx_chars(up); - else if (!up->dma->tx_running) - __stop_tx(up); - } + if ((!up->dma || up->dma->tx_err) && (status & UART_LSR_THRE) && + (up->ier & UART_IER_THRI)) + serial8250_tx_chars(up); uart_unlock_and_check_sysrq_irqrestore(port, flags); -- 2.39.1