diff options
Diffstat (limited to 'arch/arm/mach-omap2/omap-mpuss-lowpower.c')
| -rw-r--r-- | arch/arm/mach-omap2/omap-mpuss-lowpower.c | 58 | 
1 files changed, 7 insertions, 51 deletions
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c index aac46bfdbeb..e80327b6c81 100644 --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c @@ -87,37 +87,6 @@ static inline void set_cpu_wakeup_addr(unsigned int cpu_id, u32 addr)  }  /* - * Set the CPUx powerdomain's previous power state - */ -static inline void set_cpu_next_pwrst(unsigned int cpu_id, -				unsigned int power_state) -{ -	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu_id); - -	pwrdm_set_next_pwrst(pm_info->pwrdm, power_state); -} - -/* - * Read CPU's previous power state - */ -static inline unsigned int read_cpu_prev_pwrst(unsigned int cpu_id) -{ -	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu_id); - -	return pwrdm_read_prev_pwrst(pm_info->pwrdm); -} - -/* - * Clear the CPUx powerdomain's previous power state - */ -static inline void clear_cpu_prev_pwrst(unsigned int cpu_id) -{ -	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu_id); - -	pwrdm_clear_all_prev_pwrst(pm_info->pwrdm); -} - -/*   * Store the SCU power status value to scratchpad memory   */  static void scu_pwrst_prepare(unsigned int cpu_id, unsigned int cpu_state) @@ -170,20 +139,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.   */ @@ -230,6 +185,7 @@ static void save_l2x0_context(void)   */  int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)  { +	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu);  	unsigned int save_state = 0;  	unsigned int wakeup_cpu; @@ -268,7 +224,7 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)  		save_state = 2;  	cpu_clear_prev_logic_pwrst(cpu); -	set_cpu_next_pwrst(cpu, power_state); +	pwrdm_set_next_pwrst(pm_info->pwrdm, power_state);  	set_cpu_wakeup_addr(cpu, virt_to_phys(omap4_cpu_resume));  	scu_pwrst_prepare(cpu, power_state);  	l2x0_pwrst_prepare(cpu, save_state); @@ -286,7 +242,7 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)  	 * domain transition  	 */  	wakeup_cpu = smp_processor_id(); -	set_cpu_next_pwrst(wakeup_cpu, PWRDM_POWER_ON); +	pwrdm_set_next_pwrst(pm_info->pwrdm, PWRDM_POWER_ON);  	pwrdm_post_transition(NULL); @@ -300,8 +256,8 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)   */  int __cpuinit omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state)  { -	unsigned int cpu_state = 0;  	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu); +	unsigned int cpu_state = 0;  	if (omap_rev() == OMAP4430_REV_ES1_0)  		return -ENXIO; @@ -309,8 +265,8 @@ int __cpuinit omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state)  	if (power_state == PWRDM_POWER_OFF)  		cpu_state = 1; -	clear_cpu_prev_pwrst(cpu); -	set_cpu_next_pwrst(cpu, power_state); +	pwrdm_clear_all_prev_pwrst(pm_info->pwrdm); +	pwrdm_set_next_pwrst(pm_info->pwrdm, power_state);  	set_cpu_wakeup_addr(cpu, virt_to_phys(pm_info->secondary_startup));  	scu_pwrst_prepare(cpu, power_state); @@ -321,7 +277,7 @@ int __cpuinit omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state)  	 */  	omap4_finish_suspend(cpu_state); -	set_cpu_next_pwrst(cpu, PWRDM_POWER_ON); +	pwrdm_set_next_pwrst(pm_info->pwrdm, PWRDM_POWER_ON);  	return 0;  }  |