diff options
author | David Brownell <david-b@pacbell.net> | 2005-08-31 13:47:20 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-09-12 15:23:45 -0400 |
commit | e0fd3cbc50a8c925e8e7d8448df689015362c458 (patch) | |
tree | d77344b86ff3aa6bc72879677077e00347a0a8fc | |
parent | 4809ecc29935893d954ab9244899777ffaca40ac (diff) |
[PATCH] USB: OHCI irq tweak
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>
-rw-r--r-- | drivers/usb/host/ohci-hcd.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index ddaa9c82c58d..6efb69f7c075 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c | |||
@@ -719,6 +719,7 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd, struct pt_regs *ptregs) | |||
719 | 719 | ||
720 | if (ints & OHCI_INTR_RD) { | 720 | if (ints & OHCI_INTR_RD) { |
721 | ohci_vdbg (ohci, "resume detect\n"); | 721 | ohci_vdbg (ohci, "resume detect\n"); |
722 | ohci_writel (ohci, OHCI_INTR_RD, ®s->intrstatus); | ||
722 | if (hcd->state != HC_STATE_QUIESCING) | 723 | if (hcd->state != HC_STATE_QUIESCING) |
723 | schedule_work(&ohci->rh_resume); | 724 | schedule_work(&ohci->rh_resume); |
724 | } | 725 | } |