Subject: USB: OHCI irq tweak

From: David Brownell <[email-masked]>
Date: Wed, 31 Aug 2005 10:47:20 -0700

Evidently there are some boards which care a lot about this, but
as a rule it's been hard to notice.

OHCI_INTR_RD wasn't always cleared in the ohci irq handler.  On some
systems this means certain remote wakeup scenarios could seem to hang
(in an interrupt storm, RD never clearing).

From: "William Morrow" <[email-masked]>
Signed-off-by: Jordan Crouse <[email-masked]>
Signed-off-by: David Brownell <[email-masked]>
Signed-off-by: Greg Kroah-Hartman <[email-masked]>

---
 drivers/usb/host/ohci-hcd.c |    1 +
 1 file changed, 1 insertion(+)

--- gregkh-2.6.orig/drivers/usb/host/ohci-hcd.c	2005-09-12 11:01:58.000000000 -0700
+++ gregkh-2.6/drivers/usb/host/ohci-hcd.c	2005-09-12 11:02:01.000000000 -0700
@@ -719,6 +719,7 @@ static irqreturn_t ohci_irq (struct usb_
 
 	if (ints & OHCI_INTR_RD) {
 		ohci_vdbg (ohci, "resume detect\n");
+		ohci_writel (ohci, OHCI_INTR_RD, &regs->intrstatus);
 		if (hcd->state != HC_STATE_QUIESCING)
 			schedule_work(&ohci->rh_resume);
 	}