> > > Host controller's suspend should be executed later than root hub's, > > or the hang may occur when root hub try to visit some registers > > but host controller's suspend close the related clocks. > > Have you ever seen this happen? It should not be possible, because the > PM core is careful not to suspend a parent before its child devices. > > > Mark controller's suspend as async can make sure it is executed > > later than root hub's as host controller is the parent of root hub. > > We want to be careful about this sort of thing. Most of the async > suspend notations are for devices on a particular kind of bus, but the > notation you want to add would apply to all host controllers on any > bus. > > If you really do see a host controller suspending before its root hub, > this indicates there is a bug in the PM core. The bug should be fixed; > you shouldn't ignore it by marking all host controllers for async > suspend. >
I am apologized that it does not occur after my experiments, I check this problem because one of my colleagues assumes its possibilities, and I thought dpm_wait_for_children at __device_suspend will not wait children if the dev is not async_suspend. In fact, at dpm_wait_for_children, the parent will wait if one of its child is async_suspend and this child's suspend is not finished. > Alan Stern > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html