linux/arch/sh
Magnus Damm 6a93dde1e8 sh: Runtime PM for SuperH Mobile platform bus devices
This patch is V3 of the SuperH Mobile Runtime PM platform bus
implentation matching Rafael's Runtime PM v16.

The code gets invoked from the SuperH specific Runtime PM
platform bus functions that override the weak symbols for:
 - platform_pm_runtime_suspend()
 - platform_pm_runtime_resume()
 - platform_pm_runtime_idle()

This Runtime PM implementation performs two levels of power
management. At the time of platform bus runtime suspend the
clock to the device is stopped instantly. Later on if all
devices within the power domain has their clocks stopped
then the device driver ->runtime_suspend() callbacks are
used to save hardware register state for each device.

Device driver ->runtime_suspend() calls are scheduled from
cpuidle context using platform_pm_runtime_suspend_idle().
When all devices have been fully suspended the processor
is allowed to enter deep sleep from cpuidle.

The runtime resume operation turns on clocks and also
restores registers if needed. It is worth noting that the
devices start in a suspended state and the device driver
is responsible for calling runtime resume before accessing
the actual hardware.

In this particular platform bus implementation runtime
resume is not allowed from interrupt context. Runtime
suspend is however allowed from interrupt context as
long as the synchronous functions are avoided.

[ updated for v17 -- PFM. ]

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2009-08-23 18:03:17 +09:00
..
boards sh: Runtime PM pdev hwblk - kfr2r09 LCDC 2009-08-15 13:00:31 +09:00
boot sh: fix romImage mach dir usage 2009-08-07 03:58:38 +09:00
cchips sh: mach-hp6xx: Fix up the hp6xx build for hd64461 changes. 2009-05-20 11:27:13 +09:00
configs sh: kfr2r09 board support - mach-type and defconfig 2009-07-23 18:43:16 +09:00
drivers sh: pci: Initial PCI-Express support for SH7786 Urquell board. 2009-06-17 18:20:48 +09:00
include sh: Runtime PM for SuperH Mobile platform bus devices 2009-08-23 18:03:17 +09:00
kernel sh: Runtime PM for SuperH Mobile platform bus devices 2009-08-23 18:03:17 +09:00
lib sh: Fix up stack overflow check with ftrace disabled. 2009-07-11 21:06:53 +09:00
lib64 sh: Convert sh64 to use the generic checksum code. 2009-06-15 00:00:42 +09:00
math-emu sh: Fix up the math-emu build. 2007-06-11 15:57:42 +09:00
mm sh: use printk_once 2009-08-13 11:48:08 +09:00
oprofile sh: oprofile: Kill off dead valid_kernel_stack(). 2009-08-14 04:59:50 +09:00
tools sh: kfr2r09 board support - mach-type and defconfig 2009-07-23 18:43:16 +09:00
Kconfig sh: bzip2/lzma zImage support. 2009-07-11 13:21:19 -04:00
Kconfig.cpu sh: Tidy up SH-4A boot_cpu_data.flags probing. 2009-06-01 19:50:08 +09:00
Kconfig.debug sh: dwarf unwinder support. 2009-08-14 01:58:43 +09:00
Makefile sh: dwarf unwinder support. 2009-08-14 01:58:43 +09:00