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
--- /dev/null
+From 9d72c81d657340e54a260a3b621f4a9f5b33829c Mon Sep 17 00:00:00 2001
+From: august huber <gus@pbx.org>
+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 <gus@pbx.org>
+
+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 <gus@pbx.org>
+Cc: Elina Pasheva <epasheva@sierrawireless.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 */
--- /dev/null
+From 63ab71deae67b031045bb28bf8cff45180089f8f Mon Sep 17 00:00:00 2001
+From: Oliver Neukum <oliver@neukum.org>
+Date: Wed, 14 Jul 2010 18:26:22 +0200
+Subject: USB: add quirk for Broadcom BT dongle
+
+From: Oliver Neukum <oliver@neukum.org>
+
+commit 63ab71deae67b031045bb28bf8cff45180089f8f upstream.
+
+This device needs to be reset when resuming
+
+Signed-off-by: Oliver Neukum <oneukum@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 },
--- /dev/null
+From 47f19c0eedb377ad1ee8114f464d001ec5f96a69 Mon Sep 17 00:00:00 2001
+From: Paul Mortier <mortier@btinternet.com>
+Date: Fri, 9 Jul 2010 13:18:50 +0100
+Subject: USB: adds Artisman USB dongle to list of quirky devices
+
+From: Paul Mortier <mortier@btinternet.com>
+
+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 <mortier@btinternet.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 },
+
--- /dev/null
+From 7aba8d014341341590ecb64050b7a026642a62eb Mon Sep 17 00:00:00 2001
+From: Alan Stern <stern@rowland.harvard.edu>
+Date: Fri, 2 Apr 2010 13:21:33 -0400
+Subject: USB: don't enable remote wakeup by default
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+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 <stern@rowland.harvard.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 */
--- /dev/null
+From 4c9715de52b9b6256bf1e9510917111a47b0c176 Mon Sep 17 00:00:00 2001
+From: Wolfram Sang <w.sang@pengutronix.de>
+Date: Tue, 15 Jun 2010 12:34:23 +0200
+Subject: USB: ehci-mxc: bail out on transceiver problems
+
+From: Wolfram Sang <w.sang@pengutronix.de>
+
+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 : [<c0196dfc>] lr : [<c019bc8c>] 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 <w.sang@pengutronix.de>
+Cc: Sascha Hauer <s.hauer@pengutronix.de>
+Acked-by: Daniel Mack <daniel@caiaq.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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;
--- /dev/null
+From 809cd1cb80d7dffe75dc94bc94ef2aab3dadc86a Mon Sep 17 00:00:00 2001
+From: Sarah Sharp <sarah.a.sharp@linux.intel.com>
+Date: Fri, 9 Jul 2010 17:08:48 +0200
+Subject: USB: Fix USB3.0 Port Speed Downgrade after port reset
+
+From: Sarah Sharp <sarah.a.sharp@linux.intel.com>
+
+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 <fajun.chen@seagate.com>
+Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ 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)
--- /dev/null
+From fcc6cb789c77ffee31710eec64efeb25f2124f7a Mon Sep 17 00:00:00 2001
+From: Corey Minyard <minyard@acm.org>
+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 <minyard@acm.org>
+
+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 <minyard@acm.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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/
+ */
--- /dev/null
+From 77dbd74e16b566e9d5eeb4be18ae3ee7d5902bd3 Mon Sep 17 00:00:00 2001
+From: Colin Leitner <colin.leitner@googlemail.com>
+Date: Thu, 1 Jul 2010 10:49:55 +0200
+Subject: USB: ftdi_sio: support for Signalyzer tools based on FTDI chips
+
+From: Colin Leitner <colin.leitner@googlemail.com>
+
+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 <colin.leitner@googlemail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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
++
--- /dev/null
+From 44a0c0190b500ee6bcfc0976fe540f65dee2cd67 Mon Sep 17 00:00:00 2001
+From: Jon Povey <jon.povey@racelogic.co.uk>
+Date: Mon, 14 Jun 2010 19:41:04 +0900
+Subject: USB: g_serial: don't set low_latency flag
+
+From: Jon Povey <jon.povey@racelogic.co.uk>
+
+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 <jon.povey@racelogic.co.uk>
+Cc: Maulik Mankad <x0082077@ti.com>
+Acked-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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;
--- /dev/null
+From b23097b793081358a6d943263c91bae4c955c4e3 Mon Sep 17 00:00:00 2001
+From: Jon Povey <jon.povey@racelogic.co.uk>
+Date: Mon, 14 Jun 2010 19:42:10 +0900
+Subject: USB: g_serial: fix tty cleanup on unload
+
+From: Jon Povey <jon.povey@racelogic.co.uk>
+
+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 <jon.povey@racelogic.co.uk>
+Acked-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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__);
--- /dev/null
+From 2bb14cbf04ded4b9e394a6ba9e4f06b82fbac8b2 Mon Sep 17 00:00:00 2001
+From: Maulik Mankad <x0082077@ti.com>
+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 <x0082077@ti.com>
+
+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 <x0082077@ti.com>
+Cc: David Brownell <david-b@pacbell.net>
+Acked-by: Felipe Balbi <felipe.balbi@nokia.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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;
--- /dev/null
+From 9297688a9257d73956d4bba484d9dd331ca72c25 Mon Sep 17 00:00:00 2001
+From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
+Date: Thu, 24 Jun 2010 23:07:07 +0530
+Subject: USB: MUSB: make non-OMAP platforms build with CONFIG_PM=y
+
+From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
+
+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 <sshtylyov@ru.mvista.com>
+Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
+Acked-by: Felipe Balbi <felipe.balbi@nokia.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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,
--- /dev/null
+From 2b795ea00c2bbb077a1199a4d729c8ac03a6bded Mon Sep 17 00:00:00 2001
+From: Felipe Balbi <felipe.balbi@nokia.com>
+Date: Mon, 5 Jul 2010 12:12:01 +0300
+Subject: USB: musb: tusb6010: fix compile error with n8x0_defconfig
+
+From: Felipe Balbi <felipe.balbi@nokia.com>
+
+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 <felipe.balbi@nokia.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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.
--- /dev/null
+From 7d9645fdca444d53907b22a4b73e3967efe09781 Mon Sep 17 00:00:00 2001
+From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
+Date: Thu, 24 Jun 2010 23:07:06 +0530
+Subject: USB: musb_core: make disconnect and suspend interrupts work again
+
+From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
+
+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 <sshtylyov@ru.mvista.com>
+Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
+Acked-by: Felipe Balbi <felipe.balbi@nokia.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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);
+
--- /dev/null
+From 48826626263d4a61d06fd8c5805da31f925aefa0 Mon Sep 17 00:00:00 2001
+From: Alan Stern <stern@rowland.harvard.edu>
+Date: Tue, 22 Jun 2010 16:14:48 -0400
+Subject: USB: obey the sysfs power/wakeup setting
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+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 <stern@rowland.harvard.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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.
--- /dev/null
+From 646d90e2b925578abef5c45853e0b166b6a450bf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=96mer=20Sezgin=20Ugurlu?= <omer.ugurlu@a-kent.com>
+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?= <omer.ugurlu@a-kent.com>
+
+commit 646d90e2b925578abef5c45853e0b166b6a450bf upstream.
+
+Signed-off-by: Omer Sezgin Ugurlu <omer.ugurlu@a-kent.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 */
--- /dev/null
+From 7595931c986f50b1e197ce7b881563e36a7d041e Mon Sep 17 00:00:00 2001
+From: Dennis Jansen <d.g.jansen@googlemail.com>
+Date: Fri, 9 Jul 2010 22:03:53 +0200
+Subject: USB: option: Add support for AMOI Skypephone S2
+
+From: Dennis Jansen <d.g.jansen@googlemail.com>
+
+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 <Dennis.Jansen@web.de>
+Signed-off-by: Dennis Jansen <Dennis.Jansen@web.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 */
--- /dev/null
+From 20a12f007feee1cfa761b431047271d1141d8031 Mon Sep 17 00:00:00 2001
+From: Oliver Neukum <oliver@neukum.org>
+Date: Fri, 16 Jul 2010 17:36:26 +0200
+Subject: USB: sisusbvga: Fix for USB 3.0
+
+From: Oliver Neukum <oliver@neukum.org>
+
+commit 20a12f007feee1cfa761b431047271d1141d8031 upstream.
+
+Super speed is also fast enough to let sisusbvga operate.
+Therefor expand the checks.
+
+Signed-off-by: Oliver Neukum <oneukum@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 &&
--- /dev/null
+From c30c791c946a14a03e87819eced562ed28711961 Mon Sep 17 00:00:00 2001
+From: Sarah Sharp <sarah.a.sharp@linux.intel.com>
+Date: Sat, 10 Jul 2010 15:48:01 +0200
+Subject: USB: xhci: Set Mult field in endpoint context correctly.
+
+From: Sarah Sharp <sarah.a.sharp@linux.intel.com>
+
+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 <sarah.a.sharp@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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;
+ }