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);
+ }
+