aboutsummaryrefslogtreecommitdiff
path: root/drivers/cpufreq/scmi-cpufreq.c
diff options
context:
space:
mode:
authorGravatar Jon Hunter <jonathanh@nvidia.com> 2020-11-03 11:55:14 +0000
committerGravatar Viresh Kumar <viresh.kumar@linaro.org> 2020-11-17 10:04:21 +0530
commite010d1d25e47642fb91023479a4965000cf934a8 (patch)
tree64799c3a9d5c5610b4d5d037057d68ba4122cb74 /drivers/cpufreq/scmi-cpufreq.c
parentLinux 5.10-rc1 (diff)
downloadlinux-e010d1d25e47642fb91023479a4965000cf934a8.tar.gz
linux-e010d1d25e47642fb91023479a4965000cf934a8.tar.bz2
linux-e010d1d25e47642fb91023479a4965000cf934a8.zip
cpufreq: tegra186: Fix get frequency callback
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@nvidia.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Diffstat (limited to 'drivers/cpufreq/scmi-cpufreq.c')
0 files changed, 0 insertions, 0 deletions