Message ID | 20220507125443.2766939-1-daniel.lezcano@linexp.org (mailing list archive) |
---|---|
Headers | show |
Series | thermal OF rework | expand |
Hi Rafael, if you are ok with this series, I'll pick it up. Is that ok ? On 07/05/2022 14:54, Daniel Lezcano wrote: > The thermal framework initialization with the device tree appears to > be complicated and hard to make it to evolve. > > It contains duplication of almost the same thermal generic structures > and has an assymetric initialization making hard any kind of serious > changes for more complex features. One of them is the multiple sensors > support per thermal zone. > > In order to set the scene for the aforementioned feature with generic > code, we need to cleanup and rework the device tree initialization. > > However this rework is not obvious because of the multiple components > entering in the composition of a thermal zone and being initialized at > different moments. For instance, a cooling device can be initialized > before a sensor, so the thermal zones must exist before the cooling > device as well as the sensor. This asynchonous initialization forces > the thermal zone to be created with fake ops because they are > mandotory and build a list of cooling devices which is used to lookup > afterwards when the cooling device driver is registering itself. > > As there could be a large number of changes, this first series provide > some steps forward for a simpler device tree initialization. > > Changelog: > - V2: > - Drop patch 1/15 which contains too many changes for a simple > structure renaming. This could be addressed in a separate series as > it is not necessary for the OF rework > > - Fixed of_node_put with gchild not initialized as reported by > kbuild and Dan Carpenter > > - V1: > - Initial post > > Daniel Lezcano (14): > thermal/core: Change thermal_zone_ops to thermal_sensor_ops > thermal/core: Add a thermal sensor structure in the thermal zone > thermal/core: Remove duplicate information when an error occurs > thermal/of: Replace device node match with device node search > thermal/of: Remove the device node pointer for thermal_trip > thermal/of: Move thermal_trip structure to thermal.h > thermal/core: Remove unneeded EXPORT_SYMBOLS > thermal/core: Move thermal_set_delay_jiffies to static > thermal/core: Rename trips to ntrips > thermal/core: Add thermal_trip in thermal_zone > thermal/core: Register with the trip points > thermal/of: Store the trips in the thermal zone > thermal/of: Use thermal trips stored in the thermal zone > thermal/of: Initialize trip points separately > > .../driver-api/thermal/sysfs-api.rst | 2 +- > drivers/acpi/thermal.c | 6 +- > .../ethernet/chelsio/cxgb4/cxgb4_thermal.c | 2 +- > .../ethernet/mellanox/mlxsw/core_thermal.c | 6 +- > drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 2 +- > drivers/platform/x86/acerhdf.c | 2 +- > drivers/power/supply/power_supply_core.c | 2 +- > drivers/thermal/armada_thermal.c | 2 +- > drivers/thermal/broadcom/bcm2835_thermal.c | 2 +- > drivers/thermal/da9062-thermal.c | 2 +- > drivers/thermal/dove_thermal.c | 2 +- > drivers/thermal/gov_bang_bang.c | 6 +- > drivers/thermal/gov_fair_share.c | 10 +- > drivers/thermal/gov_power_allocator.c | 22 +- > drivers/thermal/gov_step_wise.c | 4 +- > drivers/thermal/imx_thermal.c | 2 +- > .../intel/int340x_thermal/int3400_thermal.c | 2 +- > .../int340x_thermal/int340x_thermal_zone.c | 6 +- > .../int340x_thermal/int340x_thermal_zone.h | 4 +- > .../processor_thermal_device.c | 4 +- > .../processor_thermal_device_pci.c | 2 +- > drivers/thermal/intel/intel_pch_thermal.c | 2 +- > .../thermal/intel/intel_quark_dts_thermal.c | 2 +- > drivers/thermal/intel/intel_soc_dts_iosf.c | 2 +- > drivers/thermal/intel/x86_pkg_temp_thermal.c | 2 +- > drivers/thermal/kirkwood_thermal.c | 2 +- > drivers/thermal/rcar_gen3_thermal.c | 6 +- > drivers/thermal/rcar_thermal.c | 4 +- > drivers/thermal/samsung/exynos_tmu.c | 6 +- > drivers/thermal/spear_thermal.c | 2 +- > drivers/thermal/st/st_thermal.c | 2 +- > drivers/thermal/tegra/soctherm.c | 10 +- > drivers/thermal/tegra/tegra30-tsensor.c | 6 +- > drivers/thermal/thermal_core.c | 102 ++++---- > drivers/thermal/thermal_core.h | 25 +- > drivers/thermal/thermal_helpers.c | 35 ++- > drivers/thermal/thermal_hwmon.c | 4 +- > drivers/thermal/thermal_netlink.c | 10 +- > drivers/thermal/thermal_of.c | 221 ++++++++++-------- > drivers/thermal/thermal_sysfs.c | 62 ++--- > include/linux/thermal.h | 34 ++- > 41 files changed, 341 insertions(+), 290 deletions(-) >
On Fri, May 13, 2022 at 7:23 PM Daniel Lezcano <daniel.lezcano@linaro.org> wrote: > > > Hi Rafael, > > if you are ok with this series, I'll pick it up. > > Is that ok ? Give me some more time to look at it, please. I'll respond in the first half of next week. > On 07/05/2022 14:54, Daniel Lezcano wrote: > > The thermal framework initialization with the device tree appears to > > be complicated and hard to make it to evolve. > > > > It contains duplication of almost the same thermal generic structures > > and has an assymetric initialization making hard any kind of serious > > changes for more complex features. One of them is the multiple sensors > > support per thermal zone. > > > > In order to set the scene for the aforementioned feature with generic > > code, we need to cleanup and rework the device tree initialization. > > > > However this rework is not obvious because of the multiple components > > entering in the composition of a thermal zone and being initialized at > > different moments. For instance, a cooling device can be initialized > > before a sensor, so the thermal zones must exist before the cooling > > device as well as the sensor. This asynchonous initialization forces > > the thermal zone to be created with fake ops because they are > > mandotory and build a list of cooling devices which is used to lookup > > afterwards when the cooling device driver is registering itself. > > > > As there could be a large number of changes, this first series provide > > some steps forward for a simpler device tree initialization. > > > > Changelog: > > - V2: > > - Drop patch 1/15 which contains too many changes for a simple > > structure renaming. This could be addressed in a separate series as > > it is not necessary for the OF rework > > > > - Fixed of_node_put with gchild not initialized as reported by > > kbuild and Dan Carpenter > > > > - V1: > > - Initial post > > > > Daniel Lezcano (14): > > thermal/core: Change thermal_zone_ops to thermal_sensor_ops > > thermal/core: Add a thermal sensor structure in the thermal zone > > thermal/core: Remove duplicate information when an error occurs > > thermal/of: Replace device node match with device node search > > thermal/of: Remove the device node pointer for thermal_trip > > thermal/of: Move thermal_trip structure to thermal.h > > thermal/core: Remove unneeded EXPORT_SYMBOLS > > thermal/core: Move thermal_set_delay_jiffies to static > > thermal/core: Rename trips to ntrips > > thermal/core: Add thermal_trip in thermal_zone > > thermal/core: Register with the trip points > > thermal/of: Store the trips in the thermal zone > > thermal/of: Use thermal trips stored in the thermal zone > > thermal/of: Initialize trip points separately > > > > .../driver-api/thermal/sysfs-api.rst | 2 +- > > drivers/acpi/thermal.c | 6 +- > > .../ethernet/chelsio/cxgb4/cxgb4_thermal.c | 2 +- > > .../ethernet/mellanox/mlxsw/core_thermal.c | 6 +- > > drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 2 +- > > drivers/platform/x86/acerhdf.c | 2 +- > > drivers/power/supply/power_supply_core.c | 2 +- > > drivers/thermal/armada_thermal.c | 2 +- > > drivers/thermal/broadcom/bcm2835_thermal.c | 2 +- > > drivers/thermal/da9062-thermal.c | 2 +- > > drivers/thermal/dove_thermal.c | 2 +- > > drivers/thermal/gov_bang_bang.c | 6 +- > > drivers/thermal/gov_fair_share.c | 10 +- > > drivers/thermal/gov_power_allocator.c | 22 +- > > drivers/thermal/gov_step_wise.c | 4 +- > > drivers/thermal/imx_thermal.c | 2 +- > > .../intel/int340x_thermal/int3400_thermal.c | 2 +- > > .../int340x_thermal/int340x_thermal_zone.c | 6 +- > > .../int340x_thermal/int340x_thermal_zone.h | 4 +- > > .../processor_thermal_device.c | 4 +- > > .../processor_thermal_device_pci.c | 2 +- > > drivers/thermal/intel/intel_pch_thermal.c | 2 +- > > .../thermal/intel/intel_quark_dts_thermal.c | 2 +- > > drivers/thermal/intel/intel_soc_dts_iosf.c | 2 +- > > drivers/thermal/intel/x86_pkg_temp_thermal.c | 2 +- > > drivers/thermal/kirkwood_thermal.c | 2 +- > > drivers/thermal/rcar_gen3_thermal.c | 6 +- > > drivers/thermal/rcar_thermal.c | 4 +- > > drivers/thermal/samsung/exynos_tmu.c | 6 +- > > drivers/thermal/spear_thermal.c | 2 +- > > drivers/thermal/st/st_thermal.c | 2 +- > > drivers/thermal/tegra/soctherm.c | 10 +- > > drivers/thermal/tegra/tegra30-tsensor.c | 6 +- > > drivers/thermal/thermal_core.c | 102 ++++---- > > drivers/thermal/thermal_core.h | 25 +- > > drivers/thermal/thermal_helpers.c | 35 ++- > > drivers/thermal/thermal_hwmon.c | 4 +- > > drivers/thermal/thermal_netlink.c | 10 +- > > drivers/thermal/thermal_of.c | 221 ++++++++++-------- > > drivers/thermal/thermal_sysfs.c | 62 ++--- > > include/linux/thermal.h | 34 ++- > > 41 files changed, 341 insertions(+), 290 deletions(-) > > > > > -- > <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs > > Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | > <http://twitter.com/#!/linaroorg> Twitter | > <http://www.linaro.org/linaro-blog/> Blog
On 13/05/2022 19:56, Rafael J. Wysocki wrote: > On Fri, May 13, 2022 at 7:23 PM Daniel Lezcano > <daniel.lezcano@linaro.org> wrote: >> >> >> Hi Rafael, >> >> if you are ok with this series, I'll pick it up. >> >> Is that ok ? > > Give me some more time to look at it, please. > > I'll respond in the first half of next week. > Sure, no problem