On 06/19/2013 08:39 PM, Kevin Hilman wrote: > Hi Roger, > > Roger Quadros <rogerq@xxxxxx> writes: > >> Runtime suspend the controller during bus suspend and resume it >> during bus resume. This will ensure that the USB Host power domain >> enters lower power state and does not prevent the SoC from >> endering deeper sleep states. >> >> Remote wakeup will come up as an interrupt while the controller >> is suspended, so tackle it carefully using a workqueue. > > I don't think you need a special workqueue here. The workqueue of the PM > core (pm_wq) will be used if you just use an asynchronous 'get' in the > ISR. Then, the driver's own runtime PM callbacks can be used instead of > an additional workqueue. > > Another thing to worry about here when using runtime PM to implement > suspend/resume is that runtime PM can be disabled from userspace (e.g. > echo disabled > /sys/devices/.../power/control.) If that's the case, > all the pm_runtime_suspended() checks will always fail becuase that > call also checks if runtime PM is disabled. You'll likely want to use > the pm_runtime_status_suspended() check instead, which checks only the > status, and doesn't matter if runtime PM is currently disabled. > > Because of the corner issues here, please test system suspend/resume > when runtime PM has been disabled. > Good points. Thanks. I'll need to think about it some more. cheers, -roger -- 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