| From b08c9c317e3f7764a91d522cd031639ba42b98cc Mon Sep 17 00:00:00 2001 |
| From: Loic Poulain <loic.poulain@intel.com> |
| Date: Thu, 24 Apr 2014 11:38:56 +0200 |
| Subject: 8250_core: Fix unwanted TX chars write |
| |
| From: Loic Poulain <loic.poulain@intel.com> |
| |
| commit b08c9c317e3f7764a91d522cd031639ba42b98cc upstream. |
| |
| On transmit-hold-register empty, serial8250_tx_chars |
| should be called only if we don't use DMA. |
| DMA has its own tx cycle. |
| |
| Signed-off-by: Loic Poulain <loic.poulain@intel.com> |
| Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/tty/serial/8250/8250_core.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/tty/serial/8250/8250_core.c |
| +++ b/drivers/tty/serial/8250/8250_core.c |
| @@ -1520,7 +1520,7 @@ int serial8250_handle_irq(struct uart_po |
| status = serial8250_rx_chars(up, status); |
| } |
| serial8250_modem_status(up); |
| - if (status & UART_LSR_THRE) |
| + if (!up->dma && (status & UART_LSR_THRE)) |
| serial8250_tx_chars(up); |
| |
| spin_unlock_irqrestore(&port->lock, flags); |