OMAP: PM: omap_device: add system PM methods for PM domain handling
authorKevin Hilman <khilman@ti.com>
Tue, 12 Jul 2011 20:48:19 +0000 (22:48 +0200)
committerRafael J. Wysocki <rjw@sisk.pl>
Tue, 12 Jul 2011 20:48:19 +0000 (22:48 +0200)
commitc03f007a8bf0e092caeb6856a5c8a850df10b974
tree9c75aca05734dcdf04f7203851c78254703dee5e
parent256a5435975e344b975f89c5434aa6f6eeb03fa1
OMAP: PM: omap_device: add system PM methods for PM domain handling

In the omap_device PM domain callbacks, use omap_device idle/enable to
automatically manage device idle states during system suspend/resume.

If an omap_device has not already been runtime suspended, the
->suspend_noirq() method of the PM domain will use omap_device_idle()
to idle the HW after calling the driver's ->runtime_suspend()
callback.  Similarily, upon resume, if the device was suspended during
->suspend_noirq(), the ->resume_noirq() method of the PM domain will
use omap_device_enable() to enable the HW and then call the driver's
->runtime_resume() callback.

If a device has already been runtime suspended, the noirq methods of
the PM domain leave the device runtime suspended by default.

However, if a driver needs to runtime resume a device during suspend
(for example, to change its wakeup settings), it may do so using
pm_runtime_get* in it's ->suspend() callback.

Signed-off-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
arch/arm/plat-omap/include/plat/omap_device.h
arch/arm/plat-omap/omap_device.c