diff options
Diffstat (limited to 'drivers/cpufreq/cpufreq_conservative.c')
-rw-r--r-- | drivers/cpufreq/cpufreq_conservative.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c index f62d822048e6..218460fcd2e4 100644 --- a/drivers/cpufreq/cpufreq_conservative.c +++ b/drivers/cpufreq/cpufreq_conservative.c | |||
@@ -80,13 +80,18 @@ static void cs_check_cpu(int cpu, unsigned int load) | |||
80 | 80 | ||
81 | /* Check for frequency decrease */ | 81 | /* Check for frequency decrease */ |
82 | if (load < cs_tuners->down_threshold) { | 82 | if (load < cs_tuners->down_threshold) { |
83 | unsigned int freq_target; | ||
83 | /* | 84 | /* |
84 | * if we cannot reduce the frequency anymore, break out early | 85 | * if we cannot reduce the frequency anymore, break out early |
85 | */ | 86 | */ |
86 | if (policy->cur == policy->min) | 87 | if (policy->cur == policy->min) |
87 | return; | 88 | return; |
88 | 89 | ||
89 | dbs_info->requested_freq -= get_freq_target(cs_tuners, policy); | 90 | freq_target = get_freq_target(cs_tuners, policy); |
91 | if (dbs_info->requested_freq > freq_target) | ||
92 | dbs_info->requested_freq -= freq_target; | ||
93 | else | ||
94 | dbs_info->requested_freq = policy->min; | ||
90 | 95 | ||
91 | __cpufreq_driver_target(policy, dbs_info->requested_freq, | 96 | __cpufreq_driver_target(policy, dbs_info->requested_freq, |
92 | CPUFREQ_RELATION_L); | 97 | CPUFREQ_RELATION_L); |