Hi Linus, The next week will be all conference travel for me and I'll be traveling in the week after it too, so here's an early request to pull thermal control updates for 6.12-rc1. To receive them, please pull from the tag git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \ thermal-6.12-rc1 with top-most commit 3bc5ed15bdc5077d7ee621f44872f550babbea3e Merge tag 'thermal-v6.12-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thermal/linux into on top of commit c0a1ef9c5be72ff28a5413deb1b3e1a066593c13 thermal: of: Fix OF node leak in of_thermal_zone_find() error paths to receive thermal control updates for 6.12-rc1. These mostly continue to rework the thermal core and the thermal zone driver interface to make the code more straightforward and reduce bloat. The most significant piece of this work is a change of the code related to binding cooling devices to thermal zones which, among other things, replaces two previously existing thermal zone operations with one allowing driver implementations to be much simpler. There is also a new thermal core testing module allowing mock thermal zones to be created and controlled via debugfs in order to exercise the thermal core functionality. It is expected to be used for implementing thermal core self tests in the future. Apart from the above, there are assorted thermal driver updates. Specifics: - Update some thermal drivers to eliminate thermal_zone_get_trip() calls from them and get rid of that function (Rafael Wysocki). - Update the thermal sysfs code to store trip point attributes in trip descriptors and get to trip points via attribute pointers (Rafael Wysocki). - Move the computation of the low and high boundaries for thermal_zone_set_trips() to __thermal_zone_device_update() (Daniel Lezcano). - Introduce a debugfs-based facility for thermal core testing (Rafael Wysocki). - Replace the thermal zone .bind() and .unbind() callbacks for binding cooling devices to thermal zones with one .should_bind() callback used for deciding whether or not a given cooling devices should be bound to a given trip point in a given thermal zone (Rafael Wysocki). - Eliminate code that has no more users after the other changes, drop some redundant checks from the thermal core and clean it up (Rafael Wysocki). - Fix rounding of delay jiffies in the thermal core (Rafael Wysocki). - Refuse to accept trip point temperature or hysteresis that would lead to an invalid threshold value when setting them via sysfs (Rafael Wysocki). - Adjust states of all uninitialized instances in the .manage() callback of the Bang-bang thermal governor (Rafael Wysocki). - Drop a couple of redundant checks along with the code depending on them from the thermal core (Rafael Wysocki). - Rearrange the thermal core to avoid redundant checks and simplify control flow in a couple of code paths (Rafael Wysocki). - Add power domain DT bindings for new Amlogic SoCs (Georges Stark). - Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() in the ST driver and add a Kconfig dependency on THERMAL_OF subsystem for the STi driver (Raphael Gallais-Pou). - Simplify the error code path in the probe functions in the brcmstb driver with the help of dev_err_probe() (Yan Zhen). - Make imx_sc_thermal use dev_err_probe() (Alexander Stein). - Remove trailing space after \n newline in the Renesas driver (Colin Ian King). - Add DT binding compatible string for the SA8255p to the tsens thermal driver (Nikunj Kela). - Use the devm_clk_get_enabled() helpers to simplify the init routine in the sprd thermal driver (Huan Yang). - Remove __maybe_unused notations for the functions by using the new RUNTIME_PM_OPS() and SYSTEM_SLEEP_PM_OPS() macros on the IMx and Qoriq drivers (Fabio Estevam) - Remove unused declarations from the ti-soc-thermal driver's header file as the functions in question were removed previously (Zhang Zekun). Thanks! --------------- Alexander Stein (1): thermal/drivers/imx_sc_thermal: Use dev_err_probe Colin Ian King (1): thermal/drivers/renesas: Remove trailing space after \n newline Daniel Lezcano (1): thermal/core: Compute low and high boundaries in thermal_zone_device_update() Fabio Estevam (2): thermal/drivers/qoriq: Remove __maybe_unused notations thermal/drivers/imx: Remove __maybe_unused notations George Stark (1): dt-bindings: thermal: amlogic,thermal: add optional power-domains Huan Yang (1): thermal/drivers/sprd: Use devm_clk_get_enabled() helpers Nikunj Kela (1): dt-bindings: thermal: tsens: document support on SA8255p Rafael J. Wysocki (36): thermal: broadcom: Use thermal_zone_get_crit_temp() in bcm2835_thermal_probe() thermal: hisi: Use thermal_zone_for_each_trip() in hisi_thermal_register_sensor() thermal: qcom: Use thermal_zone_get_crit_temp() in qpnp_tm_init() thermal: tegra: Introduce struct trip_temps for critical and hot trips thermal: tegra: Use thermal_zone_for_each_trip() for walking trip points thermal: helpers: Drop get_thermal_instance() thermal: trip: Get rid of thermal_zone_get_num_trips() thermal: trip: Drop thermal_zone_get_trip() thermal: core: Store trip sysfs attributes in thermal_trip_desc thermal: sysfs: Get to trips via attribute pointers thermal: sysfs: Refine the handling of trip hysteresis changes thermal: Introduce a debugfs-based testing facility thermal: core: Fold two functions into their respective callers thermal: core: Rearrange checks in thermal_bind_cdev_to_trip() thermal: core: Drop redundant thermal instance checks thermal: sysfs: Use the dev argument in instance-related show/store thermal: core: Move thermal zone locking out of bind/unbind functions thermal: core: Introduce .should_bind() thermal zone callback thermal: ACPI: Use the .should_bind() thermal zone callback thermal: core: Unexport thermal_bind_cdev_to_trip() and thermal_unbind_cdev_from_trip() platform/x86: acerhdf: Use the .should_bind() thermal zone callback mlxsw: core_thermal: Use the .should_bind() thermal zone callback thermal: imx: Use the .should_bind() thermal zone callback thermal/of: Use the .should_bind() thermal zone callback thermal: core: Drop unused bind/unbind functions and callbacks thermal: core: Clean up trip bind/unbind functions thermal: core: Fix rounding of delay jiffies thermal: core: Rename cdev-to-thermal-zone bind/unbind functions thermal: core: Drop redundant checks from thermal_bind_cdev_to_trip() thermal: core: Drop tz field from struct thermal_instance thermal: sysfs: Add sanity checks for trip temperature and hysteresis thermal: gov_bang_bang: Adjust states of all uninitialized instances thermal: core: Drop redundant lockdep_assert_held() thermal: core: Drop dead code from monitor_thermal_zone() thermal: core: Check passive delay in monitor_thermal_zone() thermal: core: Drop thermal_zone_device_is_enabled() Raphael Gallais-Pou (2): thermal/drivers/st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() thermal/drivers/sti: Depend on THERMAL_OF subsystem Yan Zhen (1): thermal/drivers/brcmstb_thermal: Simplify with dev_err_probe() Zhang Zekun (1): thermal/drivers/ti-soc-thermal: Remove unused declarations --------------- .../bindings/thermal/amlogic,thermal.yaml | 3 + .../devicetree/bindings/thermal/qcom-tsens.yaml | 1 + Documentation/driver-api/thermal/sysfs-api.rst | 68 +-- drivers/acpi/thermal.c | 66 +-- drivers/net/ethernet/mellanox/mlxsw/core_thermal.c | 115 ++--- drivers/platform/x86/acerhdf.c | 33 +- drivers/thermal/Kconfig | 11 +- drivers/thermal/Makefile | 1 + drivers/thermal/broadcom/bcm2835_thermal.c | 7 +- drivers/thermal/broadcom/brcmstb_thermal.c | 15 +- drivers/thermal/gov_bang_bang.c | 14 +- drivers/thermal/hisi_thermal.c | 25 +- drivers/thermal/imx_sc_thermal.c | 3 +- drivers/thermal/imx_thermal.c | 36 +- drivers/thermal/qcom/qcom-spmi-temp-alarm.c | 22 +- drivers/thermal/qoriq_thermal.c | 10 +- drivers/thermal/renesas/rcar_gen3_thermal.c | 6 +- drivers/thermal/renesas/rcar_thermal.c | 2 +- drivers/thermal/sprd_thermal.c | 14 +- drivers/thermal/st/st_thermal.c | 32 +- drivers/thermal/st/st_thermal_memmap.c | 2 +- drivers/thermal/st/stm_thermal.c | 8 +- drivers/thermal/tegra/soctherm.c | 36 +- drivers/thermal/tegra/tegra30-tsensor.c | 57 +-- drivers/thermal/testing/Makefile | 7 + drivers/thermal/testing/command.c | 221 ++++++++++ drivers/thermal/testing/thermal_testing.h | 11 + drivers/thermal/testing/zone.c | 468 +++++++++++++++++++++ drivers/thermal/thermal_core.c | 243 ++++------- drivers/thermal/thermal_core.h | 38 +- drivers/thermal/thermal_helpers.c | 32 +- drivers/thermal/thermal_of.c | 171 ++------ drivers/thermal/thermal_sysfs.c | 222 +++++----- drivers/thermal/thermal_trip.c | 53 +-- drivers/thermal/ti-soc-thermal/ti-bandgap.h | 4 - include/linux/thermal.h | 31 +- 36 files changed, 1160 insertions(+), 928 deletions(-)