diff options
| -rw-r--r-- | drivers/cpufreq/cpufreq_conservative.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c index 599a40b25cb0..3a147874a465 100644 --- a/drivers/cpufreq/cpufreq_conservative.c +++ b/drivers/cpufreq/cpufreq_conservative.c | |||
| @@ -444,6 +444,7 @@ static struct attribute_group dbs_attr_group_old = { | |||
| 444 | static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info) | 444 | static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info) |
| 445 | { | 445 | { |
| 446 | unsigned int load = 0; | 446 | unsigned int load = 0; |
| 447 | unsigned int max_load = 0; | ||
| 447 | unsigned int freq_target; | 448 | unsigned int freq_target; |
| 448 | 449 | ||
| 449 | struct cpufreq_policy *policy; | 450 | struct cpufreq_policy *policy; |
| @@ -501,6 +502,9 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info) | |||
| 501 | continue; | 502 | continue; |
| 502 | 503 | ||
| 503 | load = 100 * (wall_time - idle_time) / wall_time; | 504 | load = 100 * (wall_time - idle_time) / wall_time; |
| 505 | |||
| 506 | if (load > max_load) | ||
| 507 | max_load = load; | ||
| 504 | } | 508 | } |
| 505 | 509 | ||
| 506 | /* | 510 | /* |
| @@ -511,7 +515,7 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info) | |||
| 511 | return; | 515 | return; |
| 512 | 516 | ||
| 513 | /* Check for frequency increase */ | 517 | /* Check for frequency increase */ |
| 514 | if (load > dbs_tuners_ins.up_threshold) { | 518 | if (max_load > dbs_tuners_ins.up_threshold) { |
| 515 | this_dbs_info->down_skip = 0; | 519 | this_dbs_info->down_skip = 0; |
| 516 | 520 | ||
| 517 | /* if we are already at full speed then break out early */ | 521 | /* if we are already at full speed then break out early */ |
| @@ -538,7 +542,7 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info) | |||
| 538 | * can support the current CPU usage without triggering the up | 542 | * can support the current CPU usage without triggering the up |
| 539 | * policy. To be safe, we focus 10 points under the threshold. | 543 | * policy. To be safe, we focus 10 points under the threshold. |
| 540 | */ | 544 | */ |
| 541 | if (load < (dbs_tuners_ins.down_threshold - 10)) { | 545 | if (max_load < (dbs_tuners_ins.down_threshold - 10)) { |
| 542 | freq_target = (dbs_tuners_ins.freq_step * policy->max) / 100; | 546 | freq_target = (dbs_tuners_ins.freq_step * policy->max) / 100; |
| 543 | 547 | ||
| 544 | this_dbs_info->requested_freq -= freq_target; | 548 | this_dbs_info->requested_freq -= freq_target; |
