[PATCH v4 0/8] ARM: OMAP2+: PM: introduce the power domains functional states
From: Jean Pihet <hidden>
Date: 2012-07-13 13:41:59
Also in:
linux-omap
Hi! On Thu, Jun 14, 2012 at 4:53 PM, Jean Pihet [off-list ref] wrote:
Here is a re-spin after some comments after an internal review and some testing on OMAP4 with device OFF support. Implement the functional states for the power domains: - unify the API to use the functional states, - protect the power domain state change by a mutex in omap_set_pwrdm_state, - introduce the functional states for power domains power states and logic power states, and the conversion functions between the functional and internal states, - program the logic power state of power domains from the functional states, in omap_set_pwrdm_state - convert the OMAP2/3/4 PM code to use the updated API, - provide the power domains statistics by functional states, - provide ftrace tracepoints with the functional state. Based on mainline kernel 3.5.0-rc2. Tested on OMAP3 Beagleboard, with suspend and cpuidle in RET and OFF modes.
Here is the latest version for anyone willing to look at it, or even better review and test it. The latest code can be fetched from https://gitorious.org/jpihet/linux. Please note that the tree also contains branches for the per-device PM QoS, OMAP4 device OFF and the misc fixes needed to allow OMAP4 to enter the low power modes. Based on 3.5.0-rc6; tested with OMAP3&4 suspend/resume and OMAP3 cpuidle, using CSWR and OFF modes. Here are the changes since the last version: - changed the locking to a spinlock. Thanks to Ambresh K for reporting the issue, - extended the locking to the next power state read (pwrdm_read_next_func_pwrst) and write (omap_set_pwrdm_state). Regards, Jean
History:
v4:
- reworked the code after internal review and testing with OMAP3&4 device
OFF,
- fixed the tracepoints generation code,
- introduce a function that returns power domains achievable functional
states, in order to return a valid state for power domains that only
support some of the power states. Although it has been tested OK the
code is in RFC state.
v3:
- fix a bug in OMAP3 cpuidle which prevented the IO wake-ups in PER
v2:
- add the logic power states,
- provide the power domains statistics by functional states
v1:
- initial implementation, in RFC state
Jean Pihet (8):
ARM: OMAP2+: PM: protect the power domain state change by a mutex
ARM: OMAP2+: PM: introduce power domains functional states
ARM: OMAP2+: PM: use the functional power states API
ARM: OMAP2+: PM: introduce power domains logic and memory functional
states
ARM: OMAP2+: PM: introduce power domains achievable functional states
ARM: OMAP2+: PM: use the functional power states API for logic and
memory
ARM: OMAP2+: PM: use power domain functional state in stats counters
ARM: OMAP2+: PM debug: trace the functional power domains states
arch/arm/mach-omap2/cpuidle34xx.c | 61 +++---
arch/arm/mach-omap2/cpuidle44xx.c | 28 +--
arch/arm/mach-omap2/omap-hotplug.c | 2 +-
arch/arm/mach-omap2/omap-mpuss-lowpower.c | 39 ++--
arch/arm/mach-omap2/pm-debug.c | 15 +-
arch/arm/mach-omap2/pm.c | 62 -----
arch/arm/mach-omap2/pm.h | 1 -
arch/arm/mach-omap2/pm24xx.c | 15 +-
arch/arm/mach-omap2/pm34xx.c | 78 +++---
arch/arm/mach-omap2/pm44xx.c | 18 +-
arch/arm/mach-omap2/powerdomain-common.c | 100 ++++++++
arch/arm/mach-omap2/powerdomain.c | 367 ++++++++++++++++++++++++++--
arch/arm/mach-omap2/powerdomain.h | 101 ++++++--
arch/arm/mach-omap2/powerdomain2xxx_3xxx.c | 7 +
arch/arm/mach-omap2/powerdomain44xx.c | 3 +
15 files changed, 653 insertions(+), 244 deletions(-)
--
1.7.7.6