Tero Kristo <[email protected]> writes:
> From: Tero Kristo <[email protected]>
>
> New powerdomain code support for INACTIVE state removes the need to control
> clockdomains directly from cpuidle. Also, cpuidle state definitions can now
> directly support ON / INACTIVE simplifying the implementation.
>
> Signed-off-by: Tero Kristo <[email protected]>
Looks good, will queue after patch 1 resolved.
Kevin
> ---
> arch/arm/mach-omap2/cpuidle34xx.c | 32 ++++----------------------------
> 1 files changed, 4 insertions(+), 28 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/cpuidle34xx.c
> b/arch/arm/mach-omap2/cpuidle34xx.c
> index 1cfa5a6..4a81ef1 100644
> --- a/arch/arm/mach-omap2/cpuidle34xx.c
> +++ b/arch/arm/mach-omap2/cpuidle34xx.c
> @@ -91,20 +91,6 @@ static int omap3_idle_bm_check(void)
> return 0;
> }
>
> -static int _cpuidle_allow_idle(struct powerdomain *pwrdm,
> - struct clockdomain *clkdm)
> -{
> - omap2_clkdm_allow_idle(clkdm);
> - return 0;
> -}
> -
> -static int _cpuidle_deny_idle(struct powerdomain *pwrdm,
> - struct clockdomain *clkdm)
> -{
> - omap2_clkdm_deny_idle(clkdm);
> - return 0;
> -}
> -
> /**
> * omap3_enter_idle - Programs OMAP3 to enter the specified state
> * @dev: cpuidle device
> @@ -141,19 +127,9 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
> if (omap_irq_pending() || need_resched())
> goto return_sleep_time;
>
> - if (cx->type == OMAP3_STATE_C1) {
> - pwrdm_for_each_clkdm(mpu_pd, _cpuidle_deny_idle);
> - pwrdm_for_each_clkdm(core_pd, _cpuidle_deny_idle);
> - }
> -
> /* Execute ARM wfi */
> omap_sram_idle();
>
> - if (cx->type == OMAP3_STATE_C1) {
> - pwrdm_for_each_clkdm(mpu_pd, _cpuidle_allow_idle);
> - pwrdm_for_each_clkdm(core_pd, _cpuidle_allow_idle);
> - }
> -
> return_sleep_time:
> getnstimeofday(&ts_postidle);
> ts_idle = timespec_sub(ts_postidle, ts_preidle);
> @@ -246,8 +222,8 @@ void omap_init_power_states(void)
> cpuidle_params_table[OMAP3_STATE_C2].wake_latency;
> omap3_power_states[OMAP3_STATE_C2].threshold =
> cpuidle_params_table[OMAP3_STATE_C2].threshold;
> - omap3_power_states[OMAP3_STATE_C2].mpu_state = PWRDM_POWER_ON;
> - omap3_power_states[OMAP3_STATE_C2].core_state = PWRDM_POWER_ON;
> + omap3_power_states[OMAP3_STATE_C2].mpu_state = PWRDM_POWER_INACTIVE;
> + omap3_power_states[OMAP3_STATE_C2].core_state = PWRDM_POWER_INACTIVE;
> omap3_power_states[OMAP3_STATE_C2].flags = CPUIDLE_FLAG_TIME_VALID;
>
> /* C3 . MPU CSWR + Core inactive */
> @@ -261,7 +237,7 @@ void omap_init_power_states(void)
> omap3_power_states[OMAP3_STATE_C3].threshold =
> cpuidle_params_table[OMAP3_STATE_C3].threshold;
> omap3_power_states[OMAP3_STATE_C3].mpu_state = PWRDM_POWER_RET;
> - omap3_power_states[OMAP3_STATE_C3].core_state = PWRDM_POWER_ON;
> + omap3_power_states[OMAP3_STATE_C3].core_state = PWRDM_POWER_INACTIVE;
> omap3_power_states[OMAP3_STATE_C3].flags = CPUIDLE_FLAG_TIME_VALID |
> CPUIDLE_FLAG_CHECK_BM;
>
> @@ -276,7 +252,7 @@ void omap_init_power_states(void)
> omap3_power_states[OMAP3_STATE_C4].threshold =
> cpuidle_params_table[OMAP3_STATE_C4].threshold;
> omap3_power_states[OMAP3_STATE_C4].mpu_state = PWRDM_POWER_OFF;
> - omap3_power_states[OMAP3_STATE_C4].core_state = PWRDM_POWER_ON;
> + omap3_power_states[OMAP3_STATE_C4].core_state = PWRDM_POWER_INACTIVE;
> omap3_power_states[OMAP3_STATE_C4].flags = CPUIDLE_FLAG_TIME_VALID |
> CPUIDLE_FLAG_CHECK_BM;
>
> --
> 1.5.4.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html