diff options
author | Deepthi Dharwar <deepthi@linux.vnet.ibm.com> | 2011-10-28 06:50:24 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2011-11-06 21:13:43 -0500 |
commit | b25edc42bfb9602f0503474b2c94701d5536ce60 (patch) | |
tree | 5d3b8634606daa99fe5dc86ade108400ecf3a5fd /drivers/cpuidle | |
parent | e978aa7d7d57d04eb5f88a7507c4fb98577def77 (diff) |
cpuidle: Remove CPUIDLE_FLAG_IGNORE and dev->prepare()
The cpuidle_device->prepare() mechanism causes updates to the
cpuidle_state[].flags, setting and clearing CPUIDLE_FLAG_IGNORE
to tell the governor not to chose a state on a per-cpu basis at
run-time. State demotion is now handled by the driver and it returns
the actual state entered. Hence, this mechanism is not required.
Also this removes per-cpu flags from cpuidle_state enabling
it to be made global.
Reference:
https://lkml.org/lkml/2011/3/25/52
Signed-off-by: Deepthi Dharwar <deepthi@linux.vnet.ibm>
Signed-off-by: Trinabh Gupta <g.trinabh@gmail.com>
Tested-by: Jean Pihet <j-pihet@ti.com>
Acked-by: Arjan van de Ven <arjan@linux.intel.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/cpuidle')
-rw-r--r-- | drivers/cpuidle/cpuidle.c | 10 | ||||
-rw-r--r-- | drivers/cpuidle/governors/menu.c | 2 |
2 files changed, 0 insertions, 12 deletions
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c index 88bd12104396..f66bcf9bfe93 100644 --- a/drivers/cpuidle/cpuidle.c +++ b/drivers/cpuidle/cpuidle.c | |||
@@ -83,16 +83,6 @@ int cpuidle_idle_call(void) | |||
83 | hrtimer_peek_ahead_timers(); | 83 | hrtimer_peek_ahead_timers(); |
84 | #endif | 84 | #endif |
85 | 85 | ||
86 | /* | ||
87 | * Call the device's prepare function before calling the | ||
88 | * governor's select function. ->prepare gives the device's | ||
89 | * cpuidle driver a chance to update any dynamic information | ||
90 | * of its cpuidle states for the current idle period, e.g. | ||
91 | * state availability, latencies, residencies, etc. | ||
92 | */ | ||
93 | if (dev->prepare) | ||
94 | dev->prepare(dev); | ||
95 | |||
96 | /* ask the governor for the next state */ | 86 | /* ask the governor for the next state */ |
97 | next_state = cpuidle_curr_governor->select(dev); | 87 | next_state = cpuidle_curr_governor->select(dev); |
98 | if (need_resched()) { | 88 | if (need_resched()) { |
diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c index e4b200c5b441..af724e823c8e 100644 --- a/drivers/cpuidle/governors/menu.c +++ b/drivers/cpuidle/governors/menu.c | |||
@@ -288,8 +288,6 @@ static int menu_select(struct cpuidle_device *dev) | |||
288 | for (i = CPUIDLE_DRIVER_STATE_START; i < dev->state_count; i++) { | 288 | for (i = CPUIDLE_DRIVER_STATE_START; i < dev->state_count; i++) { |
289 | struct cpuidle_state *s = &dev->states[i]; | 289 | struct cpuidle_state *s = &dev->states[i]; |
290 | 290 | ||
291 | if (s->flags & CPUIDLE_FLAG_IGNORE) | ||
292 | continue; | ||
293 | if (s->target_residency > data->predicted_us) | 291 | if (s->target_residency > data->predicted_us) |
294 | continue; | 292 | continue; |
295 | if (s->exit_latency > latency_req) | 293 | if (s->exit_latency > latency_req) |