diff options
Diffstat (limited to 'drivers/cpufreq/cpufreq_ondemand.c')
-rw-r--r-- | drivers/cpufreq/cpufreq_ondemand.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c index 69aa1db8336c..956d121cb161 100644 --- a/drivers/cpufreq/cpufreq_ondemand.c +++ b/drivers/cpufreq/cpufreq_ondemand.c | |||
@@ -84,6 +84,7 @@ struct dbs_tuners { | |||
84 | static struct dbs_tuners dbs_tuners_ins = { | 84 | static struct dbs_tuners dbs_tuners_ins = { |
85 | .up_threshold = DEF_FREQUENCY_UP_THRESHOLD, | 85 | .up_threshold = DEF_FREQUENCY_UP_THRESHOLD, |
86 | .sampling_down_factor = DEF_SAMPLING_DOWN_FACTOR, | 86 | .sampling_down_factor = DEF_SAMPLING_DOWN_FACTOR, |
87 | .ignore_nice = 0, | ||
87 | }; | 88 | }; |
88 | 89 | ||
89 | static inline unsigned int get_cpu_idle_time(unsigned int cpu) | 90 | static inline unsigned int get_cpu_idle_time(unsigned int cpu) |
@@ -350,6 +351,9 @@ static void dbs_check_cpu(int cpu) | |||
350 | freq_next = (freq_next * policy->cur) / | 351 | freq_next = (freq_next * policy->cur) / |
351 | (dbs_tuners_ins.up_threshold - 10); | 352 | (dbs_tuners_ins.up_threshold - 10); |
352 | 353 | ||
354 | if (freq_next < policy->min) | ||
355 | freq_next = policy->min; | ||
356 | |||
353 | if (freq_next <= ((policy->cur * 95) / 100)) | 357 | if (freq_next <= ((policy->cur * 95) / 100)) |
354 | __cpufreq_driver_target(policy, freq_next, CPUFREQ_RELATION_L); | 358 | __cpufreq_driver_target(policy, freq_next, CPUFREQ_RELATION_L); |
355 | } | 359 | } |
@@ -395,8 +399,11 @@ static int cpufreq_governor_dbs(struct cpufreq_policy *policy, | |||
395 | return -EINVAL; | 399 | return -EINVAL; |
396 | 400 | ||
397 | if (policy->cpuinfo.transition_latency > | 401 | if (policy->cpuinfo.transition_latency > |
398 | (TRANSITION_LATENCY_LIMIT * 1000)) | 402 | (TRANSITION_LATENCY_LIMIT * 1000)) { |
403 | printk(KERN_WARNING "ondemand governor failed to load " | ||
404 | "due to too long transition latency\n"); | ||
399 | return -EINVAL; | 405 | return -EINVAL; |
406 | } | ||
400 | if (this_dbs_info->enable) /* Already enabled */ | 407 | if (this_dbs_info->enable) /* Already enabled */ |
401 | break; | 408 | break; |
402 | 409 | ||
@@ -431,8 +438,6 @@ static int cpufreq_governor_dbs(struct cpufreq_policy *policy, | |||
431 | def_sampling_rate = MIN_STAT_SAMPLING_RATE; | 438 | def_sampling_rate = MIN_STAT_SAMPLING_RATE; |
432 | 439 | ||
433 | dbs_tuners_ins.sampling_rate = def_sampling_rate; | 440 | dbs_tuners_ins.sampling_rate = def_sampling_rate; |
434 | dbs_tuners_ins.ignore_nice = 0; | ||
435 | |||
436 | dbs_timer_init(); | 441 | dbs_timer_init(); |
437 | } | 442 | } |
438 | 443 | ||