Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8b7ef6d8 authored by Thomas Renninger's avatar Thomas Renninger Committed by Len Brown
Browse files

ACPI thermal: Check for thermal zone requirement



ACPI spec says (11.5 Thermal Zone Interface Requirements):
   A thermal zone must contain at least one trip point
   (critical, near critical, active, or passive)

Check this once at init time.

Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
Tested-by: default avatar <clarkt@cnsp.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent f8b55f25
Loading
Loading
Loading
Loading
+17 −1
Original line number Original line Diff line number Diff line
@@ -575,7 +575,23 @@ static int acpi_thermal_trips_update(struct acpi_thermal *tz, int flag)


static int acpi_thermal_get_trip_points(struct acpi_thermal *tz)
static int acpi_thermal_get_trip_points(struct acpi_thermal *tz)
{
{
	return acpi_thermal_trips_update(tz, ACPI_TRIPS_INIT);
	int i, valid, ret = acpi_thermal_trips_update(tz, ACPI_TRIPS_INIT);

	if (ret)
		return ret;

	valid = tz->trips.critical.flags.valid |
		tz->trips.hot.flags.valid |
		tz->trips.passive.flags.valid;

	for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE; i++)
		valid |= tz->trips.active[i].flags.valid;

	if (!valid) {
		printk(KERN_WARNING FW_BUG "No valid trip found\n");
		return -ENODEV;
	}
	return 0;
}
}


static void acpi_thermal_check(void *data)
static void acpi_thermal_check(void *data)