From: Jeff Brasen <jbrasen@xxxxxxxxxx> Add support for Thermal fast Sampling Period (_TFP) for Passive cooling. As per UEFI spec, _TFP overrides the "Thermal Sampling Period (_TSP)" if both are present in a Thermal zone. Signed-off-by: Jeff Brasen <jbrasen@xxxxxxxxxx> Signed-off-by: Sumit Gupta <sumitg@xxxxxxxxxx> --- drivers/acpi/thermal.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c index f9f6ebb08fdb..5dee3722509c 100644 --- a/drivers/acpi/thermal.c +++ b/drivers/acpi/thermal.c @@ -111,7 +111,7 @@ struct acpi_thermal_passive { unsigned long temperature; unsigned long tc1; unsigned long tc2; - unsigned long tsp; + unsigned long sampling_period; bool valid; }; @@ -289,11 +289,18 @@ static int acpi_thermal_trips_update(struct acpi_thermal *tz, int flag) tz->trips.passive.tc2 = tmp; status = acpi_evaluate_integer(tz->device->handle, - "_TSP", NULL, &tmp); - if (ACPI_FAILURE(status)) - tz->trips.passive.valid = false; - else - tz->trips.passive.tsp = tmp; + "_TFP", NULL, &tmp); + if (ACPI_FAILURE(status)) { + status = acpi_evaluate_integer(tz->device->handle, + "_TSP", NULL, &tmp); + if (ACPI_FAILURE(status)) + tz->trips.passive.valid = false; + else + tz->trips.passive.sampling_period = tmp * 100; + + } else { + tz->trips.passive.sampling_period = tmp; + } } } } @@ -765,7 +772,7 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz) if (tz->trips.passive.valid) tz->thermal_zone = thermal_zone_device_register("acpitz", trips, 0, tz, &acpi_thermal_zone_ops, NULL, - tz->trips.passive.tsp * 100, + tz->trips.passive.sampling_period, tz->polling_frequency * 100); else tz->thermal_zone = -- 2.17.1