cpufreq: dbx500: Round to closest available freq
When reading the cpu speed, round it to the closest available frequency from the table. Signed-off-by: Mats Fagerstrom <mats.fagerstrom@stericsson.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
e4969ebac8
commit
c77896693d
1 changed files with 5 additions and 5 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue