On Thu, 12 Apr 2012, Steven Rostedt wrote: > > Anyway, this shows that the EHCI controllers are being set to the same > > power state with the same wakeup settings in both cases. And yet one > > hangs the computer while the other doesn't. > > > > Here's another rather drastic test you can do. In > > drivers/usb/host/ehci-pci.c:ehci_pci_suspend(), call ehci_reset(ehci) > > just before the final return statement. That should leave the hardware > > in exactly the same state as if ehci-hcd had been unbound. > > Want me to remove previous updates before doing so? I can keep the > dev_log, but what about the other change you asked about. Keep them. Asumming you get the same result as Andrey, that the computer still hangs even with the ehci_reset() call, there's one more thing for the two of you to try. I noted before that with ehci-hcd bound, it would call pci_disable_device. But with the driver unbound, the PCI core calls pci_disable_enabled_device instead. So let's have the driver do the same thing. At the end of drivers/usb/core/hcd-pci.c:suspend_common, change pci_disable_device to pci_disable_enabled_device. You'll also have to EXPORT that routine; it's defined in drivers/pci/pci.c. Do this with the ehci_reset added and all the other changes present as well. Then there should be no difference at all between the two scenarios. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html