aboutsummaryrefslogtreecommitdiffstats
path: root/usb.current/usb-musb-fix-a-bug-by-making-suspend-interrupt-available-in-device-mode.patch
diff options
Diffstat (limited to 'usb.current/usb-musb-fix-a-bug-by-making-suspend-interrupt-available-in-device-mode.patch')
-rw-r--r--usb.current/usb-musb-fix-a-bug-by-making-suspend-interrupt-available-in-device-mode.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/usb.current/usb-musb-fix-a-bug-by-making-suspend-interrupt-available-in-device-mode.patch b/usb.current/usb-musb-fix-a-bug-by-making-suspend-interrupt-available-in-device-mode.patch
new file mode 100644
index 00000000000000..bca576b6d5aa45
--- /dev/null
+++ b/usb.current/usb-musb-fix-a-bug-by-making-suspend-interrupt-available-in-device-mode.patch
@@ -0,0 +1,49 @@
+From x0082077@ti.com Wed Jun 16 13:23:21 2010
+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
+To: linux-usb@vger.kernel.org
+Cc: Maulik Mankad <x0082077@ti.com>, David Brownell <david-b@pacbell.net>, Felipe Balbi <felipe.balbi@nokia.com>
+Message-ID: <1276593027-30168-1-git-send-email-x0082077@ti.com>
+
+
+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>
+Cc: stable <stable@kernel.org> [.34]
+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
+@@ -642,7 +642,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);
+@@ -705,6 +705,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;