On 03-11-20, 11:55, Jon Hunter wrote: > Commit b89c01c96051 ("cpufreq: tegra186: Fix initial frequency") > implemented the CPUFREQ 'get' callback to determine the current > operating frequency for each CPU. This implementation used a simple > looked up to determine the current operating frequency. The problem > with this is that frequency table for different Tegra186 devices may > vary and so the default boot frequency for Tegra186 device may or may > not be present in the frequency table. If the default boot frequency is > not present in the frequency table, this causes the function > tegra186_cpufreq_get() to return 0 and in turn causes cpufreq_online() > to fail which prevents CPUFREQ from working. > > Fix this by always calculating the CPU frequency based upon the current > 'ndiv' setting for the CPU. Note that the CPU frequency for Tegra186 is > calculated by reading the current 'ndiv' setting, multiplying by the > CPU reference clock and dividing by a constant divisor. > > Fixes: b89c01c96051 ("cpufreq: tegra186: Fix initial frequency") > > Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx> > --- > drivers/cpufreq/tegra186-cpufreq.c | 33 +++++++++++++++++++----------- > 1 file changed, 21 insertions(+), 12 deletions(-) Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> Rafael: This needs to go in the next rc and so I am not applying it in my tree as this is the only fix I have for now. -- viresh