[PATCH v7 04/26] gpio/omap: fix pwrdm_post_transition call sequence

Kevin Hilman khilman at ti.com
Mon Sep 26 19:15:52 EDT 2011


Tarun Kanti DebBarma <tarun.kanti at ti.com> writes:

> From: Charulatha V <charu at ti.com>
>
> 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 at ti.com>
> Reviewed-by: Santosh Shilimkar <santosh.shilimkar at ti.com>

This one isn't directly related to the GPIO cleanup, so I'll pull it out
and add it to my PM cleanup queue for v3.2, adding Tony's ack.

I'll also change the subject prefix to: ARM: OMAP3: PM: ...

Kevin

> ---
>  arch/arm/mach-omap2/pm34xx.c |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
> index 7255d9b..1915050 100644
> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -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)
> @@ -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;
> @@ -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);
> @@ -478,8 +481,6 @@ console_still_active:
>  		omap3_disable_io_chain();
>  	}
>  
> -	pwrdm_post_transition();
> -
>  	clkdm_allow_idle(mpu_pwrdm->pwrdm_clkdms[0]);
>  }



More information about the linux-arm-kernel mailing list