linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/6] PM QoS: implement the OMAP low level constraints management code
@ 2011-12-14 14:51 jean.pihet at newoldbits.com
  2011-12-14 14:51 ` [PATCH 1/6] OMAP2+: powerdomain: control power domains next state jean.pihet at newoldbits.com
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: jean.pihet at newoldbits.com @ 2011-12-14 14:51 UTC (permalink / raw)
  To: linux-arm-kernel

From: Jean Pihet <j-pihet@ti.com>

. Implement the devices wake-up latency constraints using the global
  device PM QoS notification handler which applies the constraints to the
  underlying layer
. Implement the low level code which controls the power domains next power
  states, through the hwmod and pwrdm layers
. Add cpuidle and power domains wake-up latency figures for OMAP3, cf. 
  comments in the code and [1] for the details on where the numbers
  are magically coming from
. Implement the relation between the cpuidle and per-device PM QoS frameworks
  in the OMAP3 specific idle callbacks.
  The chosen C-state shall satisfy the following conditions:
   . the 'valid' field is enabled,
   . it satisfies the enable_off_mode flag,
   . the next state for MPU and CORE power domains is not lower than the
     state programmed by the per-device PM QoS.


ToDo:
1. support OMAP4 chipset when the low power modes will be supported
2. validate the constraints framework on OMAP4 HW (done on OMAP3)
3. Re-visit the OMAP power domains states initialization procedure. Currently
   the power states that have been changed from the constraints API which were
   applied before the initialization of the power domains are lost
4. Further clean-up the OMAP PM layer, use the generic frameworks instead (OPP,
   PM QoS...)


Based on the pm-qos branch of the linux-omap git tree (3.2.0-rc4), cf. [2].

Tested on OMAP3 Beagleboard (ES2.x) with constraints on MPU, CORE, PER in
RETention and OFF modes.

[1] http://www.omappedia.org/wiki/Power_Management_Device_Latencies_Measurement
[2] git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git


v6:
. minor change in the commits description after Kevin's review
. added Kevin's Reviewed-by

v5:
. rebased on latest linux-omap [2]
. rework after Kevin's comments on the MLs

v4:
. split up the patches which remove the omap_pm_ code from the patch set.
  Those patches are to be submitted later, on top of this patch set.
. latency numbers: provide the measurements setup and conditions in the code
  comments, added the link to the details on wiki [1].
. improved kerneldoc
. split big functions into smaller ones, in order to improve the readability

v3: reworked the error return path and improved the kerneldoc

v2: reworked the OMAP specific cpuidle code to demote the initial C-state to
     a valid C-state which fulfills the per-device constraints

v1: initial version


Jean Pihet (6):
  OMAP2+: powerdomain: control power domains next state
  OMAP2+: omap_hwmod: manage the wake-up latency constraints
  OMAP: PM: register to the per-device PM QoS framework
  OMAP3: cpuidle: next C-state decision depends on the PM QoS MPU and
    CORE constraints
  OMAP3: update cpuidle latency and threshold figures
  OMAP3: powerdomain data: add wake-up latency figures

 arch/arm/mach-omap2/cpuidle34xx.c            |  107 +++++++-----
 arch/arm/mach-omap2/omap_hwmod.c             |   27 +++-
 arch/arm/mach-omap2/pm.c                     |   71 ++++++++-
 arch/arm/mach-omap2/pm.h                     |   17 ++-
 arch/arm/mach-omap2/powerdomain.c            |  245 ++++++++++++++++++++++++++
 arch/arm/mach-omap2/powerdomain.h            |   36 ++++-
 arch/arm/mach-omap2/powerdomains3xxx_data.c  |   83 +++++++++
 arch/arm/plat-omap/include/plat/omap_hwmod.h |    2 +
 8 files changed, 539 insertions(+), 49 deletions(-)

-- 
1.7.5.4

^ permalink raw reply	[flat|nested] 15+ messages in thread
* [PATCH v5 0/6] PM QoS: implement the OMAP low level constraints management code
@ 2011-12-12 16:18 jean.pihet at newoldbits.com
  2011-12-12 16:18 ` [PATCH 1/6] OMAP2+: powerdomain: control power domains next state jean.pihet at newoldbits.com
  0 siblings, 1 reply; 15+ messages in thread
From: jean.pihet at newoldbits.com @ 2011-12-12 16:18 UTC (permalink / raw)
  To: linux-arm-kernel

From: Jean Pihet <j-pihet@ti.com>

. Implement the devices wake-up latency constraints using the global
  device PM QoS notification handler which applies the constraints to the
  underlying layer
. Implement the low level code which controls the power domains next power
  states, through the hwmod and pwrdm layers
. Add cpuidle and power domains wake-up latency figures for OMAP3, cf. 
  comments in the code and [1] for the details on where the numbers
  are magically coming from
. Implement the relation between the cpuidle and per-device PM QoS frameworks
  in the OMAP3 specific idle callbacks.
  The chosen C-state shall satisfy the following conditions:
   . the 'valid' field is enabled,
   . it satisfies the enable_off_mode flag,
   . the next state for MPU and CORE power domains is not lower than the
     state programmed by the per-device PM QoS.


ToDo:
1. validate the constraints framework on OMAP4 HW (done on OMAP3)
2. Re-visit the OMAP power domains states initialization procedure. Currently
   the power states that have been changed from the constraints API which were
   applied before the initialization of the power domains are lost
3. Further clean-up the OMAP PM layer, use the generic frameworks instead (OPP,
   PM QoS...)


Based on the pm-qos branch of the linux-omap git tree (3.2.0-rc4), cf. [2].

Tested on OMAP3 Beagleboard (ES2.x) with constraints on MPU, CORE, PER in
RETention and OFF modes.

[1] http://www.omappedia.org/wiki/Power_Management_Device_Latencies_Measurement
[2] git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git


v5:
. rebased on latest linux-omap [2]
. rework after Kevin's comments on the MLs

v4:
. split up the patches which remove the omap_pm_ code from the patch set.
  Those patches are to be submitted later, on top of this patch set.
. latency numbers: provide the measurements setup and conditions in the code
  comments, added the link to the details on wiki [1].
. improved kerneldoc
. split big functions into smaller ones, in order to improve the readability

v3: reworked the error return path and improved the kerneldoc

v2: reworked the OMAP specific cpuidle code to demote the initial C-state to
     a valid C-state which fulfills the per-device constraints

v1: initial version


Jean Pihet (6):
  OMAP2+: powerdomain: control power domains next state
  OMAP2+: omap_hwmod: manage the wake-up latency constraints
  OMAP: PM: register to the per-device PM QoS framework
  OMAP3: cpuidle: next C-state decision depends on the PM QoS MPU and
    CORE constraints
  OMAP3: update cpuidle latency and threshold figures
  OMAP3: powerdomain data: add wake-up latency figures

 arch/arm/mach-omap2/cpuidle34xx.c            |  107 +++++++-----
 arch/arm/mach-omap2/omap_hwmod.c             |   27 +++-
 arch/arm/mach-omap2/pm.c                     |   71 ++++++++-
 arch/arm/mach-omap2/pm.h                     |   17 ++-
 arch/arm/mach-omap2/powerdomain.c            |  245 ++++++++++++++++++++++++++
 arch/arm/mach-omap2/powerdomain.h            |   36 ++++-
 arch/arm/mach-omap2/powerdomains3xxx_data.c  |   83 +++++++++
 arch/arm/plat-omap/include/plat/omap_hwmod.h |    2 +
 8 files changed, 539 insertions(+), 49 deletions(-)

-- 
1.7.5.4

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2012-01-16 20:22 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-14 14:51 [PATCH v6 0/6] PM QoS: implement the OMAP low level constraints management code jean.pihet at newoldbits.com
2011-12-14 14:51 ` [PATCH 1/6] OMAP2+: powerdomain: control power domains next state jean.pihet at newoldbits.com
2011-12-14 14:51 ` [PATCH 2/6] OMAP2+: omap_hwmod: manage the wake-up latency constraints jean.pihet at newoldbits.com
2011-12-19 21:11   ` Paul Walmsley
2011-12-14 14:51 ` [PATCH 3/6] OMAP: PM: register to the per-device PM QoS framework jean.pihet at newoldbits.com
2011-12-19 21:12   ` Paul Walmsley
2011-12-14 14:51 ` [PATCH 4/6] OMAP3: cpuidle: next C-state decision depends on the PM QoS MPU and CORE constraints jean.pihet at newoldbits.com
2011-12-14 14:51 ` [PATCH 5/6] OMAP3: update cpuidle latency and threshold figures jean.pihet at newoldbits.com
2011-12-14 14:51 ` [PATCH 6/6] OMAP3: powerdomain data: add wake-up latency figures jean.pihet at newoldbits.com
2011-12-19 21:02 ` [PATCH v6 0/6] PM QoS: implement the OMAP low level constraints management code Paul Walmsley
2012-01-16 19:57   ` Jean Pihet
2012-01-16 20:04     ` Paul Walmsley
2012-01-16 20:22       ` Jean Pihet
2012-01-16 20:08     ` Paul Walmsley
  -- strict thread matches above, loose matches on Subject: below --
2011-12-12 16:18 [PATCH v5 " jean.pihet at newoldbits.com
2011-12-12 16:18 ` [PATCH 1/6] OMAP2+: powerdomain: control power domains next state jean.pihet at newoldbits.com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).