Skip to content

Commit

Permalink
ARM: OMAP3: PM: fix pwrdm_post_transition call sequence
Browse files Browse the repository at this point in the history
The context lost count is modified in omap_sram_idle() path when
pwrdm_post_transition() is called. But pwrdm_post_transition() is called
only after omap_gpio_resume_after_idle() is called. Correct this so that
context lost count is modified before calling omap_gpio_resume_after_idle().

This would be useful when OMAP GPIO save/restore context is called by
the OMAP GPIO driver itself.

Signed-off-by: Charulatha V <charu@ti.com>
Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
  • Loading branch information
Charulatha V authored and Kevin Hilman committed Oct 7, 2011
1 parent 976d167 commit ff2f8e5
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions arch/arm/mach-omap2/pm34xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,6 @@ void omap_sram_idle(void)
printk(KERN_ERR "Invalid mpu state in sram_idle\n");
return;
}
pwrdm_pre_transition();

/* NEON control */
if (pwrdm_read_pwrst(neon_pwrdm) == PWRDM_POWER_ON)
Expand All @@ -386,6 +385,8 @@ void omap_sram_idle(void)
if (!console_trylock())
goto console_still_active;

pwrdm_pre_transition();

/* PER */
if (per_next_state < PWRDM_POWER_ON) {
per_going_off = (per_next_state == PWRDM_POWER_OFF) ? 1 : 0;
Expand Down Expand Up @@ -455,6 +456,8 @@ void omap_sram_idle(void)
}
omap3_intc_resume_idle();

pwrdm_post_transition();

/* PER */
if (per_next_state < PWRDM_POWER_ON) {
per_prev_state = pwrdm_read_prev_pwrst(per_pwrdm);
Expand All @@ -478,8 +481,6 @@ void omap_sram_idle(void)
omap3_disable_io_chain();
}

pwrdm_post_transition();

clkdm_allow_idle(mpu_pwrdm->pwrdm_clkdms[0]);
}

Expand Down

0 comments on commit ff2f8e5

Please sign in to comment.