Mercurial > hg > aboriginal
changeset 1678:e495d01ad5b3
Powerpc serial didn't work in the 3.15 kernel, revert the patch that broke it.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sun, 31 Aug 2014 23:23:37 -0500 |
parents | c11a357ea92d |
children | f63305aa4961 |
files | sources/patches/linux-unbreakppc.patch |
diffstat | 1 files changed, 31 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/patches/linux-unbreakppc.patch Sun Aug 31 23:23:37 2014 -0500 @@ -0,0 +1,31 @@ +Reverse a commit that completely broke powerpc serial output. + +commit 717f3bbab3c7628736ef738fdbf3d9a28578c26c +Author: Seth Bollinger <sethb@digi.com> +Date: Tue Mar 25 12:55:37 2014 -0500 + + serial_core: Fix conditional start_tx on ring buffer not empty + + If the serial_core ring buffer empties just as the tty layer receives + an XOFF, then start_tx will never be called when the tty layer + receives an XON as the serial_core ring buffer is empty. This will + possibly leave a few bytes trapped in the fifo for drivers that + disable the transmitter when flow controlled. + + Signed-off-by: Seth Bollinger <sethb@digi.com> + Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> + +diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c +index 2cf5649..dd1a7be 100644 +--- a/drivers/tty/serial/serial_core.c ++++ b/drivers/tty/serial/serial_core.c +@@ -89,7 +89,8 @@ static void __uart_start(struct tty_struct *tty) + struct uart_state *state = tty->driver_data; + struct uart_port *port = state->uart_port; + +- if (!tty->stopped && !tty->hw_stopped) ++ if (!uart_circ_empty(&state->xmit) && state->xmit.buf && ++ !tty->stopped && !tty->hw_stopped) + port->ops->start_tx(port); + } +