PM: Allow runtime_suspend methods to call pm_schedule_suspend()
authorAlan Stern <stern@rowland.harvard.edu>
Mon, 22 Mar 2010 23:50:07 +0000 (00:50 +0100)
committerRafael J. Wysocki <rjw@sisk.pl>
Mon, 10 May 2010 21:08:16 +0000 (23:08 +0200)
commit240c7337a4cd3d91b196c5ef97ad461b3a22fa09
tree252a5938fa8c9f75925653876c32bef1a2ed899b
parent228c54ef7a028d5a4b6606eb0c8035874d9b6788
PM: Allow runtime_suspend methods to call pm_schedule_suspend()

This patch (as1361) changes the runtime PM interface slightly; it
allows suspend requests to be scheduled while the runtime_suspend
method is running.  If the method succeeds then the scheduled request
is cancelled, whereas if the method fails then an idle notification is
sent only if no request was scheduled.

Being able to schedule suspend requests from within a runtime_suspend
method is useful for drivers that need to test for idleness and
suspend the device all while holding a single spinlock, or for drivers
that want to check for idleness by polling.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
drivers/base/power/runtime.c