aboutsummaryrefslogtreecommitdiffstats
diff options
authorGreg Kroah-Hartman <gregkh@suse.de>2009-09-18 10:18:33 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2009-09-18 10:18:33 -0700
commit67435185d1792a097a0a764640f6627040e42b00 (patch)
tree83531a345c1a937639a665ffcaf05629c5df0bca
parent4834eecdb16b2a81b489a91c2b4a436dc26ea176 (diff)
downloadpatches-67435185d1792a097a0a764640f6627040e42b00.tar.gz
tty usb console fix that I had missed.
-rw-r--r--series1
-rw-r--r--tty.current/tty-serial-pcmcia-add-id-for-advantech-card.patch4
-rw-r--r--tty/tty-includecheck-fix-drivers-char-vt.c.patch2
-rw-r--r--tty/usb-serial-update-the-console-driver.patch109
-rw-r--r--tty/vt-events4
-rw-r--r--usb/usb-gadget-update-freescale-udc-entry-in-maintainers.patch2
-rw-r--r--version2
7 files changed, 117 insertions, 7 deletions
diff --git a/series b/series
index ead9a723ece707..bcd71be2fc6e0e 100644
--- a/series
+++ b/series
@@ -139,6 +139,7 @@ tty/usb-serial-fix-termios-initialization-logic.patch
tty/usb-serial-rename-subroutines.patch
tty/usb-serial-add-missing-tests-and-debug-lines.patch
tty/usb-serial-straighten-out-serial_open.patch
+tty/usb-serial-update-the-console-driver.patch
#################################
# USB stuff (after 2.6.30 is out)
diff --git a/tty.current/tty-serial-pcmcia-add-id-for-advantech-card.patch b/tty.current/tty-serial-pcmcia-add-id-for-advantech-card.patch
index 18573cb7e7dfdf..71cf9282a1008d 100644
--- a/tty.current/tty-serial-pcmcia-add-id-for-advantech-card.patch
+++ b/tty.current/tty-serial-pcmcia-add-id-for-advantech-card.patch
@@ -25,8 +25,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
@@ -884,6 +884,7 @@ static struct pcmcia_device_id serial_id
PCMCIA_DEVICE_CIS_MANF_CARD(0x0192, 0xa555, "SW_555_SER.cis"), /* Sierra Aircard 555 CDMA 1xrtt Modem -- pre update */
PCMCIA_DEVICE_CIS_MANF_CARD(0x013f, 0xa555, "SW_555_SER.cis"), /* Sierra Aircard 555 CDMA 1xrtt Modem -- post update */
- PCMCIA_DEVICE_CIS_PROD_ID12("MultiTech", "PCMCIA 56K DataFax", 0x842047ee, 0xc2efcf03, "MT5634ZLX.cis"),
+ PCMCIA_DEVICE_CIS_PROD_ID12("MultiTech", "PCMCIA 56K DataFax", 0x842047ee, 0xc2efcf03, "cis/MT5634ZLX.cis"),
+ PCMCIA_DEVICE_CIS_PROD_ID12("ADVANTECH", "COMpad-32/85B-2", 0x96913a85, 0x27ab5437, "COMpad2.cis"),
PCMCIA_DEVICE_CIS_PROD_ID12("ADVANTECH", "COMpad-32/85B-4", 0x96913a85, 0xcec8f102, "COMpad4.cis"),
PCMCIA_DEVICE_CIS_PROD_ID123("ADVANTECH", "COMpad-32/85", "1.0", 0x96913a85, 0x8fbe92ae, 0x0877b627, "COMpad2.cis"),
- PCMCIA_DEVICE_CIS_PROD_ID2("RS-COM 2P", 0xad20b156, "RS-COM-2P.cis"),
+ PCMCIA_DEVICE_CIS_PROD_ID2("RS-COM 2P", 0xad20b156, "cis/RS-COM-2P.cis"),
diff --git a/tty/tty-includecheck-fix-drivers-char-vt.c.patch b/tty/tty-includecheck-fix-drivers-char-vt.c.patch
index e52bcc1261d462..94332d652c3fbb 100644
--- a/tty/tty-includecheck-fix-drivers-char-vt.c.patch
+++ b/tty/tty-includecheck-fix-drivers-char-vt.c.patch
@@ -20,7 +20,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
-@@ -2958,7 +2958,6 @@ int __init vty_init(const struct file_op
+@@ -2955,7 +2955,6 @@ int __init vty_init(const struct file_op
}
#ifndef VT_SINGLE_DRIVER
diff --git a/tty/usb-serial-update-the-console-driver.patch b/tty/usb-serial-update-the-console-driver.patch
new file mode 100644
index 00000000000000..4fff3aeaf4b2c9
--- /dev/null
+++ b/tty/usb-serial-update-the-console-driver.patch
@@ -0,0 +1,109 @@
+From stern@rowland.harvard.edu Fri Sep 18 10:12:54 2009
+From: Alan Stern <stern@rowland.harvard.edu>
+Date: Fri, 4 Sep 2009 15:29:59 -0400 (EDT)
+Subject: USB serial: update the console driver
+To: Greg KH <greg@kroah.com>
+Message-ID: <Pine.LNX.4.44L0.0909041528260.2643-100000@iolanthe.rowland.org>
+
+
+This patch (as1292) modifies the USB serial console driver, to make it
+compatible with the recent changes to the USB serial core. The most
+important change is that serial->disc_mutex now has to be unlocked
+following a successful call to usb_serial_get_by_index().
+
+Other less notable changes include:
+
+ Use the requested port number instead of port 0 always.
+
+ Prevent the serial device from being autosuspended.
+
+ Use the ASYNCB_INITIALIZED flag bit to indicate when the
+ port hardware has been initialized.
+
+In spite of these changes, there's no question that the USB serial
+console code is still a big hack.
+
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Cc: stable <stable@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/console.c | 28 +++++++++++++++++++---------
+ 1 file changed, 19 insertions(+), 9 deletions(-)
+
+--- a/drivers/usb/serial/console.c
++++ b/drivers/usb/serial/console.c
+@@ -16,6 +16,7 @@
+ #include <linux/slab.h>
+ #include <linux/tty.h>
+ #include <linux/console.h>
++#include <linux/serial.h>
+ #include <linux/usb.h>
+ #include <linux/usb/serial.h>
+
+@@ -63,7 +64,7 @@ static int usb_console_setup(struct cons
+ char *s;
+ struct usb_serial *serial;
+ struct usb_serial_port *port;
+- int retval = 0;
++ int retval;
+ struct tty_struct *tty = NULL;
+ struct ktermios *termios = NULL, dummy;
+
+@@ -116,13 +117,17 @@ static int usb_console_setup(struct cons
+ return -ENODEV;
+ }
+
+- port = serial->port[0];
++ retval = usb_autopm_get_interface(serial->interface);
++ if (retval)
++ goto error_get_interface;
++
++ port = serial->port[co->index - serial->minor];
+ tty_port_tty_set(&port->port, NULL);
+
+ info->port = port;
+
+ ++port->port.count;
+- if (port->port.count == 1) {
++ if (!test_bit(ASYNCB_INITIALIZED, &port->port.flags)) {
+ if (serial->type->set_termios) {
+ /*
+ * allocate a fake tty so the driver can initialize
+@@ -168,6 +173,7 @@ static int usb_console_setup(struct cons
+ kfree(termios);
+ kfree(tty);
+ }
++ set_bit(ASYNCB_INITIALIZED, &port->port.flags);
+ }
+ /* Now that any required fake tty operations are completed restore
+ * the tty port count */
+@@ -175,18 +181,22 @@ static int usb_console_setup(struct cons
+ /* The console is special in terms of closing the device so
+ * indicate this port is now acting as a system console. */
+ port->console = 1;
+- retval = 0;
+
+-out:
++ mutex_unlock(&serial->disc_mutex);
+ return retval;
+-free_termios:
++
++ free_termios:
+ kfree(termios);
+ tty_port_tty_set(&port->port, NULL);
+-free_tty:
++ free_tty:
+ kfree(tty);
+-reset_open_count:
++ reset_open_count:
+ port->port.count = 0;
+- goto out;
++ usb_autopm_put_interface(serial->interface);
++ error_get_interface:
++ usb_serial_put(serial);
++ mutex_unlock(&serial->disc_mutex);
++ return retval;
+ }
+
+ static void usb_console_write(struct console *co,
diff --git a/tty/vt-events b/tty/vt-events
index 9a6e1285df463e..6691a4f636ac79 100644
--- a/tty/vt-events
+++ b/tty/vt-events
@@ -41,7 +41,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
return err;
}
-@@ -3640,6 +3640,7 @@ void do_blank_screen(int entering_gfx)
+@@ -3637,6 +3637,7 @@ void do_blank_screen(int entering_gfx)
blank_state = blank_vesa_wait;
mod_timer(&console_timer, jiffies + vesa_off_interval);
}
@@ -49,7 +49,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
}
EXPORT_SYMBOL(do_blank_screen);
-@@ -3684,6 +3685,7 @@ void do_unblank_screen(int leaving_gfx)
+@@ -3681,6 +3682,7 @@ void do_unblank_screen(int leaving_gfx)
console_blank_hook(0);
set_palette(vc);
set_cursor(vc);
diff --git a/usb/usb-gadget-update-freescale-udc-entry-in-maintainers.patch b/usb/usb-gadget-update-freescale-udc-entry-in-maintainers.patch
index 88e3c3b6e2d02b..ba902cc8b45cbc 100644
--- a/usb/usb-gadget-update-freescale-udc-entry-in-maintainers.patch
+++ b/usb/usb-gadget-update-freescale-udc-entry-in-maintainers.patch
@@ -21,7 +21,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -2101,12 +2101,12 @@ S: Supported
+@@ -2107,12 +2107,12 @@ S: Supported
F: arch/powerpc/sysdev/qe_lib/
F: arch/powerpc/include/asm/*qe.h
diff --git a/version b/version
index 78aabcffe2d289..6f5ce786465786 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-2.6.31-git5
+2.6.31-git8