From 46352d693e956acf542f74dda5ccd04885c4b3cd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 13 Sep 2019 13:45:11 +0100 Subject: [PATCH] raspberrypi-cpufreq: Only report integer pll divisor frequencies --- drivers/cpufreq/raspberrypi-cpufreq.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/cpufreq/raspberrypi-cpufreq.c b/drivers/cpufreq/raspberrypi-cpufreq.c index 2bc7d97..8bcfab2 100644 --- a/drivers/cpufreq/raspberrypi-cpufreq.c +++ b/drivers/cpufreq/raspberrypi-cpufreq.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -22,6 +23,7 @@ static int raspberrypi_cpufreq_probe(struct platform_device *pdev) unsigned long min, max; unsigned long rate; struct clk *clk; + int div; int ret; cpu_dev = get_cpu_device(0); @@ -44,7 +46,10 @@ static int raspberrypi_cpufreq_probe(struct platform_device *pdev) max = roundup(clk_round_rate(clk, ULONG_MAX), RASPBERRYPI_FREQ_INTERVAL); clk_put(clk); - for (rate = min; rate <= max; rate += RASPBERRYPI_FREQ_INTERVAL) { + for (div = 2; ; div++) { + rate = div_u64((u64)max * 2, div); + if (rate < min) + break; ret = dev_pm_opp_add(cpu_dev, rate, 0); if (ret) goto remove_opp; -- 2.7.4