Messages in this thread Patch in this message | | | From | David Brownell <> | Subject | [PATCH 2.6.25-rc8] usb: another ehci_iaa_watchdog fix | Date | Wed, 2 Apr 2008 13:40:20 -0700 |
| |
This patch, suggested by Alan Stern, fixes the hung USB issues on my notebook from suspend/resume cycles.
It does so by eliminating some confusion about the internal state machine associated with unlinking from the EHCI async schedule ring, which caused a recent regression:
http://bugzilla.kernel.org/show_bug.cgi?id=10345
Signed-off-by: Mark Lord <mlord@pobox.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> --- Merge before 2.6.25-final please...
--- rc8/drivers/usb/host/ehci-hub.c 2008-03-11 11:18:40.000000000 -0400 +++ linux/drivers/usb/host/ehci-hub.c 2008-04-02 13:28:50.000000000 -0400 @@ -135,8 +135,6 @@ hcd->state = HC_STATE_QUIESCING; } ehci->command = ehci_readl(ehci, &ehci->regs->command); - if (ehci->reclaim) - end_unlink_async(ehci); ehci_work(ehci); /* Unlike other USB host controller types, EHCI doesn't have @@ -180,6 +178,9 @@ ehci_halt (ehci); hcd->state = HC_STATE_SUSPENDED; + if (ehci->reclaim) + end_unlink_async(ehci); + /* allow remote wakeup */ mask = INTR_MASK; if (!device_may_wakeup(&hcd->self.root_hub->dev))
| |