From: Greg Kroah-Hartman Date: Wed, 28 Jul 2010 22:49:35 +0000 (-0700) Subject: .34 patches X-Git-Tag: v2.6.27.49~24 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=650e37f5e154b63e31d34535403990a632d11d11;p=thirdparty%2Fkernel%2Fstable-queue.git .34 patches --- diff --git a/queue-2.6.34/series b/queue-2.6.34/series index a13605a1394..c2d2062405d 100644 --- a/queue-2.6.34/series +++ b/queue-2.6.34/series @@ -121,3 +121,22 @@ x86-do-not-try-to-disable-hpet-if-it-hasn-t-been-initialized-before.patch x86-pci-mrst-add-extra-sanity-check-in-walking-the-pci-extended-cap-chain.patch x86-kprobes-fix-swapped-segment-registers-in-kretprobe.patch x86-i8259-only-register-sysdev-if-we-have-a-real-8259-pic.patch +usb-don-t-enable-remote-wakeup-by-default.patch +usb-g_serial-don-t-set-low_latency-flag.patch +usb-g_serial-fix-tty-cleanup-on-unload.patch +usb-musb-fix-a-bug-by-making-suspend-interrupt-available-in-device-mode.patch +usb-ehci-mxc-bail-out-on-transceiver-problems.patch +usb-obey-the-sysfs-power-wakeup-setting.patch +usb-musb_core-make-disconnect-and-suspend-interrupts-work-again.patch +usb-musb-make-non-omap-platforms-build-with-config_pm-y.patch +usb-option-add-support-for-1da5-4518.patch +usb-add-pid-for-sierra-250u-to-drivers-usb-serial-sierra.c.patch +usb-ftdi_sio-support-for-signalyzer-tools-based-on-ftdi-chips.patch +usb-option-add-support-for-amoi-skypephone-s2.patch +usb-fix-usb3.0-port-speed-downgrade-after-port-reset.patch +usb-adds-artisman-usb-dongle-to-list-of-quirky-devices.patch +usb-sisusbvga-fix-for-usb-3.0.patch +usb-xhci-set-mult-field-in-endpoint-context-correctly.patch +usb-add-quirk-for-broadcom-bt-dongle.patch +usb-ftdi-add-support-for-the-rt-system-vx-7-radio-programming-cable.patch +usb-musb-tusb6010-fix-compile-error-with-n8x0_defconfig.patch diff --git a/queue-2.6.34/usb-add-pid-for-sierra-250u-to-drivers-usb-serial-sierra.c.patch b/queue-2.6.34/usb-add-pid-for-sierra-250u-to-drivers-usb-serial-sierra.c.patch new file mode 100644 index 00000000000..e7a62e7a42f --- /dev/null +++ b/queue-2.6.34/usb-add-pid-for-sierra-250u-to-drivers-usb-serial-sierra.c.patch @@ -0,0 +1,30 @@ +From 9d72c81d657340e54a260a3b621f4a9f5b33829c Mon Sep 17 00:00:00 2001 +From: august huber +Date: Mon, 28 Jun 2010 11:46:05 -0700 +Subject: USB: Add PID for Sierra 250U to drivers/usb/serial/sierra.c + +From: august huber + +commit 9d72c81d657340e54a260a3b621f4a9f5b33829c upstream. + +Add VID/PID for Sierra Wireless 250U USB dongle to sierra.c +Allows use of 3G radio only + +Signed-off-by: August Huber +Cc: Elina Pasheva +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/sierra.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/serial/sierra.c ++++ b/drivers/usb/serial/sierra.c +@@ -245,6 +245,7 @@ static const struct usb_device_id id_tab + { USB_DEVICE(0x1199, 0x0021) }, /* Sierra Wireless AirCard 597E */ + { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless AirCard 580 */ + { USB_DEVICE(0x1199, 0x0120) }, /* Sierra Wireless USB Dongle 595U */ ++ { USB_DEVICE(0x1199, 0x0301) }, /* Sierra Wireless USB Dongle 250U */ + /* Sierra Wireless C597 */ + { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x0023, 0xFF, 0xFF, 0xFF) }, + /* Sierra Wireless T598 */ diff --git a/queue-2.6.34/usb-add-quirk-for-broadcom-bt-dongle.patch b/queue-2.6.34/usb-add-quirk-for-broadcom-bt-dongle.patch new file mode 100644 index 00000000000..9d3a63e14b0 --- /dev/null +++ b/queue-2.6.34/usb-add-quirk-for-broadcom-bt-dongle.patch @@ -0,0 +1,30 @@ +From 63ab71deae67b031045bb28bf8cff45180089f8f Mon Sep 17 00:00:00 2001 +From: Oliver Neukum +Date: Wed, 14 Jul 2010 18:26:22 +0200 +Subject: USB: add quirk for Broadcom BT dongle + +From: Oliver Neukum + +commit 63ab71deae67b031045bb28bf8cff45180089f8f upstream. + +This device needs to be reset when resuming + +Signed-off-by: Oliver Neukum +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/core/quirks.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/usb/core/quirks.c ++++ b/drivers/usb/core/quirks.c +@@ -68,6 +68,9 @@ static const struct usb_device_id usb_qu + /* X-Rite/Gretag-Macbeth Eye-One Pro display colorimeter */ + { USB_DEVICE(0x0971, 0x2000), .driver_info = USB_QUIRK_NO_SET_INTF }, + ++ /* Broadcom BCM92035DGROM BT dongle */ ++ { USB_DEVICE(0x0a5c, 0x2021), .driver_info = USB_QUIRK_RESET_RESUME }, ++ + /* Action Semiconductor flash disk */ + { USB_DEVICE(0x10d6, 0x2200), .driver_info = + USB_QUIRK_STRING_FETCH_255 }, diff --git a/queue-2.6.34/usb-adds-artisman-usb-dongle-to-list-of-quirky-devices.patch b/queue-2.6.34/usb-adds-artisman-usb-dongle-to-list-of-quirky-devices.patch new file mode 100644 index 00000000000..e03fde3983b --- /dev/null +++ b/queue-2.6.34/usb-adds-artisman-usb-dongle-to-list-of-quirky-devices.patch @@ -0,0 +1,39 @@ +From 47f19c0eedb377ad1ee8114f464d001ec5f96a69 Mon Sep 17 00:00:00 2001 +From: Paul Mortier +Date: Fri, 9 Jul 2010 13:18:50 +0100 +Subject: USB: adds Artisman USB dongle to list of quirky devices + +From: Paul Mortier + +commit 47f19c0eedb377ad1ee8114f464d001ec5f96a69 upstream. + +When an attempt is made to read the interface strings of the Artisman +Watchdog USB dongle (idVendor:idProduct 04b4:0526) an error is written +to the dmesg log (uhci_result_common: failed with status 440000) and the +dongle resets itself, resulting in a disconnect/reconnect loop. + +Adding the dongle to the list of devices in quirks.c, with the same +quirk Alan Stern's previous patch for the Saitek Cyborg Gold 3D +joystick, stops the device from resetting and allows it to be used with +no problems. + +Signed-off-by: Paul Mortier +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/core/quirks.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/usb/core/quirks.c ++++ b/drivers/usb/core/quirks.c +@@ -41,6 +41,10 @@ static const struct usb_device_id usb_qu + /* Philips PSC805 audio device */ + { USB_DEVICE(0x0471, 0x0155), .driver_info = USB_QUIRK_RESET_RESUME }, + ++ /* Artisman Watchdog Dongle */ ++ { USB_DEVICE(0x04b4, 0x0526), .driver_info = ++ USB_QUIRK_CONFIG_INTF_STRINGS }, ++ + /* Roland SC-8820 */ + { USB_DEVICE(0x0582, 0x0007), .driver_info = USB_QUIRK_RESET_RESUME }, + diff --git a/queue-2.6.34/usb-don-t-enable-remote-wakeup-by-default.patch b/queue-2.6.34/usb-don-t-enable-remote-wakeup-by-default.patch new file mode 100644 index 00000000000..82cf48e745e --- /dev/null +++ b/queue-2.6.34/usb-don-t-enable-remote-wakeup-by-default.patch @@ -0,0 +1,37 @@ +From 7aba8d014341341590ecb64050b7a026642a62eb Mon Sep 17 00:00:00 2001 +From: Alan Stern +Date: Fri, 2 Apr 2010 13:21:33 -0400 +Subject: USB: don't enable remote wakeup by default + +From: Alan Stern + +commit 7aba8d014341341590ecb64050b7a026642a62eb upstream. + +This patch (as1364) avoids enabling remote wakeup by default on all +non-root-hub USB devices. Individual drivers or userspace will have +to enable it wherever it is needed, such as for keyboards or network +interfaces. Note: This affects only system sleep, not autosuspend. + +External hubs will continue to relay wakeup requests received from +downstream through their upstream port, even when remote wakeup is not +enabled for the hub itself. Disabling remote wakeup on a hub merely +prevents it from generating wakeup requests in response to connect, +disconnect, and overcurrent events. + +Signed-off-by: Alan Stern +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/core/hub.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/drivers/usb/core/hub.c ++++ b/drivers/usb/core/hub.c +@@ -1784,7 +1784,6 @@ int usb_new_device(struct usb_device *ud + * sysfs power/wakeup controls wakeup enabled/disabled + */ + device_init_wakeup(&udev->dev, 0); +- device_set_wakeup_enable(&udev->dev, 1); + } + + /* Tell the runtime-PM framework the device is active */ diff --git a/queue-2.6.34/usb-ehci-mxc-bail-out-on-transceiver-problems.patch b/queue-2.6.34/usb-ehci-mxc-bail-out-on-transceiver-problems.patch new file mode 100644 index 00000000000..440350a3602 --- /dev/null +++ b/queue-2.6.34/usb-ehci-mxc-bail-out-on-transceiver-problems.patch @@ -0,0 +1,68 @@ +From 4c9715de52b9b6256bf1e9510917111a47b0c176 Mon Sep 17 00:00:00 2001 +From: Wolfram Sang +Date: Tue, 15 Jun 2010 12:34:23 +0200 +Subject: USB: ehci-mxc: bail out on transceiver problems + +From: Wolfram Sang + +commit 4c9715de52b9b6256bf1e9510917111a47b0c176 upstream. + +The old code registered the hcd even if there were no transceivers +detected, leading to oopses like this if we try to probe a non-existant +ULPI: + +[ 2.730000] mxc-ehci mxc-ehci.0: unable to init transceiver +[ 2.740000] timeout polling for ULPI device +[ 2.740000] timeout polling for ULPI device +[ 2.750000] mxc-ehci mxc-ehci.0: unable to enable vbus on transceiver +[ 2.750000] mxc-ehci mxc-ehci.0: Freescale On-Chip EHCI Host Controller +[ 2.760000] mxc-ehci mxc-ehci.0: new USB bus registered, assigned bus number 2 +[ 2.770000] Unhandled fault: external abort on non-linefetch (0x808) at 0xc4876184 +[ 2.770000] Internal error: : 808 [#1] PREEMPT +[ 2.770000] last sysfs file: +[ 2.770000] Modules linked in: +[ 2.770000] CPU: 0 Not tainted (2.6.33.5 #5) +[ 2.770000] PC is at ehci_hub_control+0x4d4/0x8f8 +[ 2.770000] LR is at ehci_mxc_setup+0xbc/0xdc +[ 2.770000] pc : [] lr : [] psr: 00000093 +[ 2.770000] sp : c3815e40 ip : 00000001 fp : 60000013 +[ 2.770000] r10: c4876184 r9 : 00000000 r8 : c3814000 +[ 2.770000] r7 : c391d2cc r6 : 00000001 r5 : 00000001 r4 : 00000000 +[ 2.770000] r3 : 80000000 r2 : 00000007 r1 : 80000000 r0 : c4876184 +[ 2.770000] Flags: nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel +[ 2.770000] Control: 0005317f Table: a0004000 DAC: 00000017 +[ 2.770000] Process swapper (pid: 1, stack limit = 0xc3814270) +... + +Signed-off-by: Wolfram Sang +Cc: Sascha Hauer +Acked-by: Daniel Mack +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/ehci-mxc.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +--- a/drivers/usb/host/ehci-mxc.c ++++ b/drivers/usb/host/ehci-mxc.c +@@ -207,10 +207,17 @@ static int ehci_mxc_drv_probe(struct pla + /* Initialize the transceiver */ + if (pdata->otg) { + pdata->otg->io_priv = hcd->regs + ULPI_VIEWPORT_OFFSET; +- if (otg_init(pdata->otg) != 0) +- dev_err(dev, "unable to init transceiver\n"); +- else if (otg_set_vbus(pdata->otg, 1) != 0) ++ ret = otg_init(pdata->otg); ++ if (ret) { ++ dev_err(dev, "unable to init transceiver, probably missing\n"); ++ ret = -ENODEV; ++ goto err_add; ++ } ++ ret = otg_set_vbus(pdata->otg, 1); ++ if (ret) { + dev_err(dev, "unable to enable vbus on transceiver\n"); ++ goto err_add; ++ } + } + + priv->hcd = hcd; diff --git a/queue-2.6.34/usb-fix-usb3.0-port-speed-downgrade-after-port-reset.patch b/queue-2.6.34/usb-fix-usb3.0-port-speed-downgrade-after-port-reset.patch new file mode 100644 index 00000000000..cb1a61055e8 --- /dev/null +++ b/queue-2.6.34/usb-fix-usb3.0-port-speed-downgrade-after-port-reset.patch @@ -0,0 +1,43 @@ +From 809cd1cb80d7dffe75dc94bc94ef2aab3dadc86a Mon Sep 17 00:00:00 2001 +From: Sarah Sharp +Date: Fri, 9 Jul 2010 17:08:48 +0200 +Subject: USB: Fix USB3.0 Port Speed Downgrade after port reset + +From: Sarah Sharp + +commit 809cd1cb80d7dffe75dc94bc94ef2aab3dadc86a upstream. + +Without this fix, a USB 3.0 port is downgraded to full speed after a port +reset of a configured device. The USB 3.0 terminations will be disabled +permanently, and USB 3.0 devices will always enumerate as full speed +devices, until the host controller is unplugged (if it is an ExpressCard) +or the computer is rebooted. + +Fajun Chen traced this traced the speed downgrade issue to the port reset +and the interpretation of port status in USB hub driver code. The hub +code was not testing for the port being a SuperSpeed port, and it fell +through to the else case of Full Speed. + +The following patch adds SuperSpeed mapping from the port status, and +fixes the speed downgrade issue. + +Reported-by: Fajun Chen +Signed-off-by: Sarah Sharp +Signed-off-by: Greg Kroah-Hartman + + +--- + drivers/usb/core/hub.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/core/hub.c ++++ b/drivers/usb/core/hub.c +@@ -1971,6 +1971,8 @@ static int hub_port_wait_reset(struct us + (portstatus & USB_PORT_STAT_ENABLE)) { + if (hub_is_wusb(hub)) + udev->speed = USB_SPEED_WIRELESS; ++ else if (portstatus & (1 << USB_PORT_FEAT_SUPERSPEED)) ++ udev->speed = USB_SPEED_SUPER; + else if (portstatus & USB_PORT_STAT_HIGH_SPEED) + udev->speed = USB_SPEED_HIGH; + else if (portstatus & USB_PORT_STAT_LOW_SPEED) diff --git a/queue-2.6.34/usb-ftdi-add-support-for-the-rt-system-vx-7-radio-programming-cable.patch b/queue-2.6.34/usb-ftdi-add-support-for-the-rt-system-vx-7-radio-programming-cable.patch new file mode 100644 index 00000000000..0241f19800d --- /dev/null +++ b/queue-2.6.34/usb-ftdi-add-support-for-the-rt-system-vx-7-radio-programming-cable.patch @@ -0,0 +1,46 @@ +From fcc6cb789c77ffee31710eec64efeb25f2124f7a Mon Sep 17 00:00:00 2001 +From: Corey Minyard +Date: Wed, 21 Jul 2010 08:39:22 -0500 +Subject: USB: FTDI: Add support for the RT System VX-7 radio programming cable + +From: Corey Minyard + +commit fcc6cb789c77ffee31710eec64efeb25f2124f7a upstream. + +RT Systems has put out bunch of ham radio cables based on the FT232RL +chip. Each cable type has a unique PID, this adds one for the Yaesu VX-7 +radios. + +Signed-off-by: Corey Minyard +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/ftdi_sio.c | 1 + + drivers/usb/serial/ftdi_sio_ids.h | 6 ++++++ + 2 files changed, 7 insertions(+) + +--- a/drivers/usb/serial/ftdi_sio.c ++++ b/drivers/usb/serial/ftdi_sio.c +@@ -697,6 +697,7 @@ static struct usb_device_id id_table_com + { USB_DEVICE(FTDI_VID, FTDI_NDI_AURORA_SCU_PID), + .driver_info = (kernel_ulong_t)&ftdi_NDI_device_quirk }, + { USB_DEVICE(TELLDUS_VID, TELLDUS_TELLSTICK_PID) }, ++ { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_SERIAL_VX7_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_MAXSTREAM_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_PHI_FISCO_PID) }, + { USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) }, +--- a/drivers/usb/serial/ftdi_sio_ids.h ++++ b/drivers/usb/serial/ftdi_sio_ids.h +@@ -703,6 +703,12 @@ + #define TELLDUS_TELLSTICK_PID 0x0C30 /* RF control dongle 433 MHz using FT232RL */ + + /* ++ * RT Systems programming cables for various ham radios ++ */ ++#define RTSYSTEMS_VID 0x2100 /* Vendor ID */ ++#define RTSYSTEMS_SERIAL_VX7_PID 0x9e52 /* Serial converter for VX-7 Radios using FT232RL */ ++ ++/* + * Bayer Ascensia Contour blood glucose meter USB-converter cable. + * http://winglucofacts.com/cables/ + */ diff --git a/queue-2.6.34/usb-ftdi_sio-support-for-signalyzer-tools-based-on-ftdi-chips.patch b/queue-2.6.34/usb-ftdi_sio-support-for-signalyzer-tools-based-on-ftdi-chips.patch new file mode 100644 index 00000000000..1070791d2b0 --- /dev/null +++ b/queue-2.6.34/usb-ftdi_sio-support-for-signalyzer-tools-based-on-ftdi-chips.patch @@ -0,0 +1,53 @@ +From 77dbd74e16b566e9d5eeb4be18ae3ee7d5902bd3 Mon Sep 17 00:00:00 2001 +From: Colin Leitner +Date: Thu, 1 Jul 2010 10:49:55 +0200 +Subject: USB: ftdi_sio: support for Signalyzer tools based on FTDI chips + +From: Colin Leitner + +commit 77dbd74e16b566e9d5eeb4be18ae3ee7d5902bd3 upstream. + +ftdi_sio: support for Signalyzer tools based on FTDI chips + +This patch adds support for the Xverve Signalyzers. + +Signed-off-by: Colin Leitner +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/ftdi_sio.c | 8 ++++++++ + drivers/usb/serial/ftdi_sio_ids.h | 9 +++++++++ + 2 files changed, 17 insertions(+) + +--- a/drivers/usb/serial/ftdi_sio.c ++++ b/drivers/usb/serial/ftdi_sio.c +@@ -743,6 +743,14 @@ static struct usb_device_id id_table_com + { USB_DEVICE(FTDI_VID, MJSG_SR_RADIO_PID) }, + { USB_DEVICE(FTDI_VID, MJSG_HD_RADIO_PID) }, + { USB_DEVICE(FTDI_VID, MJSG_XM_RADIO_PID) }, ++ { USB_DEVICE(FTDI_VID, XVERVE_SIGNALYZER_ST_PID), ++ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, ++ { USB_DEVICE(FTDI_VID, XVERVE_SIGNALYZER_SLITE_PID), ++ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, ++ { USB_DEVICE(FTDI_VID, XVERVE_SIGNALYZER_SH2_PID), ++ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, ++ { USB_DEVICE(FTDI_VID, XVERVE_SIGNALYZER_SH4_PID), ++ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + { }, /* Optional parameter entry */ + { } /* Terminating entry */ + }; +--- a/drivers/usb/serial/ftdi_sio_ids.h ++++ b/drivers/usb/serial/ftdi_sio_ids.h +@@ -1024,3 +1024,12 @@ + #define MJSG_SR_RADIO_PID 0x9379 + #define MJSG_XM_RADIO_PID 0x937A + #define MJSG_HD_RADIO_PID 0x937C ++ ++/* ++ * Xverve Signalyzer tools (http://www.signalyzer.com/) ++ */ ++#define XVERVE_SIGNALYZER_ST_PID 0xBCA0 ++#define XVERVE_SIGNALYZER_SLITE_PID 0xBCA1 ++#define XVERVE_SIGNALYZER_SH2_PID 0xBCA2 ++#define XVERVE_SIGNALYZER_SH4_PID 0xBCA4 ++ diff --git a/queue-2.6.34/usb-g_serial-don-t-set-low_latency-flag.patch b/queue-2.6.34/usb-g_serial-don-t-set-low_latency-flag.patch new file mode 100644 index 00000000000..56be438ae93 --- /dev/null +++ b/queue-2.6.34/usb-g_serial-don-t-set-low_latency-flag.patch @@ -0,0 +1,58 @@ +From 44a0c0190b500ee6bcfc0976fe540f65dee2cd67 Mon Sep 17 00:00:00 2001 +From: Jon Povey +Date: Mon, 14 Jun 2010 19:41:04 +0900 +Subject: USB: g_serial: don't set low_latency flag + +From: Jon Povey + +commit 44a0c0190b500ee6bcfc0976fe540f65dee2cd67 upstream. + +No longer set low_latency flag as it causes this warning backtrace: + + WARNING: at kernel/mutex.c:207 __mutex_lock_slowpath+0x6c/0x288() + +Fix associated locking and wakeups. + +Signed-off-by: Jon Povey +Cc: Maulik Mankad +Acked-by: David Brownell +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/gadget/u_serial.c | 15 ++------------- + 1 file changed, 2 insertions(+), 13 deletions(-) + +--- a/drivers/usb/gadget/u_serial.c ++++ b/drivers/usb/gadget/u_serial.c +@@ -536,17 +536,11 @@ recycle: + list_move(&req->list, &port->read_pool); + } + +- /* Push from tty to ldisc; this is immediate with low_latency, and +- * may trigger callbacks to this driver ... so drop the spinlock. ++ /* Push from tty to ldisc; without low_latency set this is handled by ++ * a workqueue, so we won't get callbacks and can hold port_lock + */ + if (tty && do_push) { +- spin_unlock_irq(&port->port_lock); + tty_flip_buffer_push(tty); +- wake_up_interruptible(&tty->read_wait); +- spin_lock_irq(&port->port_lock); +- +- /* tty may have been closed */ +- tty = port->port_tty; + } + + +@@ -784,11 +778,6 @@ static int gs_open(struct tty_struct *tt + port->open_count = 1; + port->openclose = false; + +- /* low_latency means ldiscs work in tasklet context, without +- * needing a workqueue schedule ... easier to keep up. +- */ +- tty->low_latency = 1; +- + /* if connected, start the I/O stream */ + if (port->port_usb) { + struct gserial *gser = port->port_usb; diff --git a/queue-2.6.34/usb-g_serial-fix-tty-cleanup-on-unload.patch b/queue-2.6.34/usb-g_serial-fix-tty-cleanup-on-unload.patch new file mode 100644 index 00000000000..76734a5bb5f --- /dev/null +++ b/queue-2.6.34/usb-g_serial-fix-tty-cleanup-on-unload.patch @@ -0,0 +1,30 @@ +From b23097b793081358a6d943263c91bae4c955c4e3 Mon Sep 17 00:00:00 2001 +From: Jon Povey +Date: Mon, 14 Jun 2010 19:42:10 +0900 +Subject: USB: g_serial: fix tty cleanup on unload + +From: Jon Povey + +commit b23097b793081358a6d943263c91bae4c955c4e3 upstream. + +Call put_tty_driver() in cleanup function, to fix Oops when trying to open +gadget serial char device after module unload. + +Signed-off-by: Jon Povey +Acked-by: David Brownell +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/gadget/u_serial.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/gadget/u_serial.c ++++ b/drivers/usb/gadget/u_serial.c +@@ -1184,6 +1184,7 @@ void gserial_cleanup(void) + n_ports = 0; + + tty_unregister_driver(gs_tty_driver); ++ put_tty_driver(gs_tty_driver); + gs_tty_driver = NULL; + + pr_debug("%s: cleaned up ttyGS* support\n", __func__); diff --git a/queue-2.6.34/usb-musb-fix-a-bug-by-making-suspend-interrupt-available-in-device-mode.patch b/queue-2.6.34/usb-musb-fix-a-bug-by-making-suspend-interrupt-available-in-device-mode.patch new file mode 100644 index 00000000000..31dbfa4352a --- /dev/null +++ b/queue-2.6.34/usb-musb-fix-a-bug-by-making-suspend-interrupt-available-in-device-mode.patch @@ -0,0 +1,48 @@ +From 2bb14cbf04ded4b9e394a6ba9e4f06b82fbac8b2 Mon Sep 17 00:00:00 2001 +From: Maulik Mankad +Date: Tue, 15 Jun 2010 14:40:27 +0530 +Subject: usb: musb: Fix a bug by making suspend interrupt available in device mode + +From: Maulik Mankad + +commit 2bb14cbf04ded4b9e394a6ba9e4f06b82fbac8b2 upstream. + +As a part of aligning the ISR code for MUSB with the specs, the +ISR code was re-written. + +See Commit 1c25fda4a09e8229800979986ef399401053b46e (usb: musb: handle +irqs in the order dictated by programming guide) + +With this the suspend interrupt came accidently under CONFIG_USB_MUSB_HDRC_HCD. + +The fix brings suspend interrupt handling outside +CONFIG_USB_MUSB_HDRC_HCD. + +Signed-off-by: Maulik Mankad +Cc: David Brownell +Acked-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/musb/musb_core.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -562,7 +562,7 @@ static irqreturn_t musb_stage0_irq(struc + handled = IRQ_HANDLED; + } + +- ++#endif + if (int_usb & MUSB_INTR_SUSPEND) { + DBG(1, "SUSPEND (%s) devctl %02x power %02x\n", + otg_state_string(musb), devctl, power); +@@ -625,6 +625,7 @@ static irqreturn_t musb_stage0_irq(struc + } + } + ++#ifdef CONFIG_USB_MUSB_HDRC_HCD + if (int_usb & MUSB_INTR_CONNECT) { + struct usb_hcd *hcd = musb_to_hcd(musb); + void __iomem *mbase = musb->mregs; diff --git a/queue-2.6.34/usb-musb-make-non-omap-platforms-build-with-config_pm-y.patch b/queue-2.6.34/usb-musb-make-non-omap-platforms-build-with-config_pm-y.patch new file mode 100644 index 00000000000..86cf9e3f6fe --- /dev/null +++ b/queue-2.6.34/usb-musb-make-non-omap-platforms-build-with-config_pm-y.patch @@ -0,0 +1,56 @@ +From 9297688a9257d73956d4bba484d9dd331ca72c25 Mon Sep 17 00:00:00 2001 +From: Sergei Shtylyov +Date: Thu, 24 Jun 2010 23:07:07 +0530 +Subject: USB: MUSB: make non-OMAP platforms build with CONFIG_PM=y + +From: Sergei Shtylyov + +commit 9297688a9257d73956d4bba484d9dd331ca72c25 upstream. + +Attempt to build MUSB driver with CONFIG_PM=y (e.g. in the OTG mode) on DaVinci +results in these link errors: + +drivers/built-in.o: In function `musb_restore_context': +led-triggers.c:(.text+0x714d8): undefined reference to +`musb_platform_restore_context' +drivers/built-in.o: In function `musb_save_context': +led-triggers.c:(.text+0x71788): undefined reference to +`musb_platform_save_context' + +This turned out to be caused by commit 9957dd97ec5e98dd334f87ade1d9a0b24d1f86eb +(usb: musb: Fix compile error for omaps for musb_hdrc). Revert it, taking into +account the rename of CONFIG_ARCH_OMAP34XX into CONFIG_ARCH_OMAP3 (which that +commit fixed in a completely inappropriate way) and the recent addition of +OMAP4 support. + +Signed-off-by: Sergei Shtylyov +Signed-off-by: Ajay Kumar Gupta +Acked-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/musb/musb_core.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/drivers/usb/musb/musb_core.h ++++ b/drivers/usb/musb/musb_core.h +@@ -469,7 +469,8 @@ struct musb_csr_regs { + + struct musb_context_registers { + +-#ifdef CONFIG_PM ++#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3) || \ ++ defined(CONFIG_ARCH_OMAP4) + u32 otg_sysconfig, otg_forcestandby; + #endif + u8 power; +@@ -483,7 +484,8 @@ struct musb_context_registers { + struct musb_csr_regs index_regs[MUSB_C_NUM_EPS]; + }; + +-#ifdef CONFIG_PM ++#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3) || \ ++ defined(CONFIG_ARCH_OMAP4) + extern void musb_platform_save_context(struct musb *musb, + struct musb_context_registers *musb_context); + extern void musb_platform_restore_context(struct musb *musb, diff --git a/queue-2.6.34/usb-musb-tusb6010-fix-compile-error-with-n8x0_defconfig.patch b/queue-2.6.34/usb-musb-tusb6010-fix-compile-error-with-n8x0_defconfig.patch new file mode 100644 index 00000000000..d61383f477e --- /dev/null +++ b/queue-2.6.34/usb-musb-tusb6010-fix-compile-error-with-n8x0_defconfig.patch @@ -0,0 +1,41 @@ +From 2b795ea00c2bbb077a1199a4d729c8ac03a6bded Mon Sep 17 00:00:00 2001 +From: Felipe Balbi +Date: Mon, 5 Jul 2010 12:12:01 +0300 +Subject: USB: musb: tusb6010: fix compile error with n8x0_defconfig + +From: Felipe Balbi + +commit 2b795ea00c2bbb077a1199a4d729c8ac03a6bded upstream. + +Drop the unnecessary empty stubs in tusb6010.c and avoid +a compile error when building kernel for n8x0. + +Signed-off-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/musb/tusb6010.c | 13 ------------- + 1 file changed, 13 deletions(-) + +--- a/drivers/usb/musb/tusb6010.c ++++ b/drivers/usb/musb/tusb6010.c +@@ -29,19 +29,6 @@ static void tusb_source_power(struct mus + #define TUSB_REV_MAJOR(reg_val) ((reg_val >> 4) & 0xf) + #define TUSB_REV_MINOR(reg_val) (reg_val & 0xf) + +-#ifdef CONFIG_PM +-/* REVISIT: These should be only needed if somebody implements off idle */ +-void musb_platform_save_context(struct musb *musb, +- struct musb_context_registers *musb_context) +-{ +-} +- +-void musb_platform_restore_context(struct musb *musb, +- struct musb_context_registers *musb_context) +-{ +-} +-#endif +- + /* + * Checks the revision. We need to use the DMA register as 3.0 does not + * have correct versions for TUSB_PRCM_REV or TUSB_INT_CTRL_REV. diff --git a/queue-2.6.34/usb-musb_core-make-disconnect-and-suspend-interrupts-work-again.patch b/queue-2.6.34/usb-musb_core-make-disconnect-and-suspend-interrupts-work-again.patch new file mode 100644 index 00000000000..99ff8be2101 --- /dev/null +++ b/queue-2.6.34/usb-musb_core-make-disconnect-and-suspend-interrupts-work-again.patch @@ -0,0 +1,45 @@ +From 7d9645fdca444d53907b22a4b73e3967efe09781 Mon Sep 17 00:00:00 2001 +From: Sergei Shtylyov +Date: Thu, 24 Jun 2010 23:07:06 +0530 +Subject: USB: musb_core: make disconnect and suspend interrupts work again + +From: Sergei Shtylyov + +commit 7d9645fdca444d53907b22a4b73e3967efe09781 upstream. + +Commit 1c25fda4a09e8229800979986ef399401053b46e (usb: musb: handle irqs in the +order dictated by programming guide) forgot to get rid of the old 'STAGE0_MASK' +filter for calling musb_stage0_irq(), so now disconnect and suspend interrupts +are effectively ignored... + +Signed-off-by: Sergei Shtylyov +Signed-off-by: Ajay Kumar Gupta +Acked-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/musb/musb_core.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -371,10 +371,6 @@ void musb_hnp_stop(struct musb *musb) + * @param power + */ + +-#define STAGE0_MASK (MUSB_INTR_RESUME | MUSB_INTR_SESSREQ \ +- | MUSB_INTR_VBUSERROR | MUSB_INTR_CONNECT \ +- | MUSB_INTR_RESET) +- + static irqreturn_t musb_stage0_irq(struct musb *musb, u8 int_usb, + u8 devctl, u8 power) + { +@@ -1520,7 +1516,7 @@ irqreturn_t musb_interrupt(struct musb * + /* the core can interrupt us for multiple reasons; docs have + * a generic interrupt flowchart to follow + */ +- if (musb->int_usb & STAGE0_MASK) ++ if (musb->int_usb) + retval |= musb_stage0_irq(musb, musb->int_usb, + devctl, power); + diff --git a/queue-2.6.34/usb-obey-the-sysfs-power-wakeup-setting.patch b/queue-2.6.34/usb-obey-the-sysfs-power-wakeup-setting.patch new file mode 100644 index 00000000000..b1e63d03047 --- /dev/null +++ b/queue-2.6.34/usb-obey-the-sysfs-power-wakeup-setting.patch @@ -0,0 +1,66 @@ +From 48826626263d4a61d06fd8c5805da31f925aefa0 Mon Sep 17 00:00:00 2001 +From: Alan Stern +Date: Tue, 22 Jun 2010 16:14:48 -0400 +Subject: USB: obey the sysfs power/wakeup setting + +From: Alan Stern + +commit 48826626263d4a61d06fd8c5805da31f925aefa0 upstream. + +This patch (as1403) is a partial reversion of an earlier change +(commit 5f677f1d45b2bf08085bbba7394392dfa586fa8e "USB: fix remote +wakeup settings during system sleep"). After hearing from a user, I +realized that remote wakeup should be enabled during system sleep +whenever userspace allows it, and not only if a driver requests it +too. + +Indeed, there could be a device with no driver, that does nothing but +generate a wakeup request when the user presses a button. Such a +device should be allowed to do its job. + +The problem fixed by the earlier patch -- device generating a wakeup +request for no reason, causing system suspend to abort -- was also +addressed by a later patch ("USB: don't enable remote wakeup by +default", accepted but not yet merged into mainline). The device +won't be able to generate the bogus wakeup requests because it will be +disabled for remote wakeup by default. Hence this reversion will not +re-introduce any old problems. + +Signed-off-by: Alan Stern +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/core/driver.c | 13 +++---------- + 1 file changed, 3 insertions(+), 10 deletions(-) + +--- a/drivers/usb/core/driver.c ++++ b/drivers/usb/core/driver.c +@@ -1266,8 +1266,7 @@ static int usb_resume_both(struct usb_de + + static void choose_wakeup(struct usb_device *udev, pm_message_t msg) + { +- int w, i; +- struct usb_interface *intf; ++ int w; + + /* Remote wakeup is needed only when we actually go to sleep. + * For things like FREEZE and QUIESCE, if the device is already +@@ -1279,16 +1278,10 @@ static void choose_wakeup(struct usb_dev + return; + } + +- /* If remote wakeup is permitted, see whether any interface drivers ++ /* Enable remote wakeup if it is allowed, even if no interface drivers + * actually want it. + */ +- w = 0; +- if (device_may_wakeup(&udev->dev) && udev->actconfig) { +- for (i = 0; i < udev->actconfig->desc.bNumInterfaces; i++) { +- intf = udev->actconfig->interface[i]; +- w |= intf->needs_remote_wakeup; +- } +- } ++ w = device_may_wakeup(&udev->dev); + + /* If the device is autosuspended with the wrong wakeup setting, + * autoresume now so the setting can be changed. diff --git a/queue-2.6.34/usb-option-add-support-for-1da5-4518.patch b/queue-2.6.34/usb-option-add-support-for-1da5-4518.patch new file mode 100644 index 00000000000..eb775507d45 --- /dev/null +++ b/queue-2.6.34/usb-option-add-support-for-1da5-4518.patch @@ -0,0 +1,34 @@ +From 646d90e2b925578abef5c45853e0b166b6a450bf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=96mer=20Sezgin=20Ugurlu?= +Date: Mon, 28 Jun 2010 19:01:58 +0300 +Subject: USB: option: add support for 1da5:4518 + +From: =?UTF-8?q?=C3=96mer=20Sezgin=20Ugurlu?= + +commit 646d90e2b925578abef5c45853e0b166b6a450bf upstream. + +Signed-off-by: Omer Sezgin Ugurlu +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -323,6 +323,7 @@ static int option_resume(struct usb_ser + #define QISDA_PRODUCT_H21_4512 0x4512 + #define QISDA_PRODUCT_H21_4523 0x4523 + #define QISDA_PRODUCT_H20_4515 0x4515 ++#define QISDA_PRODUCT_H20_4518 0x4518 + #define QISDA_PRODUCT_H20_4519 0x4519 + + /* TLAYTECH PRODUCTS */ +@@ -873,6 +874,7 @@ static const struct usb_device_id option + { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H21_4512) }, + { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H21_4523) }, + { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H20_4515) }, ++ { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H20_4518) }, + { USB_DEVICE(QISDA_VENDOR_ID, QISDA_PRODUCT_H20_4519) }, + { USB_DEVICE(TOSHIBA_VENDOR_ID, TOSHIBA_PRODUCT_G450) }, + { USB_DEVICE(TOSHIBA_VENDOR_ID, TOSHIBA_PRODUCT_HSDPA_MINICARD ) }, /* Toshiba 3G HSDPA == Novatel Expedite EU870D MiniCard */ diff --git a/queue-2.6.34/usb-option-add-support-for-amoi-skypephone-s2.patch b/queue-2.6.34/usb-option-add-support-for-amoi-skypephone-s2.patch new file mode 100644 index 00000000000..6b4ccebf752 --- /dev/null +++ b/queue-2.6.34/usb-option-add-support-for-amoi-skypephone-s2.patch @@ -0,0 +1,39 @@ +From 7595931c986f50b1e197ce7b881563e36a7d041e Mon Sep 17 00:00:00 2001 +From: Dennis Jansen +Date: Fri, 9 Jul 2010 22:03:53 +0200 +Subject: USB: option: Add support for AMOI Skypephone S2 + +From: Dennis Jansen + +commit 7595931c986f50b1e197ce7b881563e36a7d041e upstream. + +usbserial: Add AMOI Skypephone S2 support. + +This patch adds support for the AMOI Skypephone S2 to the usbserial module. + +Tested-by: Dennis Jansen +Signed-off-by: Dennis Jansen +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -227,6 +227,7 @@ static int option_resume(struct usb_ser + #define AMOI_PRODUCT_H01 0x0800 + #define AMOI_PRODUCT_H01A 0x7002 + #define AMOI_PRODUCT_H02 0x0802 ++#define AMOI_PRODUCT_SKYPEPHONE_S2 0x0407 + + #define DELL_VENDOR_ID 0x413C + +@@ -538,6 +539,7 @@ static const struct usb_device_id option + { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) }, + { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) }, + { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H02) }, ++ { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_SKYPEPHONE_S2) }, + + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */ + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5500_MINICARD) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ diff --git a/queue-2.6.34/usb-sisusbvga-fix-for-usb-3.0.patch b/queue-2.6.34/usb-sisusbvga-fix-for-usb-3.0.patch new file mode 100644 index 00000000000..aa50c2068ab --- /dev/null +++ b/queue-2.6.34/usb-sisusbvga-fix-for-usb-3.0.patch @@ -0,0 +1,40 @@ +From 20a12f007feee1cfa761b431047271d1141d8031 Mon Sep 17 00:00:00 2001 +From: Oliver Neukum +Date: Fri, 16 Jul 2010 17:36:26 +0200 +Subject: USB: sisusbvga: Fix for USB 3.0 + +From: Oliver Neukum + +commit 20a12f007feee1cfa761b431047271d1141d8031 upstream. + +Super speed is also fast enough to let sisusbvga operate. +Therefor expand the checks. + +Signed-off-by: Oliver Neukum +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/misc/sisusbvga/sisusb.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/drivers/usb/misc/sisusbvga/sisusb.c ++++ b/drivers/usb/misc/sisusbvga/sisusb.c +@@ -2442,7 +2442,8 @@ sisusb_open(struct inode *inode, struct + } + + if (!sisusb->devinit) { +- if (sisusb->sisusb_dev->speed == USB_SPEED_HIGH) { ++ if (sisusb->sisusb_dev->speed == USB_SPEED_HIGH || ++ sisusb->sisusb_dev->speed == USB_SPEED_SUPER) { + if (sisusb_init_gfxdevice(sisusb, 0)) { + mutex_unlock(&sisusb->lock); + dev_err(&sisusb->sisusb_dev->dev, "Failed to initialize device\n"); +@@ -3177,7 +3178,7 @@ static int sisusb_probe(struct usb_inter + + sisusb->present = 1; + +- if (dev->speed == USB_SPEED_HIGH) { ++ if (dev->speed == USB_SPEED_HIGH || dev->speed == USB_SPEED_SUPER) { + int initscreen = 1; + #ifdef INCL_SISUSB_CON + if (sisusb_first_vc > 0 && diff --git a/queue-2.6.34/usb-xhci-set-mult-field-in-endpoint-context-correctly.patch b/queue-2.6.34/usb-xhci-set-mult-field-in-endpoint-context-correctly.patch new file mode 100644 index 00000000000..63f4ffbfd36 --- /dev/null +++ b/queue-2.6.34/usb-xhci-set-mult-field-in-endpoint-context-correctly.patch @@ -0,0 +1,47 @@ +From c30c791c946a14a03e87819eced562ed28711961 Mon Sep 17 00:00:00 2001 +From: Sarah Sharp +Date: Sat, 10 Jul 2010 15:48:01 +0200 +Subject: USB: xhci: Set Mult field in endpoint context correctly. + +From: Sarah Sharp + +commit c30c791c946a14a03e87819eced562ed28711961 upstream. + +The bmAttributes field of the SuperSpeed Endpoint Companion Descriptor has +different meanings, depending on the endpoint type. If the endpoint is +isochronous, the bmAttributes field is the maximum number of packets +within a service interval that this endpoint supports. If the endpoint is +bulk, it's the number of stream IDs this endpoint supports. + +Only set the Mult field of the xHCI endpoint context using the +bmAttributes field if the endpoint is isochronous, and the device is a +SuperSpeed device. + +Signed-off-by: Sarah Sharp +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/xhci-mem.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/drivers/usb/host/xhci-mem.c ++++ b/drivers/usb/host/xhci-mem.c +@@ -582,7 +582,7 @@ static inline unsigned int xhci_get_endp + return EP_INTERVAL(interval); + } + +-/* The "Mult" field in the endpoint context is only set for SuperSpeed devices. ++/* The "Mult" field in the endpoint context is only set for SuperSpeed isoc eps. + * High speed endpoint descriptors can define "the number of additional + * transaction opportunities per microframe", but that goes in the Max Burst + * endpoint context field. +@@ -590,7 +590,8 @@ static inline unsigned int xhci_get_endp + static inline u32 xhci_get_endpoint_mult(struct usb_device *udev, + struct usb_host_endpoint *ep) + { +- if (udev->speed != USB_SPEED_SUPER || !ep->ss_ep_comp) ++ if (udev->speed != USB_SPEED_SUPER || !ep->ss_ep_comp || ++ !usb_endpoint_xfer_isoc(&ep->desc)) + return 0; + return ep->ss_ep_comp->desc.bmAttributes; + }