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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Hi Linus,

Please pull from the tag

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

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

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


 - 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

 - 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

 - 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

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


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

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux