• Jon Hunter's avatar
    cpufreq: tegra186: Fix get frequency callback · e010d1d2
    Jon Hunter authored
    Commit b89c01c9 ("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: b89c01c9 ("cpufreq: tegra186: Fix initial frequency")
    Signed-off-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    e010d1d2
tegra186-cpufreq.c 7.03 KB