cpufreq: Make sure CPU is running on a freq from freq-table
[firefly-linux-kernel-4.4.55.git] / drivers / cpufreq / freq_table.c
index 3458d27f63b409e03b866e6b20e541a7de8cc769..a8ac0427fbfeb215f00de7a645b69c5e6d51bf63 100644 (file)
@@ -178,7 +178,29 @@ int cpufreq_frequency_table_target(struct cpufreq_policy *policy,
 }
 EXPORT_SYMBOL_GPL(cpufreq_frequency_table_target);
 
+int cpufreq_frequency_table_get_index(struct cpufreq_policy *policy,
+               unsigned int freq)
+{
+       struct cpufreq_frequency_table *table;
+       int i;
+
+       table = cpufreq_frequency_get_table(policy->cpu);
+       if (unlikely(!table)) {
+               pr_debug("%s: Unable to find frequency table\n", __func__);
+               return -ENOENT;
+       }
+
+       for (i = 0; table[i].frequency != CPUFREQ_TABLE_END; i++) {
+               if (table[i].frequency == freq)
+                       return i;
+       }
+
+       return -EINVAL;
+}
+EXPORT_SYMBOL_GPL(cpufreq_frequency_table_get_index);
+
 static DEFINE_PER_CPU(struct cpufreq_frequency_table *, cpufreq_show_table);
+
 /**
  * show_available_freqs - show available frequencies for the specified CPU
  */