On Fri, Mar 05, 2010 at 02:00:57PM +0800, Libin wrote: > > It's a requirement that all endpoints be stopped before you > > suspend/hibernate an xHCI host, but it's not a requirement that the > > devices be suspended. Now I'm very confused as to why the xHCI > > bus_suspend patch suspends all unsuspended devices, but doesn't stop > > their endpoint rings. Libin, Andiry, or Crane, do you have an answer? > > As I understand, before bus_suspend is invoked, port has been suspended. > And only the device with no correct driver will be still in active > statue, whose endpoints do not work. So I just suspend the port if > needed. But based on Stan's email, it seems that endpoints still need be > stopped because ports may not be suspended. I will check the USB driver > and do the modification on the bus_suspend code if needed. > I also think that when the port is in disabled state, we will not suspend it. And if the port is in enable state, port suspend will be called before bus suspend. That's why we only control the PORTSC in bus. And endpoint operation belongs to port power managemnt. Alern, If I mis-understand the USB power mangement architecture, please correct me. -- Best Regards, - Crane -- 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