[PATCH v1 00/13] thermal: ACPI: More ACPI thermal improvements and modification of thermal instances

From: Rafael J. Wysocki
Date: Thu Sep 21 2023 - 14:39:26 EST


Hi All,

The ACPI thermal driver has undergone some significant changes recently, but
there is still room for improvements in it.

First off, it turns out that a small rearrangement of its internal data
structures allows code duplication in it to be reduced quite a bit (patches
[01-04/13].

Next, by changing the way it binds cooling devices to thermal zones (and trips
within them), the use of trip point indices can be eliminated from it (patch
[11/13]) which then allows its internal data structures to be simplified even
further (patch [12/13]).

However, in order to make those latter changes, it is useful to modify struct
thermal_instance to carry a trip pointer instead a trip index (patch [05/13])
which then allows the core to be adjusted to facilitate using trip pointers for
cooling device binding and unbinding (patch [10/13]).

Meanwhile, the modification of struct thermal_instance mentioned above also
helps to reduce the thermal governors overhead related to using
__thermal_zone_get_trip() that carries out bounds checking and copies trip
point data which both are not necessary in the governor code. Some related
cleanups of thermal governors can be done as well (patches [06-09/13].

Finally, it is prudent to visually distinguish the names of structure fields
and variables that carry temperature values in different units, so patch
[13/13] changes the names of those items in the ACPI thermal driver that are
used to store temperature values in deci-Kelvin.

This series is on top of the series of ACPI thermal driver posted last week:

https://patchwork.kernel.org/project/linux-acpi/list/?series=783543

and a couple of recent thermal core patches:

https://patchwork.kernel.org/project/linux-pm/patch/12296181.O9o76ZdvQC@kreacher/
https://patchwork.kernel.org/project/linux-pm/patch/5981326.lOV4Wx5bFT@kreacher/

It will be exposed in a separate git branch for easier access.

Please see the individual patch changelogs for details.

Thanks!