diff options
author | Johannes Thumshirn <johannes.thumshirn@men.de> | 2014-06-16 07:33:38 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-07-09 17:35:42 -0700 |
commit | a9977620a448f12a7337daca452fd20e89a96e23 (patch) | |
tree | 5ced66b4fe04ca069f43eeccd3211b36888d1008 /drivers/tty/serial/men_z135_uart.c | |
parent | 8b152f1096975d012f60387b899d407e4a93b46c (diff) | |
download | op-kernel-dev-a9977620a448f12a7337daca452fd20e89a96e23.zip op-kernel-dev-a9977620a448f12a7337daca452fd20e89a96e23.tar.gz |
tty: serial: men_z135_uart: Wakeup UART after transmitting
Call uart_write_wakeup() after writing the hardware FIFO and updateing the FIFO
pointers.
This fixes high latency and jitter on PPP over Serial links.
Reported-by: Jun Shih <Jun.Shih@pason.com>
Tested-by: Jun Shih <Jun.Shih@pason.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@men.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/men_z135_uart.c')
-rw-r--r-- | drivers/tty/serial/men_z135_uart.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/tty/serial/men_z135_uart.c b/drivers/tty/serial/men_z135_uart.c index c9d1854..30e9e60 100644 --- a/drivers/tty/serial/men_z135_uart.c +++ b/drivers/tty/serial/men_z135_uart.c @@ -308,9 +308,6 @@ static void men_z135_handle_tx(struct men_z135_port *uart) if (port->x_char) goto out; - if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) - uart_write_wakeup(port); - /* calculate bytes to copy */ qlen = uart_circ_chars_pending(xmit); if (qlen <= 0) @@ -357,6 +354,9 @@ static void men_z135_handle_tx(struct men_z135_port *uart) port->icount.tx += n; + if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) + uart_write_wakeup(port); + irq_en: if (!uart_circ_empty(xmit)) men_z135_reg_set(uart, MEN_Z135_CONF_REG, MEN_Z135_IER_TXCIEN); |