Commit 8a4ff545 authored by Stephen Horvath's avatar Stephen Horvath Committed by Rafael J. Wysocki

ACPI: thermal: Register thermal zones without valid trip points

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.

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.

Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218586
Fixes: 9c864722 ("ACPI: thermal: Use library functions to obtain trip point temperature values")
Signed-off-by: default avatarStephen Horvath <s.horvath@outlook.com.au>
[ rjw: Subject edits, remove redundant braces ]
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 39cd87c4
......@@ -662,14 +662,15 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz,
{
int result;
tz->thermal_zone = thermal_zone_device_register_with_trips("acpitz",
trip_table,
trip_count,
tz,
&acpi_thermal_zone_ops,
NULL,
passive_delay,
tz->polling_frequency * 100);
if (trip_count)
tz->thermal_zone = thermal_zone_device_register_with_trips(
"acpitz", trip_table, trip_count, tz,
&acpi_thermal_zone_ops, NULL, passive_delay,
tz->polling_frequency * 100);
else
tz->thermal_zone = thermal_tripless_zone_device_register(
"acpitz", tz, &acpi_thermal_zone_ops, NULL);
if (IS_ERR(tz->thermal_zone))
return PTR_ERR(tz->thermal_zone);
......@@ -901,11 +902,8 @@ static int acpi_thermal_add(struct acpi_device *device)
trip++;
}
if (trip == trip_table) {
if (trip == trip_table)
pr_warn(FW_BUG "No valid trip points!\n");
result = -ENODEV;
goto free_memory;
}
result = acpi_thermal_register_thermal_zone(tz, trip_table,
trip - trip_table,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment