summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/cpufreq/cpufreq_interactive.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/cpufreq/cpufreq_interactive.c b/drivers/cpufreq/cpufreq_interactive.c
index 690be16aef8a..f8e9ee9f7137 100644
--- a/drivers/cpufreq/cpufreq_interactive.c
+++ b/drivers/cpufreq/cpufreq_interactive.c
@@ -298,11 +298,18 @@ static void cpufreq_interactive_timer(unsigned long data)
cpu_load = loadadjfreq / pcpu->target_freq;
boosted = boost_val || now < boostpulse_endtime;
- if ((cpu_load >= go_hispeed_load || boosted) &&
- pcpu->target_freq < hispeed_freq)
- new_freq = hispeed_freq;
- else
+ if (cpu_load >= go_hispeed_load || boosted) {
+ if (pcpu->target_freq < hispeed_freq) {
+ new_freq = hispeed_freq;
+ } else {
+ new_freq = choose_freq(pcpu, loadadjfreq);
+
+ if (new_freq < hispeed_freq)
+ new_freq = hispeed_freq;
+ }
+ } else {
new_freq = choose_freq(pcpu, loadadjfreq);
+ }
if (pcpu->target_freq >= hispeed_freq &&
new_freq > pcpu->target_freq &&