Thread (4 messages) 4 messages, 2 authors, 2021-05-12

Re: [PATCH] thermal: intel: Initialize RW trip to THERMAL_TEMP_INVALID

From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Date: 2021-05-12 17:16:10
Also in: lkml, stable

On Wed, 2021-05-12 at 17:54 +0200, Daniel Lezcano wrote:
On 12/05/2021 17:52, Srinivas Pandruvada wrote:
quoted
On Fri, 2021-04-30 at 05:23 -0700, Srinivas Pandruvada wrote:
quoted
After commit 81ad4276b505 ("Thermal: Ignore invalid trip points")
all
user_space governor notifications via RW trip point is broken in
intel
thermal drivers. This commits marks trip_points with value of 0
during
call to thermal_zone_device_register() as invalid. RW trip points
can
be
0 as user space will set the correct trip temperature later.

During driver init, x86_package_temp and all int340x drivers sets
RW
trip
temperature as 0. This results in all these trips marked as
invalid
by
the thermal core.

To fix this initialize RW trips to THERMAL_TEMP_INVALID instead
of 0.
Any chance that we can take care of this issue during 5.13-rc*?
Yes, I will take care of it
Thanks.
quoted
quoted
Cc: <redacted>
Signed-off-by: Srinivas Pandruvada <
srinivas.pandruvada@linux.intel.com>
---
 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c | 4
++++
 drivers/thermal/intel/x86_pkg_temp_thermal.c                 | 2
+-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git
a/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
b/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
index d1248ba943a4..62c0aa5d0783 100644
---
a/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
+++
b/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
@@ -237,6 +237,8 @@ struct int34x_thermal_zone
*int340x_thermal_zone_add(struct acpi_device *adev,
        if (ACPI_FAILURE(status))
                trip_cnt = 0;
        else {
+               int i;
+
                int34x_thermal_zone->aux_trips =
                        kcalloc(trip_cnt,
                                sizeof(*int34x_thermal_zone-
quoted
aux_trips),
@@ -247,6 +249,8 @@ struct int34x_thermal_zone
*int340x_thermal_zone_add(struct acpi_device *adev,
                }
                trip_mask = BIT(trip_cnt) - 1;
                int34x_thermal_zone->aux_trip_nr = trip_cnt;
+               for (i = 0; i < trip_cnt; ++i)
+                       int34x_thermal_zone->aux_trips[i] =
THERMAL_TEMP_INVALID;
        }
 
        trip_cnt =
int340x_thermal_read_trips(int34x_thermal_zone);
diff --git a/drivers/thermal/intel/x86_pkg_temp_thermal.c
b/drivers/thermal/intel/x86_pkg_temp_thermal.c
index 295742e83960..4d8edc61a78b 100644
--- a/drivers/thermal/intel/x86_pkg_temp_thermal.c
+++ b/drivers/thermal/intel/x86_pkg_temp_thermal.c
@@ -166,7 +166,7 @@ static int sys_get_trip_temp(struct
thermal_zone_device *tzd,
        if (thres_reg_value)
                *temp = zonedev->tj_max - thres_reg_value * 1000;
        else
-               *temp = 0;
+               *temp = THERMAL_TEMP_INVALID;
        pr_debug("sys_get_trip_temp %d\n", *temp);
 
        return 0;
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help