aboutsummaryrefslogtreecommitdiffstats
path: root/tty
diff options
authorGreg Kroah-Hartman <gregkh@suse.de>2010-02-01 13:57:41 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2010-02-01 13:57:41 -0800
commit912ae66b952e249f66eef23a545e572263f989b8 (patch)
treeb71b0180fad520544b3241b0cc1e23b4c05d0054 /tty
parent225c5935d397e192f4d7b04a8eeab95a56ea64b4 (diff)
downloadpatches-912ae66b952e249f66eef23a545e572263f989b8.tar.gz
move a tty patch to tty.current
Diffstat (limited to 'tty')
-rw-r--r--tty/serial-8250-add-serial-transmitter-fully-empty-test.patch86
-rw-r--r--tty/serial-copy-uart-properties-of-upf_fixed_type-ports-provisioned-using-early_serial_setup.patch6
2 files changed, 3 insertions, 89 deletions
diff --git a/tty/serial-8250-add-serial-transmitter-fully-empty-test.patch b/tty/serial-8250-add-serial-transmitter-fully-empty-test.patch
deleted file mode 100644
index a3331c56ad9dde..00000000000000
--- a/tty/serial-8250-add-serial-transmitter-fully-empty-test.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From akpm@linux-foundation.org Tue Dec 22 11:38:31 2009
-From: Dick Hollenbeck <dick@softplc.com>
-Date: Wed, 09 Dec 2009 12:31:34 -0800
-Subject: serial: 8250: add serial transmitter fully empty test
-To: greg@kroah.com
-Cc: alan@lxorguk.ukuu.org.uk, akpm@linux-foundation.org, dick@softplc.com, alan@linux.intel.com, k.schoenmakers@sigmae.nl
-Message-ID: <200912092031.nB9KVYsu003819@imap1.linux-foundation.org>
-
-
-From: Dick Hollenbeck <dick@softplc.com>
-
-When controlling an industrial radio modem it can be necessary to
-manipulate the handshake lines in order to control the radio modem's
-transmitter, from userspace.
-
-The transmitter should not be turned off before all characters have been
-transmitted. serial8250_tx_empty() was reporting that all characters were
-transmitted before they actually were.
-
-===
-
-Discovered in parallel with more testing and analysis by Kees Schoenmakers
-as follows:
-
-I ran into an NetMos 9835 serial pci board which behaves a little
-different than the standard. This type of expansion board is very common.
-
-"Standard" 8250 compatible devices clear the 'UART_LST_TEMT" bit together
-with the "UART_LSR_THRE" bit when writing data to the device.
-
-The NetMos device does it slightly different
-
-I believe that the TEMT bit is coupled to the shift register. The problem
-is that after writing data to the device and very quickly after that one
-does call serial8250_tx_empty, it returns the wrong information.
-
-My patch makes the test more robust (and solves the problem) and it does
-not affect the already correct devices.
-
-
-Alan:
-
- We may yet need to quirk this but now we know which chips we have a
- way to do that should we find this breaks some other 8250 clone with
- dodgy THRE.
-
-Signed-off-by: Dick Hollenbeck <dick@softplc.com>
-Signed-off-by: Alan Cox <alan@linux.intel.com>
-Cc: Kees Schoenmakers <k.schoenmakers@sigmae.nl>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/serial/8250.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
---- a/drivers/serial/8250.c
-+++ b/drivers/serial/8250.c
-@@ -83,6 +83,9 @@ static unsigned int skip_txen_test; /* f
-
- #define PASS_LIMIT 256
-
-+#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
-+
-+
- /*
- * We default to IRQ0 for the "no irq" hack. Some
- * machine types want others as well - they're free
-@@ -1792,7 +1795,7 @@ static unsigned int serial8250_tx_empty(
- up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS;
- spin_unlock_irqrestore(&up->port.lock, flags);
-
-- return lsr & UART_LSR_TEMT ? TIOCSER_TEMT : 0;
-+ return (lsr & BOTH_EMPTY) == BOTH_EMPTY ? TIOCSER_TEMT : 0;
- }
-
- static unsigned int serial8250_get_mctrl(struct uart_port *port)
-@@ -1850,8 +1853,6 @@ static void serial8250_break_ctl(struct
- spin_unlock_irqrestore(&up->port.lock, flags);
- }
-
--#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
--
- /*
- * Wait for transmitter & holding register to empty
- */
diff --git a/tty/serial-copy-uart-properties-of-upf_fixed_type-ports-provisioned-using-early_serial_setup.patch b/tty/serial-copy-uart-properties-of-upf_fixed_type-ports-provisioned-using-early_serial_setup.patch
index df4133b780cc5c..7f72c92bd069bd 100644
--- a/tty/serial-copy-uart-properties-of-upf_fixed_type-ports-provisioned-using-early_serial_setup.patch
+++ b/tty/serial-copy-uart-properties-of-upf_fixed_type-ports-provisioned-using-early_serial_setup.patch
@@ -27,7 +27,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
-@@ -2688,6 +2688,15 @@ static void __init serial8250_isa_init_p
+@@ -2689,6 +2689,15 @@ static void __init serial8250_isa_init_p
}
}
@@ -43,7 +43,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static void __init
serial8250_register_ports(struct uart_driver *drv, struct device *dev)
{
-@@ -2704,6 +2713,10 @@ serial8250_register_ports(struct uart_dr
+@@ -2705,6 +2714,10 @@ serial8250_register_ports(struct uart_dr
struct uart_8250_port *up = &serial8250_ports[i];
up->port.dev = dev;
@@ -54,7 +54,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
uart_add_one_port(drv, &up->port);
}
}
-@@ -3116,12 +3129,8 @@ int serial8250_register_port(struct uart
+@@ -3117,12 +3130,8 @@ int serial8250_register_port(struct uart
if (port->dev)
uart->port.dev = port->dev;