Re: [PATCH] ACPI: thermal_lib: Continue registering thermal zones even if trip points fail validation

From: Rafael J. Wysocki
Date: Wed Mar 27 2024 - 11:41:30 EST


On Mon, Mar 25, 2024 at 5:44 AM Stephen Horvath
<s.horvath@xxxxxxxxxxxxxx> wrote:
>
> Some laptops where the thermal control is handled by the EC may
> provide trip points that fail the kernels new validation, but still have
> working temperature sensors. An example of this is the Framework 13 AMD.

I believe that this is a regression introduced recently, so would it
be possible to provide a pointer to the commit that introduced it?

> This patch allows the thermal zone to still be registered without trip
> points if the trip points fail validation, allowing the temperature
> sensor to be viewed and used by the user.
>
> Signed-off-by: Stephen Horvath <s.horvath@xxxxxxxxxxxxxx>
> ---
> drivers/acpi/thermal.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> index 302dce0b2b50..fd59e41037ec 100644
> --- a/drivers/acpi/thermal.c
> +++ b/drivers/acpi/thermal.c
> @@ -903,8 +903,8 @@ static int acpi_thermal_add(struct acpi_device *device)
>
> if (trip == trip_table) {
> pr_warn(FW_BUG "No valid trip points!\n");
> - result = -ENODEV;
> - goto free_memory;
> + /* Effectively disable polling since it is not needed */
> + tz->polling_frequency = 0;

Because the thermal zone becomes effectively tripless, it should be
registered with thermal_tripless_zone_device_register().

> }
>
> result = acpi_thermal_register_thermal_zone(tz, trip_table,
> --