[GIT PULL] Thermal control updates for v6.12-rc1

From: Rafael J. Wysocki
Date: Thu Sep 12 2024 - 14:10:24 EST


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(-)