diff options
author | Daniel Lezcano <daniel.lezcano@linaro.org> | 2012-04-24 16:05:34 +0200 |
---|---|---|
committer | Kevin Hilman <khilman@ti.com> | 2012-05-03 22:19:30 +0200 |
commit | 88c377dd9835495a19043d3ec848eac6ef8658cf (patch) | |
tree | 0fd0721de7707ecf6ed57181bdb18d5a8fa426fd /arch/arm/mach-omap2/cpuidle34xx.c | |
parent | ARM: OMAP3: cpuidle - remove cpuidle_params_table (diff) | |
download | linux-88c377dd9835495a19043d3ec848eac6ef8658cf.tar.xz linux-88c377dd9835495a19043d3ec848eac6ef8658cf.zip |
ARM: OMAP3: define statically the omap3_idle_data
Initialize the omap3_idle_data array at compile time, that will allow
to remove the initialization at boot time.
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/cpuidle34xx.c')
-rw-r--r-- | arch/arm/mach-omap2/cpuidle34xx.c | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c index a82a8873840e..93e2450ee885 100644 --- a/arch/arm/mach-omap2/cpuidle34xx.c +++ b/arch/arm/mach-omap2/cpuidle34xx.c @@ -44,9 +44,36 @@ struct omap3_idle_statedata { u32 core_state; }; -#define OMAP3_NUM_STATES 7 - -struct omap3_idle_statedata omap3_idle_data[OMAP3_NUM_STATES]; +struct omap3_idle_statedata omap3_idle_data[] = { + { + .mpu_state = PWRDM_POWER_ON, + .core_state = PWRDM_POWER_ON, + }, + { + .mpu_state = PWRDM_POWER_ON, + .core_state = PWRDM_POWER_ON, + }, + { + .mpu_state = PWRDM_POWER_RET, + .core_state = PWRDM_POWER_ON, + }, + { + .mpu_state = PWRDM_POWER_OFF, + .core_state = PWRDM_POWER_ON, + }, + { + .mpu_state = PWRDM_POWER_RET, + .core_state = PWRDM_POWER_RET, + }, + { + .mpu_state = PWRDM_POWER_OFF, + .core_state = PWRDM_POWER_RET, + }, + { + .mpu_state = PWRDM_POWER_OFF, + .core_state = PWRDM_POWER_OFF, + }, +}; struct powerdomain *mpu_pd, *core_pd, *per_pd, *cam_pd; @@ -172,7 +199,7 @@ static int next_valid_state(struct cpuidle_device *dev, (cx->core_state >= core_deepest_state)) { return index; } else { - int idx = OMAP3_NUM_STATES - 1; + int idx = ARRAY_SIZE(omap3_idle_data) - 1; /* Reach the current state starting at highest C-state */ for (; idx >= 0; idx--) { @@ -334,7 +361,7 @@ struct cpuidle_driver omap3_idle_driver = { .desc = "MPU OFF + CORE OFF", }, }, - .state_count = OMAP3_NUM_STATES, + .state_count = ARRAY_SIZE(omap3_idle_data), .safe_state_index = 0, }; |