aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/pm34xx.c
diff options
context:
space:
mode:
authorKevin Hilman <khilman@ti.com>2012-05-11 19:00:24 -0400
committerKevin Hilman <khilman@ti.com>2012-06-25 14:22:48 -0400
commite055548953355b6e69c56f9e54388845b29b4e97 (patch)
treed9694b593408193e83574a1e49cb0c4908578182 /arch/arm/mach-omap2/pm34xx.c
parent9a17d88e0586bb7189655f8f99484a872a474626 (diff)
ARM: OMAP2+: powerdomain: allow pre/post transtion to be per pwrdm
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. Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Grazvydas Ignotas <notasas@gmail.com> Acked-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/pm34xx.c')
-rw-r--r--arch/arm/mach-omap2/pm34xx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index e67d898433fb..0bbbc8c82fd8 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -273,7 +273,7 @@ void omap_sram_idle(void)
273 per_next_state = pwrdm_read_next_pwrst(per_pwrdm); 273 per_next_state = pwrdm_read_next_pwrst(per_pwrdm);
274 core_next_state = pwrdm_read_next_pwrst(core_pwrdm); 274 core_next_state = pwrdm_read_next_pwrst(core_pwrdm);
275 275
276 pwrdm_pre_transition(); 276 pwrdm_pre_transition(NULL);
277 277
278 /* PER */ 278 /* PER */
279 if (per_next_state < PWRDM_POWER_ON) { 279 if (per_next_state < PWRDM_POWER_ON) {
@@ -338,7 +338,7 @@ void omap_sram_idle(void)
338 } 338 }
339 omap3_intc_resume_idle(); 339 omap3_intc_resume_idle();
340 340
341 pwrdm_post_transition(); 341 pwrdm_post_transition(NULL);
342 342
343 /* PER */ 343 /* PER */
344 if (per_next_state < PWRDM_POWER_ON) 344 if (per_next_state < PWRDM_POWER_ON)