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 PROTECTED]>
Signed-off-by: Jordan Crouse <[EMAIL PROTECTED]>
Signed-off-by: David Brownell <[EMAIL PROTECTED]>

--- g26.orig/drivers/usb/host/ohci-hcd.c	2005-08-02 07:06:10.000000000 -0700
+++ g26/drivers/usb/host/ohci-hcd.c	2005-08-24 20:09:11.000000000 -0700
@@ -720,6 +720,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);
 	}

Reply via email to