USB: OHCI: fix bug in controller resume

This patch (as1063) fixes a bug in the way ohci-hcd resumes its
controllers.  It leaves the Master Interrupt Enable bit turned off.

If the root hub is resumed immediately this won't matter.  But if the
root hub is suspended (say because no devices are plugged in), it won't
ever wake up by itself.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
CC: David Brownell <david-b@pacbell.net>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Alan Stern 2008-04-03 11:35:26 -04:00 коммит произвёл Greg Kroah-Hartman
Родитель 9063ff44f0
Коммит 0d22f65515
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -312,11 +312,13 @@ static int ohci_pci_suspend (struct usb_hcd *hcd, pm_message_t message)
static int ohci_pci_resume (struct usb_hcd *hcd) static int ohci_pci_resume (struct usb_hcd *hcd)
{ {
struct ohci_hcd *ohci = hcd_to_ohci(hcd);
set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
/* FIXME: we should try to detect loss of VBUS power here */ /* FIXME: we should try to detect loss of VBUS power here */
prepare_for_handover(hcd); prepare_for_handover(hcd);
ohci_writel(ohci, OHCI_INTR_MIE, &ohci->regs->intrenable);
return 0; return 0;
} }