summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Poynor <toddpoynor@google.com>2012-04-19 12:52:48 -0700
committerJohn Stultz <john.stultz@linaro.org>2012-08-10 16:22:00 -0400
commitc6b07442e7fe561956f60d563b7c7e572bf997ea (patch)
tree341f7317426281d1c56cdfc0cd2587b98b70d43c
parent3ec0c4185f5bc8096e47b22339a6f521f226214a (diff)
downloadlinux-topics-c6b07442e7fe561956f60d563b7c7e572bf997ea.tar.gz
cpufreq: interactive: base hispeed bump on target freq, not actual
For systems that set a common speed for all CPUs, checking current speed here could bypass the intermediate hispeed bump decision for this CPU when another CPU was already at hispeed. This could result in an overly high setting (for all CPUs) in situations where all CPUs were about to drop to load levels that map to hispeed or below. Change-Id: I186f23dcfc5e2b6336cab8b0327f0c8a9a4482bc Signed-off-by: Todd Poynor <toddpoynor@google.com>
-rw-r--r--drivers/cpufreq/cpufreq_interactive.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/cpufreq/cpufreq_interactive.c b/drivers/cpufreq/cpufreq_interactive.c
index fc3628dc0d5..748e55b043e 100644
--- a/drivers/cpufreq/cpufreq_interactive.c
+++ b/drivers/cpufreq/cpufreq_interactive.c
@@ -173,7 +173,7 @@ static void cpufreq_interactive_timer(unsigned long data)
cpu_load = load_since_change;
if (cpu_load >= go_hispeed_load) {
- if (pcpu->policy->cur == pcpu->policy->min) {
+ if (pcpu->target_freq <= pcpu->policy->min) {
new_freq = hispeed_freq;
} else {
new_freq = pcpu->policy->max * cpu_load / 100;