[PATCH 13/15] ARM: OMAP4+: CPUidle: Deprecate use of omap4_mpuss_read_prev_context_state()

Nishanth Menon nm at ti.com
Fri Mar 1 19:03:03 EST 2013


On 17:41-20130301, Santosh Shilimkar wrote:
> Current OMAP4 CPUIdle driver is using omap4_mpuss_read_prev_context_state()
> function to check whether the MPU cluster lost context or not. Thanks to
> couple CPUIdle, cluster low power entry is almost guaranteed and hence
> the programmed cluster check is enough in idle exit path. The API was
> more of an optimization for corner cases, where if the cluster low power
> entry fails for some reason, the cluster context restore gets skipped.
> 
> Moving forward, OMAP CPUidle drivers needs to be moved to drivers/idle/*
> once the PRM/CM code gets moved to drivers. This patch also reduces one
> dependency with platform code for idle driver movement.
> 
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> ---
>  arch/arm/mach-omap2/common.h              |    5 -----
>  arch/arm/mach-omap2/cpuidle44xx.c         |    3 ++-
>  arch/arm/mach-omap2/omap-mpuss-lowpower.c |   14 --------------
>  3 files changed, 2 insertions(+), 20 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
> index 44fcf65..7f9b217 100644
> --- a/arch/arm/mach-omap2/common.h
> +++ b/arch/arm/mach-omap2/common.h
> @@ -242,7 +242,6 @@ extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state);
>  extern int omap4_finish_suspend(unsigned long cpu_state);
>  extern void omap4_cpu_resume(void);
>  extern int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state);
> -extern u32 omap4_mpuss_read_prev_context_state(void);
>  #else
>  static inline int omap4_enter_lowpower(unsigned int cpu,
>  					unsigned int power_state)
> @@ -270,10 +269,6 @@ static inline int omap4_finish_suspend(unsigned long cpu_state)
>  static inline void omap4_cpu_resume(void)
>  {}
>  
> -static inline u32 omap4_mpuss_read_prev_context_state(void)
> -{
> -	return 0;
> -}
>  #endif
>  
>  struct omap_sdrc_params;
> diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
> index df81243..23286c1 100644
> --- a/arch/arm/mach-omap2/cpuidle44xx.c
> +++ b/arch/arm/mach-omap2/cpuidle44xx.c
> @@ -147,7 +147,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
>  	 * Call idle CPU cluster PM exit notifier chain
>  	 * to restore GIC and wakeupgen context.
>  	 */
> -	if (omap4_mpuss_read_prev_context_state())
> +	if ((cx->mpu_state == PWRDM_POWER_RET) &&
> +		(cx->mpu_logic_state == PWRDM_POWER_OFF))
>  		cpu_cluster_pm_exit();
>  
>  	clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu_id);
> diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
> index c1c6b9d..5d32444 100644
> --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
> +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
> @@ -203,20 +203,6 @@ static inline void cpu_clear_prev_logic_pwrst(unsigned int cpu_id)
>  	}
>  }
>  
> -/**
> - * omap4_mpuss_read_prev_context_state:
> - * Function returns the MPUSS previous context state
> - */
> -u32 omap4_mpuss_read_prev_context_state(void)
> -{
> -	u32 reg;
> -
> -	reg = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
> -		OMAP4430_PRM_MPU_INST, OMAP4_RM_MPU_MPU_CONTEXT_OFFSET);
> -	reg &= OMAP4430_LOSTCONTEXT_DFF_MASK;
> -	return reg;
> -}
> -
>  /*
>   * Store the CPU cluster state for L2X0 low power operations.
>   */

Acked-by: Nishanth Menon <nm at ti.com>
-- 
Regards,
Nishanth Menon



More information about the linux-arm-kernel mailing list