diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-02-01 13:57:41 -0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-02-01 13:57:41 -0800 |
| commit | 912ae66b952e249f66eef23a545e572263f989b8 (patch) | |
| tree | b71b0180fad520544b3241b0cc1e23b4c05d0054 /tty | |
| parent | 225c5935d397e192f4d7b04a8eeab95a56ea64b4 (diff) | |
| download | patches-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.patch | 86 | ||||
| -rw-r--r-- | tty/serial-copy-uart-properties-of-upf_fixed_type-ports-provisioned-using-early_serial_setup.patch | 6 |
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; |
