[PATCH v4 0/8] ARM: OMAP2+: PM: introduce the power domains functional states
Jean Pihet
jean.pihet at newoldbits.com
Fri Jul 13 09:41:59 EDT 2012
Hi!
On Thu, Jun 14, 2012 at 4:53 PM, Jean Pihet <jean.pihet at newoldbits.com> 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
>
More information about the linux-arm-kernel
mailing list