mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-26 06:50:53 +07:00
2dcd851fe4
Existing code updates cupfreq policy only while executing cpufreq_apply_cooling() function (i.e. when notify_device != NOTIFY_INVALID). It doesn't apply constraints when cpufreq policy update happens from any other place but it should update the cpufreq policy with thermal constraints every time when there is a cpufreq policy update, to keep state of cpufreq_cooling_device and max_feq of cpufreq policy in sync. For instance while resuming cpufreq updates cpufreq_policy and it restores default policy->usr_policy values irrespective of cooling device's cpufreq_state since notification gets missed because (notify_device == NOTIFY_INVALID). Another problem, is that userspace is able to change max_freq irrespective of cooling device's state, as notification gets missed. This patch modifies code to maintain a global cpufreq_dev_list and applies constraints of all matching cooling devices for policy's cpu when there is any policy update(ends up applying the lowest max_freq among the matching cpu cooling devices). This patch also removes redundant check (max_freq > policy->user_policy.max), as cpufreq framework takes care of user_policy constraints already where ever required, otherwise its causing an issue while increasing max_freq in normal scenerio as it restores max_freq with policy->user_policy.max which is old (smaller) value. Signed-off-by: Yadwinder Singh Brar <yadi.brar@samsung.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> |
||
---|---|---|
.. | ||
int340x_thermal | ||
samsung | ||
st | ||
ti-soc-thermal | ||
armada_thermal.c | ||
cpu_cooling.c | ||
db8500_cpufreq_cooling.c | ||
db8500_thermal.c | ||
dove_thermal.c | ||
fair_share.c | ||
gov_bang_bang.c | ||
imx_thermal.c | ||
intel_powerclamp.c | ||
intel_soc_dts_thermal.c | ||
Kconfig | ||
kirkwood_thermal.c | ||
Makefile | ||
of-thermal.c | ||
rcar_thermal.c | ||
spear_thermal.c | ||
step_wise.c | ||
thermal_core.c | ||
thermal_core.h | ||
thermal_hwmon.c | ||
thermal_hwmon.h | ||
user_space.c | ||
x86_pkg_temp_thermal.c |