On Tue, 23 Jun 2009, Rafael J. Wysocki wrote: > Hi, > > Below is a new revision of the patch introducing the run-time PM framework. > > The most visible changes from the last version: > > * I realized that if child_count is atomic, we can drop the parent locking from > all of the functions, so I did that. > > * Introduced pm_runtime_put() that decrements the resume counter and queues > up an idle notification if the counter went down to 0 (and wasn't 0 previously). > Using asynchronous notification makes it possible to call pm_runtime_put() > from interrupt context, if necessary. > > * Changed the meaning of the RPM_WAKE bit slightly (it is now also used for > disabling run-time PM for a device along with the resume counter). > > Please let me know if I've overlooked anything. :-) This first thing to strike me was that you moved the idle notifications into the workqueue. Is that really needed? Would we be better off just make the idle callbacks directly from pm_runtime_put? They would run in whatever context the driver happened to be in at the time. It's not clear exactly how much work the idle callbacks will need to do, but it seems likely that they won't have to do too much more than call pm_request_suspend. And of course, that can be done in_interrupt. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html