mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2] thermal: devfreq_cooling: Fix perf state when calculate dfc res_util
@ 2024-03-21 10:21 Ye Zhang
  2024-03-22  8:00 ` Dhruva Gole
  2024-03-22  8:50 ` Lukasz Luba
  0 siblings, 2 replies; 5+ messages in thread
From: Ye Zhang @ 2024-03-21 10:21 UTC (permalink / raw)
  To: ye.zhang, finley.xiao, heiko, daniel.lezcano, rui.zhang,
	lukasz.luba, rafael
  Cc: tao.huang, linux-rockchip, linux-pm, linux-kernel, stable

The issue occurs when the devfreq cooling device uses the EM power model
and the get_real_power() callback is provided by the driver.

The EM power table is sorted ascending,can't index the table by cooling
device state,so convert cooling state to performance state by
dfc->max_state - dfc->capped_state.

Fixes: 615510fe13bd ("thermal: devfreq_cooling: remove old power model and use EM")
Cc: 5.11+ <stable@vger.kernel.org> # 5.11+
Signed-off-by: Ye Zhang <ye.zhang@rock-chips.com>
---
v1 -> v2:
  - Update the commit message.

 drivers/thermal/devfreq_cooling.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/thermal/devfreq_cooling.c b/drivers/thermal/devfreq_cooling.c
index 50dec24e967a..8fd7cf1932cd 100644
--- a/drivers/thermal/devfreq_cooling.c
+++ b/drivers/thermal/devfreq_cooling.c
@@ -214,7 +214,7 @@ static int devfreq_cooling_get_requested_power(struct thermal_cooling_device *cd
 
 		res = dfc->power_ops->get_real_power(df, power, freq, voltage);
 		if (!res) {
-			state = dfc->capped_state;
+			state = dfc->max_state - dfc->capped_state;
 
 			/* Convert EM power into milli-Watts first */
 			rcu_read_lock();
-- 
2.34.1


^ permalink raw reply	[flat|nested] 5+ messages in thread
* [PATCH v2] thermal: devfreq_cooling: Fix perf state when calculate dfc res_util
@ 2024-03-22  1:45 Ye Zhang
  0 siblings, 0 replies; 5+ messages in thread
From: Ye Zhang @ 2024-03-22  1:45 UTC (permalink / raw)
  To: linux-kernel

The issue occurs when the devfreq cooling device uses the EM power model
and the get_real_power() callback is provided by the driver.

The EM power table is sorted ascending,can't index the table by cooling
device state,so convert cooling state to performance state by
dfc->max_state - dfc->capped_state.

Fixes: 615510fe13bd ("thermal: devfreq_cooling: remove old power model and use EM")
Cc: 5.11+ <stable@vger.kernel.org> # 5.11+
Signed-off-by: Ye Zhang <ye.zhang@rock-chips.com>
---
v1 -> v2:
  - Update the commit message.

 drivers/thermal/devfreq_cooling.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/thermal/devfreq_cooling.c b/drivers/thermal/devfreq_cooling.c
index 50dec24e967a..8fd7cf1932cd 100644
--- a/drivers/thermal/devfreq_cooling.c
+++ b/drivers/thermal/devfreq_cooling.c
@@ -214,7 +214,7 @@ static int devfreq_cooling_get_requested_power(struct thermal_cooling_device *cd
 
 		res = dfc->power_ops->get_real_power(df, power, freq, voltage);
 		if (!res) {
-			state = dfc->capped_state;
+			state = dfc->max_state - dfc->capped_state;
 
 			/* Convert EM power into milli-Watts first */
 			rcu_read_lock();
-- 
2.34.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-03-27 15:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-21 10:21 [PATCH v2] thermal: devfreq_cooling: Fix perf state when calculate dfc res_util Ye Zhang
2024-03-22  8:00 ` Dhruva Gole
2024-03-22  8:50 ` Lukasz Luba
2024-03-27 15:29   ` Rafael J. Wysocki
2024-03-22  1:45 Ye Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®