|
@@ -54,9 +54,8 @@ EXPORT_SYMBOL_GPL(cpufreq_frequency_table_cpuinfo);
|
|
|
int cpufreq_frequency_table_verify(struct cpufreq_policy *policy,
|
|
|
struct cpufreq_frequency_table *table)
|
|
|
{
|
|
|
- unsigned int next_larger = ~0;
|
|
|
- unsigned int i;
|
|
|
- unsigned int count = 0;
|
|
|
+ unsigned int next_larger = ~0, freq, i = 0;
|
|
|
+ bool found = false;
|
|
|
|
|
|
pr_debug("request for verification of policy (%u - %u kHz) for cpu %u\n",
|
|
|
policy->min, policy->max, policy->cpu);
|
|
@@ -64,21 +63,23 @@ int cpufreq_frequency_table_verify(struct cpufreq_policy *policy,
|
|
|
cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
|
|
|
policy->cpuinfo.max_freq);
|
|
|
|
|
|
- for (i = 0; (table[i].frequency != CPUFREQ_TABLE_END); i++) {
|
|
|
- unsigned int freq = table[i].frequency;
|
|
|
+ for (; freq = table[i].frequency, freq != CPUFREQ_TABLE_END; i++) {
|
|
|
if (freq == CPUFREQ_ENTRY_INVALID)
|
|
|
continue;
|
|
|
- if ((freq >= policy->min) && (freq <= policy->max))
|
|
|
- count++;
|
|
|
- else if ((next_larger > freq) && (freq > policy->max))
|
|
|
+ if ((freq >= policy->min) && (freq <= policy->max)) {
|
|
|
+ found = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((next_larger > freq) && (freq > policy->max))
|
|
|
next_larger = freq;
|
|
|
}
|
|
|
|
|
|
- if (!count)
|
|
|
+ if (!found) {
|
|
|
policy->max = next_larger;
|
|
|
-
|
|
|
- cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
|
|
|
- policy->cpuinfo.max_freq);
|
|
|
+ cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
|
|
|
+ policy->cpuinfo.max_freq);
|
|
|
+ }
|
|
|
|
|
|
pr_debug("verification lead to (%u - %u kHz) for cpu %u\n",
|
|
|
policy->min, policy->max, policy->cpu);
|