In drivers/usb/core/hcd-pci.c, the code forgets to set hcd->state to
USB_STATE_SUSPENDED on suspend. The effect is that on resume, the
code refuses to wake the HCD up, and instead prints a message saying
the interface hasn't been suspended.
The patch below fixes this. It is against 2.6.0-test6. With this
patch I can suspend and resume my Apple PowerBook G4, and the USB
works after resuming.
if (retval)
dev_dbg (hcd->controller, "suspend fail, retval %d\n",
retval);
+ else
+ hcd->state = USB_STATE_SUSPENDED;
}
pci_set_power_state (dev, state);