ARM: OMAP3: cpuidle - remove the 'valid' field
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Tue, 24 Apr 2012 14:05:32 +0000 (16:05 +0200)
committerKevin Hilman <khilman@ti.com>
Thu, 3 May 2012 20:16:40 +0000 (13:16 -0700)
With the previous changes all the states are valid, except the last
state which is now handled at runtime by next_valid_state() based on
the errata flags.

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>
[khilman@ti.com: minor changelog rework]
Signed-off-by: Kevin Hilman <khilman@ti.com>
arch/arm/mach-omap2/cpuidle34xx.c

index f394ea6..29b4f87 100644 (file)
@@ -67,7 +67,6 @@ static struct cpuidle_params cpuidle_params_table[] = {
 struct omap3_idle_statedata {
        u32 mpu_state;
        u32 core_state;
-       u8 valid;
 };
 struct omap3_idle_statedata omap3_idle_data[OMAP3_NUM_STATES];
 
@@ -191,8 +190,7 @@ static int next_valid_state(struct cpuidle_device *dev,
        }
 
        /* Check if current state is valid */
-       if ((cx->valid) &&
-           (cx->mpu_state >= mpu_deepest_state) &&
+       if ((cx->mpu_state >= mpu_deepest_state) &&
            (cx->core_state >= core_deepest_state)) {
                return index;
        } else {
@@ -216,8 +214,7 @@ static int next_valid_state(struct cpuidle_device *dev,
                idx--;
                for (; idx >= 0; idx--) {
                        cx = cpuidle_get_statedata(&dev->states_usage[idx]);
-                       if ((cx->valid) &&
-                           (cx->mpu_state >= mpu_deepest_state) &&
+                       if ((cx->mpu_state >= mpu_deepest_state) &&
                            (cx->core_state >= core_deepest_state)) {
                                next_index = idx;
                                break;
@@ -371,7 +368,6 @@ static inline struct omap3_idle_statedata *_fill_cstate_usage(
        struct omap3_idle_statedata *cx = &omap3_idle_data[idx];
        struct cpuidle_state_usage *state_usage = &dev->states_usage[idx];
 
-       cx->valid               = cpuidle_params_table[idx].valid;
        cpuidle_set_statedata(state_usage, cx);
 
        return cx;
@@ -386,7 +382,6 @@ static inline struct omap3_idle_statedata *_fill_cstate_usage(
 int __init omap3_idle_init(void)
 {
        struct cpuidle_device *dev;
-       struct cpuidle_driver *drv = &omap3_idle_driver;
        struct omap3_idle_statedata *cx;
 
        mpu_pd = pwrdm_lookup("mpu_pwrdm");
@@ -399,7 +394,6 @@ int __init omap3_idle_init(void)
 
        /* C1 . MPU WFI + Core active */
        cx = _fill_cstate_usage(dev, 0);
-       cx->valid = 1;  /* C1 is always valid */
        cx->mpu_state = PWRDM_POWER_ON;
        cx->core_state = PWRDM_POWER_ON;
 
@@ -433,7 +427,6 @@ int __init omap3_idle_init(void)
        cx->mpu_state = PWRDM_POWER_OFF;
        cx->core_state = PWRDM_POWER_OFF;
 
-       drv->state_count = OMAP3_NUM_STATES;
        cpuidle_register_driver(&omap3_idle_driver);
 
        if (cpuidle_register_device(dev)) {