Message ID | 20230419083343.505780-1-daniel.lezcano@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | Thermal zone device structure encapsulation | expand |
On Wed, Apr 19, 2023 at 10:33 AM Daniel Lezcano <daniel.lezcano@linaro.org> wrote: > > The thermal zone device structure is defined in the exported thermal > header include/linux/thermal.h > > Given the definition being public, the structure is exposed to the > external components other than the thermal framework core code. It > results the drivers are tampering the structure internals like taking > the lock or changing the field values. > > Obviously that is bad for several reasons as the drivers can hook the > thermal framework behavior and makes very difficult the changes in the > core code as external components depend on it directly. > > Moreover, the thermal trip points being reworked, we don't want the > drivers to access the trips array directly in the thermal zone > structure and doing assumptions on how they are organized. > > This series provides a second set of changes moving to the thermal > zone device structure self-encapsulation. > > The ACPI and the Menlon drivers are using the thermal zone's device > fields to create symlinks and new attributes in the sysfs thermal zone > directory. These changes provide a hopefully temporary wrapper to > access it in order to allow moving forward in the thermal zone device > self-encapsulation and a Kconfig option to disable by default such a > extra sysfs information. > > Changelog: > v4: > - Encapsulate extra sysfs information inside a function for > ACPI but remove the Kconfig option > - Encapsulate extra sysfs information inside a function, > create the stubs and put that conditionnal to a Kconfig > option for Menlow > v3: > - Split the Kconfig option to be driver related when disabling > the specific attributes > - Use the thermal zone's device wrapper to write a trace in > the pch intel driver > v2: > - Add the Kconfig option to remove specific attributes > - Add a thermal_zone_device() wrapper to access tz->device > > Daniel Lezcano (6): > thermal/core: Encapsulate tz->device field > thermal/drivers/intel_pch_thermal: Use thermal driver device to write > a trace > thermal/drivers/acpi: Use thermal_zone_device() > thermal/drivers/menlow: Use thermal_zone_device() > thermal/drivers/acpi: Move to dedicated function sysfs extra attr > creation > thermal/drivers/intel_menlow: Make additionnal sysfs information > optional > > drivers/acpi/thermal.c | 47 +++++++++++++++-------- > drivers/thermal/intel/Kconfig | 11 ++++++ > drivers/thermal/intel/intel_menlow.c | 18 +++++++-- > drivers/thermal/intel/intel_pch_thermal.c | 3 +- > drivers/thermal/thermal_core.c | 6 +++ > include/linux/thermal.h | 1 + > 6 files changed, 67 insertions(+), 19 deletions(-) > > -- Patches [4/6] and [6/6] were superseded by the Menlow driver removal. I've applied the rest as 6.4-rc material, with some subject adjustments and after removing some trailing white space in a few places. Thanks!
On 27/04/2023 19:23, Rafael J. Wysocki wrote: > On Wed, Apr 19, 2023 at 10:33 AM Daniel Lezcano > <daniel.lezcano@linaro.org> wrote: >> >> The thermal zone device structure is defined in the exported thermal >> header include/linux/thermal.h >> >> Given the definition being public, the structure is exposed to the >> external components other than the thermal framework core code. It >> results the drivers are tampering the structure internals like taking >> the lock or changing the field values. >> >> Obviously that is bad for several reasons as the drivers can hook the >> thermal framework behavior and makes very difficult the changes in the >> core code as external components depend on it directly. >> >> Moreover, the thermal trip points being reworked, we don't want the >> drivers to access the trips array directly in the thermal zone >> structure and doing assumptions on how they are organized. >> >> This series provides a second set of changes moving to the thermal >> zone device structure self-encapsulation. >> >> The ACPI and the Menlon drivers are using the thermal zone's device >> fields to create symlinks and new attributes in the sysfs thermal zone >> directory. These changes provide a hopefully temporary wrapper to >> access it in order to allow moving forward in the thermal zone device >> self-encapsulation and a Kconfig option to disable by default such a >> extra sysfs information. >> [ ... ] > Patches [4/6] and [6/6] were superseded by the Menlow driver removal. > > I've applied the rest as 6.4-rc material, with some subject > adjustments and after removing some trailing white space in a few > places. Thanks!