2024-05-13 19:27:39

by Rafael J. Wysocki

[permalink] [raw]
Subject: [GIT PULL] Thermal control updates for v6.10-rc1

Hi Linus,

Please pull from the tag

git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
thermal-6.10-rc1

with top-most commit 3a47fbdd1a750afe8c31971e7d3892f08e7390b8

Merge branch 'thermal-intel'

on top of commit d351eb0ab04c3e8109895fc33250cebbce9c11da

thermal/debugfs: Prevent use-after-free from occurring after cdev removal

to receive thermal control updates for 6.10-rc1.

The most significant part of this is a rework of thermal governors,
including a redesign of the thermal governor interface and changes to
make some of them take trip point hysteresis into account properly,
as well as some related cleanups of the thermal governors and thermal
core.

The above is based on preliminary changes refactoring thermal data
structures and moving the definitions of some of them into the thermal
core which also ensure that trip point crossing notifications will be
sent to user space via netlink and recorded in the debug statistics in
temperature order.

In addition, netlink bind/unbind notifications are added to the thermal
core and the Intel HFI driver is modified to use them to avoid sending
netlink messages until there are subscribers.

Apart from that, multiple thermal drivers are updated which includes
new hardware support (MediaTek MT8188 and MT8186, Amlogic A1 thermal
sensor, Loongson-2K2000, Lmh QCM2290), fixes, cleanups and documentation
updates, and the recently added thermal debug code is fixed and cleaned
up.

Specifics:

- Redesign the thermal governor interface to allow the governors to
work in a more straightforward way (Rafael Wysocki).

- Make thermal governors take the current trip point thresholds into
account in their computations which allows trip hysteresis to be
observed more accurately (Rafael Wysocki).

- Make the thermal core manage passive polling for thermal zones and
remove passive polling management from thermal governors (Rafael
Wysocki).

- Refactor trip point representation and move the definition of
thermal governor and thermal zone device structures to the thermal
core (Rafael Wysocki).

- Sort trip point crossing notifications and debug recording of trip
point crossing events by temperature (Rafael Wysocki).

- Improve the handling of cooling device states and thermal mitigation
episodes in progress in the thermal debug code (Rafael Wysocki).

- Avoid excessive updates of trip point statistics and clean up the
printing of thermal mitigation episode information (Rafael Wysocki).

- Clean up thermal governors and thermal core (Rafael Wysocki).

- Allow thermal drivers to register notifiers that will be invoked
on netlink events like BIND and UNBIND, so that they can adjust
their activity depending on whether or not there are any
subscribers of netlink messages coming from them, and make
the Intel HFI driver use this mechanism (Stanislaw Gruszka).

- Adjust the update delay and capabilities-per-event values in the
Intel HFI thermal driver to prevent it from missing events and allow
it to process more data in one go (Ricardo Neri).

- Add missing MODULE_DESCRIPTION() to multiple files in the
int340x_thermal and intel_soc_dts_iosf drivers (Srinivas Pandruvada).

- Replace deprecated strncpy() with strscpy() in the int340x_thermal
driver (Justin Stitt).

- Add QCM2290 compatible DT bindings for Lmh and fix a NULL pointer
dereference in the lmh driver when the SCM is not present (Konrad
Dybcio).

- Use the strreplace() function instead of doing it manually in the
Armada driver (Rasmus Villemoes).

- Convert st,stih407-thermal to DT schema and fix up missing
properties (Raphael Gallais-Pou).

- Add suspend/resume by restoring the context of the tsens sensor
(Priyansh Jain).

- Support A1 SoC family Thermal Sensor controller and add the DT
bindings (Dmitry Rokosov).

- Improve the temperature approximation calculation and consolidate
the Tj constant into a shared area of the structure instead of
duplicating it on the Rcar Gen3 (Niklas Söderlund).

- Fix the Mediatek LVTS sensor coefficient for the MT8192 in order to support
it correctly (Hsin-Te Yuan).

- Fix a NULL pointer dereference in the tsens driver when the function
compute_intercept_slope() is called with a NULL parameter (Aleksandr
Mishin).

- Remove some unused fields in struct qpnp_tm_chip and k3_bandgap
(Christophe Jaillet).

- Fix up calibration efuse data decoding, consolidate the code by
checking boundaries and refactor some part of the LVTS Mediatek
driver. After setting the scene, add MT8186 and MT8188 along with
the DT bindings (Nicolas Pitre).

- Add Loongson-2K2000 support after some minor code adjustments and
providing the DT bindings definition (Binbin Zhou).

Thanks!


---------------
Aleksandr Mishin (1):
thermal/drivers/tsens: Fix null pointer dereference

Binbin Zhou (4):
thermal/drivers/loongson2: Trivial code style adjustment
dt-bindings: thermal: loongson,ls2k-thermal: Add Loongson-2K0500
compatible
dt-bindings: thermal: loongson,ls2k-thermal: Fix incorrect
compatible definition
thermal/drivers/loongson2: Add Loongson-2K2000 support

Christophe JAILLET (2):
thermal/drivers/qcom: Remove some unused fields in struct qpnp_tm_chip
thermal/drivers/k3_bandgap: Remove some unused fields in struct k3_bandgap

Dmitry Rokosov (2):
dt-bindings: thermal: amlogic: add support for A1 thermal sensor
thermal/drivers/amlogic: Support A1 SoC family Thermal Sensor controller

Hsin-Te Yuan (1):
thermal/drivers/mediatek/lvts_thermal: Add coeff for mt8192

Justin Stitt (1):
thermal: intel: int340x_thermal: replace deprecated strncpy()
with strscpy()

Konrad Dybcio (2):
dt-bindings: thermal: lmh: Add QCM2290 compatible
thermal/drivers/qcom/lmh: Check for SCM availability at probe

Nicolas Pitre (11):
thermal/drivers/mediatek/lvts_thermal: Retrieve all calibration bytes
thermal/drivers/mediatek/lvts_thermal: Move comment
thermal/drivers/mediatek/lvts_thermal: Remove .hw_tshut_temp
thermal/drivers/mediatek/lvts_thermal: Use offsets for every
calibration byte
thermal/drivers/mediatek/lvts_thermal: Guard against efuse data
buffer overflow
dt-bindings: thermal: mediatek: Add LVTS thermal controller
definition for MT8186
thermal/drivers/mediatek/lvts_thermal: Add MT8186 support
thermal/drivers/mediatek/lvts_thermal: Provision for gt variable location
thermal/drivers/mediatek/lvts_thermal: Allow early empty sensor slots
dt-bindings: thermal: mediatek: Add LVTS thermal controller
definition for MT8188
thermal/drivers/mediatek/lvts_thermal: Add MT8188 support

Niklas Söderlund (2):
thermal/drivers/rcar_gen3: Move Tj_T storage to shared private data
thermal/drivers/rcar_gen3: Update temperature approximation calculation

Priyansh Jain (1):
thermal/drivers/tsens: Add suspend to RAM support for tsens

Rafael J. Wysocki (35):
thermal: gov_step_wise: Simplify get_target_state()
thermal: gov_step_wise: Simplify checks related to passive trips
thermal: core: Move threshold out of struct thermal_trip
thermal: core: Make struct thermal_zone_device definition internal
thermal: core: Rewrite comments in handle_thermal_trip()
thermal: core: Send trip crossing notifications at init time if needed
thermal: core: Sort trip point crossing notifications by temperature
thermal: core: Relocate the struct thermal_governor definition
thermal: core: Introduce .trip_crossed() callback for thermal governors
thermal: gov_bang_bang: Use .trip_crossed() instead of .throttle()
thermal: gov_bang_bang: Clean up thermal_zone_trip_update()
thermal: gov_bang_bang: Fold thermal_zone_trip_update() into its caller
thermal: core: Introduce .manage() callback for thermal governors
thermal: gov_power_allocator: Use .manage() callback instead of
throttle()
thermal: gov_power_allocator: Eliminate a redundant variable
thermal: gov_step_wise: Use .manage() callback instead of .throttle()
thermal: gov_step_wise: Use trip thresholds instead of trip temperatures
thermal: gov_step_wise: Clean up thermal_zone_trip_update()
thermal: gov_fair_share: Use .manage() callback instead of .throttle()
thermal: gov_fair_share: Use trip thresholds instead of trip temperatures
thermal: gov_fair_share: Eliminate unnecessary integer divisions
thermal: gov_user_space: Use .trip_crossed() instead of .throttle()
thermal: core: Drop the .throttle() governor callback
thermal: core: Relocate critical and hot trip handling
thermal/debugfs: Avoid excessive updates of trip point statistics
thermal/debugfs: Clean up thermal_debug_update_temp()
thermal/debugfs: Rename thermal_debug_update_temp() to
thermal_debug_update_trip_stats()
thermal/debugfs: Make tze_seq_show() skip invalid trips and
trips with no stats
thermal: core: Introduce thermal_governor_trip_crossed()
thermal/debugfs: Create records for cdev states as they get used
thermal/debugfs: Pass cooling device state to thermal_debug_cdev_add()
thermal/debugfs: Avoid printing zero duration for mitigation
events in progress
thermal: trip: Add missing empty code line
thermal: core: Do not call handle_thermal_trip() if zone
temperature is invalid
thermal: core: Move passive polling management to the core

Raphael Gallais-Pou (1):
dt-bindings: thermal: convert st,stih407-thermal to DT schema

Rasmus Villemoes (1):
thermal/drivers/armada: Simplify name sanitization

Ricardo Neri (4):
thermal: intel: hfi: Rename HFI_UPDATE_INTERVAL
thermal: intel: hfi: Shorten the thermal netlink event delay to 100ms
thermal: intel: hfi: Rename HFI_MAX_THERM_NOTIFY_COUNT
thermal: intel: hfi: Increase the number of CPU capabilities per
netlink event

Srinivas Pandruvada (1):
thermal: intel: Add missing module description

Stanislaw Gruszka (3):
thermal: netlink: Add genetlink bind/unbind notifications
thermal: netlink: Rename thermal_gnl_family
thermal: intel: hfi: Enable HFI only when required


---------------

.../bindings/thermal/amlogic,thermal.yaml | 12 +-
.../bindings/thermal/loongson,ls2k-thermal.yaml | 24 +-
.../bindings/thermal/mediatek,lvts-thermal.yaml | 6 +
.../devicetree/bindings/thermal/qcom-lmh.yaml | 12 +-
.../bindings/thermal/st,stih407-thermal.yaml | 58 +++
.../devicetree/bindings/thermal/st-thermal.txt | 32 --
drivers/thermal/amlogic_thermal.c | 10 +
drivers/thermal/armada_thermal.c | 9 +-
drivers/thermal/gov_bang_bang.c | 97 ++---
drivers/thermal/gov_fair_share.c | 82 ++--
drivers/thermal/gov_power_allocator.c | 45 +--
drivers/thermal/gov_step_wise.c | 98 ++---
drivers/thermal/gov_user_space.c | 10 +-
.../intel/int340x_thermal/acpi_thermal_rel.c | 4 +-
.../intel/int340x_thermal/processor_thermal_mbox.c | 1 +
.../processor_thermal_power_floor.c | 1 +
.../intel/int340x_thermal/processor_thermal_rapl.c | 1 +
.../intel/int340x_thermal/processor_thermal_rfim.c | 1 +
.../int340x_thermal/processor_thermal_wt_hint.c | 1 +
.../int340x_thermal/processor_thermal_wt_req.c | 1 +
drivers/thermal/intel/intel_hfi.c | 113 +++++-
drivers/thermal/intel/intel_soc_dts_iosf.c | 1 +
drivers/thermal/k3_bandgap.c | 1 -
drivers/thermal/loongson2_thermal.c | 117 ++++--
drivers/thermal/mediatek/lvts_thermal.c | 438 +++++++++++++++------
drivers/thermal/qcom/lmh.c | 3 +
drivers/thermal/qcom/qcom-spmi-temp-alarm.c | 1 -
drivers/thermal/qcom/tsens-v2.c | 1 +
drivers/thermal/qcom/tsens.c | 33 +-
drivers/thermal/qcom/tsens.h | 5 +
drivers/thermal/rcar_gen3_thermal.c | 165 ++++----
drivers/thermal/thermal_core.c | 180 ++++++---
drivers/thermal/thermal_core.h | 121 +++++-
drivers/thermal/thermal_debugfs.c | 113 ++++--
drivers/thermal/thermal_debugfs.h | 8 +-
drivers/thermal/thermal_helpers.c | 8 +-
drivers/thermal/thermal_netlink.c | 68 +++-
drivers/thermal/thermal_netlink.h | 26 ++
drivers/thermal/thermal_sysfs.c | 20 +-
drivers/thermal/thermal_trace.h | 2 +
drivers/thermal/thermal_trace_ipa.h | 2 +
drivers/thermal/thermal_trip.c | 16 +-
.../dt-bindings/thermal/mediatek,lvts-thermal.h | 26 ++
include/linux/thermal.h | 109 +----
44 files changed, 1354 insertions(+), 728 deletions(-)


2024-05-14 21:30:39

by pr-tracker-bot

[permalink] [raw]
Subject: Re: [GIT PULL] Thermal control updates for v6.10-rc1

The pull request you sent on Mon, 13 May 2024 21:27:16 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git thermal-6.10-rc1

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/f952b6c863090464c148066df9f46cb3edd603da

Thank you!

--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html