From david-b@pacbell.net Wed Aug 31 11:05:49 2005
From: David Brownell <david-b@pacbell.net>
Subject: USB: OHCI irq tweak
Date: Wed, 31 Aug 2005 10:47:20 -0700
Cc: Greg KH <greg@kroah.com>
Message-Id: <200508311047.20133.david-b@pacbell.net>

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" <William.Morrow@amd.com>
Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 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);
 	}
