Re: [PATCH v2 1/3] thermal/acpi: Add ACPI trip point routines

From: Christophe JAILLET
Date: Mon Jan 02 2023 - 13:12:04 EST


Le 02/01/2023 à 19:01, Daniel Lezcano a écrit :
From: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>

The ACPI specification describes the trip points, the device tree
bindings as well.

The OF code uses the generic trip point structures.

The ACPI has their own trip points structure and uses the get_trip_*
ops to retrieve them.

We can do the same as the OF code and create a set of ACPI functions
to retrieve a trip point description. Having a common code for ACPI
will help to cleanup the remaining Intel drivers and get rid of the
get_trip_* functions.

These changes add the ACPI thermal calls to retrieve the basic
information we need to be reused in the thermal ACPI and Intel
drivers.

The different ACPI functions have the generic trip point structure
passed as parameter where it is filled.

This structure aims to be the one used by all the thermal drivers and
the thermal framework.

After this series, a couple of Intel drivers and the ACPI thermal
driver will still have their own trip points definition but a new
series on top of this one will finish the conversion to the generic
trip point handling.

This series depends on the generic trip point added to the thermal
framework and available in the thermal/linux-next branch.

https://lkml.org/lkml/2022/10/3/456

It has been tested on a Intel i7-8650U - x280 with the INT3400, the
PCH, ACPITZ, and x86_pkg_temp. No regression observed so far.

Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>

[...]

+int thermal_acpi_trip_psv_tc2(struct acpi_device *adev)
+{
+ acpi_status status;
+ unsigned long long tc2;
+
+ /*
+ * _TC2 (Thermal Constant 1): This object evaluates to the constant _TC2

Hi, should there be a V3 (or if/when the patch is applied):
Thermal Constant s/1/2/?

CJ

+ * for use in the Passive cooling formula
+ */
+ status = acpi_evaluate_integer(adev->handle, "_TC2", NULL, &tc2);
+ if (ACPI_FAILURE(status))
+ return -EINVAL;
+
+ return (int)tc2;
+}
+EXPORT_SYMBOL_GPL(thermal_acpi_trip_psv_tc2);

[...]