Hi! On Thu, Jun 14, 2012 at 4:53 PM, Jean Pihet <jean.pihet@xxxxxxxxxxxxxx> 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 > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html