FAILED: patch "[PATCH] thermal/drivers/cpufreq_cooling: Update cpufreq_state only if" failed to apply to 5.4-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 236761f19a4f373354f1dcf399b57753f1f4b871 Mon Sep 17 00:00:00 2001
From: Zhuguangqing <[email protected]>
Date: Fri, 6 Nov 2020 17:22:43 +0800
Subject: [PATCH] thermal/drivers/cpufreq_cooling: Update cpufreq_state only if
state has changed
If state has not changed successfully and we updated cpufreq_state, next time when the new state is equal to cpufreq_state (not changed successfully last time), we will return directly and miss a freq_qos_update_request() that should have been.
drivers/thermal/cpufreq_cooling.c +1 -3
@@ -438,13 +438,11 @@ static int cpufreq_set_cur_state(struct thermal_cooling_device *cdev,if (cpufreq_cdev->cpufreq_state == state)return 0 ; - cpufreq_cdev->cpufreq_state = state; - frequency =get_state_freq (cpufreq_cdev, state); ret =freq_qos_update_request (&cpufreq_cdev->qos_req, frequency); -if (ret >0 ) { + cpufreq_cdev->cpufreq_state = state; cpus = cpufreq_cdev->policy->cpus; max_capacity =arch_scale_cpu_capacity (cpumask_first (cpus)); capacity = frequency * max_capacity;
Viresh Kumar
maintainerPATCH 1/1 thermal/drivers/cpu_cooling: Update cpufreq_state only if state has changed
From: Zhuguangqing <[email protected]>
[ Upstream commit 236761f19a4f373354f1dcf399b57753f1f4b871 ]
If state has not changed successfully and we updated cpufreq_state, next time when the new state is equal to cpufreq_state (not changed successfully last time), we will return directly and miss a freq_qos_update_request() that should have been.
--- drivers/thermal/cpu_cooling.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
drivers/thermal/cpu_cooling.c +6 -3
@@ -320,6 +320,7 @@ static int cpufreq_set_cur_state(struct thermal_cooling_device *cdev, unsigned long state) {struct cpufreq_cooling_device *cpufreq_cdev = cdev->devdata; +int ret;/* Request state should be less than max_level */ if (WARN_ON (state > cpufreq_cdev->max_level))
@@ -329,10 +330,12 @@ static int cpufreq_set_cur_state(struct thermal_cooling_device *cdev,if (cpufreq_cdev->cpufreq_state == state)return 0 ; - cpufreq_cdev->cpufreq_state = state; + ret =freq_qos_update_request (&cpufreq_cdev->qos_req, + cpufreq_cdev->freq_table[state].frequency); +if (ret >0 ) + cpufreq_cdev->cpufreq_state = state; -return freq_qos_update_request (&cpufreq_cdev->qos_req, - cpufreq_cdev->freq_table[state].frequency); +return ret; }/**
Signature · 1 line
2.25.0.rc1.19.g042ed3e048af
Greg KH
maintainerRe: [PATCH for 5.4 stable] thermal/drivers/cpu_cooling: Update cpufreq_state only if state has changed
Quoted 17 lines · Viresh Kumar
From: Zhuguangqing <[email protected]>
[ Upstream commit
236761f19a4f373354f1dcf399b57753f1f4b871]If state has not changed successfully and we updated
cpufreq_state, next time when the new state is equal tocpufreq_state(not changed successfully last time), we will return directly and miss afreq_qos_update_request()that should have been.Fixes 5130802ddbb1 ("thermal: cpu_cooling: Switch to QoS requests for freq limits")Cc v5.4+ <[email protected]> # v5.4+Signed-off-by Zhuguangqing <[email protected]>Acked-by Viresh Kumar <[email protected]>Signed-off-by Daniel Lezcano <[email protected]>[ Viresh: Redo the patch for 5.4 stable kernel ]Signed-off-by Viresh Kumar <[email protected]>
Quoted 3 lines
--- drivers/thermal/cpu_cooling.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
Now applied, thanks.
greg k-h