Thread (22 messages) flat view 22 messages, 3 authors, 2012-07-19
STALE5158d

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help