thermal/drivers/intel: Initialize RW trip to THERMAL_TEMP_INVALID
commiteb8500b874upstream. After commit81ad4276b5("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. Cc: <stable@vger.kernel.org> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Link: https://lore.kernel.org/r/20210430122343.1789899-1-srinivas.pandruvada@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bfd46c08d6
commit
a40b07afcb
2 changed files with 5 additions and 1 deletions
|
|
@ -231,6 +231,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->aux_trips),
|
||||
|
|
@ -241,6 +243,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);
|
||||
|
|
|
|||
|
|
@ -164,7 +164,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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue