PM / devfreq: tegra30: Make CPUFreq notifier to take into account boosting
authorDmitry Osipenko <digetx@gmail.com>
Thu, 2 Apr 2020 22:24:48 +0000 (01:24 +0300)
committerChanwoo Choi <cw00.choi@samsung.com>
Thu, 28 May 2020 09:02:39 +0000 (18:02 +0900)
We're taking into account both HW memory-accesses + CPU activity based on
current CPU's frequency. For memory-accesses there is a kind of hysteresis
in a form of "boosting" which is managed by the tegra30-devfreq driver.
If current HW memory activity is higher than activity judged based of the
CPU's frequency, then there is no need to schedule cpufreq_update_work
because the result of the work will be a NO-OP. And thus,
tegra_actmon_cpufreq_contribution() should return 0, meaning that at the
moment CPU frequency doesn't contribute anything to the final decision
about required memory clock rate.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
drivers/devfreq/tegra30-devfreq.c

index 28b2c7c..dfc3ac9 100644 (file)
@@ -420,7 +420,7 @@ tegra_actmon_cpufreq_contribution(struct tegra_devfreq *tegra,
 
        static_cpu_emc_freq = actmon_cpu_to_emc_rate(tegra, cpu_freq);
 
-       if (dev_freq >= static_cpu_emc_freq)
+       if (dev_freq + actmon_dev->boost_freq >= static_cpu_emc_freq)
                return 0;
 
        return static_cpu_emc_freq;