Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
[firefly-linux-kernel-4.4.55.git] / drivers / cpufreq / dbx500-cpufreq.c
index 15ed367139a6fe73e498249e7f4c32d5b0f64e35..6ec6539ae0418895a4b54619e98eeac7d647159c 100644 (file)
@@ -71,15 +71,15 @@ static unsigned int dbx500_cpufreq_getspeed(unsigned int cpu)
        int i = 0;
        unsigned long freq = clk_get_rate(armss_clk) / 1000;
 
-       while (freq_table[i].frequency != CPUFREQ_TABLE_END) {
-               if (freq <= freq_table[i].frequency)
+       /* The value is rounded to closest frequency in the defined table. */
+       while (freq_table[i + 1].frequency != CPUFREQ_TABLE_END) {
+               if (freq < freq_table[i].frequency +
+                  (freq_table[i + 1].frequency - freq_table[i].frequency) / 2)
                        return freq_table[i].frequency;
                i++;
        }
 
-       /* We could not find a corresponding frequency. */
-       pr_err("dbx500-cpufreq: Failed to find cpufreq speed\n");
-       return 0;
+       return freq_table[i].frequency;
 }
 
 static int __cpuinit dbx500_cpufreq_init(struct cpufreq_policy *policy)