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);
[...]