Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Alan Stern and committed by
Greg Kroah-Hartman
0d22f655 9063ff44

+3 -1
+3 -1
drivers/usb/host/ohci-pci.c
··· 312 312 313 313 static int ohci_pci_resume (struct usb_hcd *hcd) 314 314 { 315 + struct ohci_hcd *ohci = hcd_to_ohci(hcd); 316 + 315 317 set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); 316 318 317 319 /* FIXME: we should try to detect loss of VBUS power here */ 318 320 prepare_for_handover(hcd); 319 - 321 + ohci_writel(ohci, OHCI_INTR_MIE, &ohci->regs->intrenable); 320 322 return 0; 321 323 } 322 324