|
@@ -137,9 +137,13 @@ int cpufreq_frequency_table_target(struct cpufreq_policy *policy,
|
|
|
i = pos - table;
|
|
|
if ((freq < policy->min) || (freq > policy->max))
|
|
|
continue;
|
|
|
+ if (freq == target_freq) {
|
|
|
+ optimal.driver_data = i;
|
|
|
+ break;
|
|
|
+ }
|
|
|
switch (relation) {
|
|
|
case CPUFREQ_RELATION_H:
|
|
|
- if (freq <= target_freq) {
|
|
|
+ if (freq < target_freq) {
|
|
|
if (freq >= optimal.frequency) {
|
|
|
optimal.frequency = freq;
|
|
|
optimal.driver_data = i;
|
|
@@ -152,7 +156,7 @@ int cpufreq_frequency_table_target(struct cpufreq_policy *policy,
|
|
|
}
|
|
|
break;
|
|
|
case CPUFREQ_RELATION_L:
|
|
|
- if (freq >= target_freq) {
|
|
|
+ if (freq > target_freq) {
|
|
|
if (freq <= optimal.frequency) {
|
|
|
optimal.frequency = freq;
|
|
|
optimal.driver_data = i;
|