[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