On Tue, Apr 24, 2012 at 7:53 PM, Kevin Hilman <khilman@xxxxxx> wrote: > Iteration over all power domains in the idle path is unnecessary since > only power domains that are transitioning need to be accounted for. > Also PRCM register accesses are known to be expensive, so the > additional latency added to the idle path is signficiant. > > In order allow the pre/post transitions to be isolated and called > per-pwrdm, change the API so passing in a specific power domain will > trigger the pre/post transtion accounting for only that specific power > domain. Passing NULL means iterating over all power domains as is > current behavior. > > Signed-off-by: Kevin Hilman <khilman@xxxxxx> > --- > arch/arm/mach-omap2/omap-mpuss-lowpower.c | 4 ++-- > arch/arm/mach-omap2/pm34xx.c | 4 ++-- > arch/arm/mach-omap2/powerdomain.c | 16 ++++++++++++---- > arch/arm/mach-omap2/powerdomain.h | 4 ++-- > 4 files changed, 18 insertions(+), 10 deletions(-) > > diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c > index 13670aa..e35a86b 100644 > --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c > +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c > @@ -255,7 +255,7 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state) > return -ENXIO; > } > > - pwrdm_pre_transition(); > + pwrdm_pre_transition(NULL); > > /* > * Check MPUSS next state and save interrupt controller if needed. > @@ -287,7 +287,7 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state) > wakeup_cpu = smp_processor_id(); > set_cpu_next_pwrst(wakeup_cpu, PWRDM_POWER_ON); > > - pwrdm_post_transition(); > + pwrdm_post_transition(NULL); > > return 0; > } Now since the pwrdm_[pre\post]_transition() takes power domain pointer, OMAP4 can limit this to CPU and MPUSS PD's only. Will create that patch on top of this series and test it out. Thanks for the API change. Regards Santosh -- 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