[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CAJZ5v0j8M0=M3hO3kJKRPA4Q99TgQODRxPoSu5RFe6qV4Cv_-w@mail.gmail.com>
Date: Thu, 5 Feb 2026 20:37:01 +0100
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Linux PM <linux-pm@...r.kernel.org>,
ACPI Devel Maling List <linux-acpi@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>, Viresh Kumar <viresh.kumar@...aro.org>,
Shuah Khan <shuah@...nel.org>
Subject: [GIT PULL] Power management updates for v6.20-rc1/v7.0-rc1
Hi Linus,
This goes a bit early, but it's ready.
Please pull from the tag
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-6.20-rc1
with top-most commit 0f64b6acb0e14559daf1de7be5dbcee3874512aa
Merge branch 'pm-tools'
on top of commit 1730daa3b425ea8c88ae599af6e1a4957bd2d81a
Merge tag 'cpufreq-arm-fixes-6.19-rc8' of
git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm
to receive power management updates for 6.20-rc1/7.0-rc1 (whichever it
turns out to be).
By the number of commits, cpufreq is the leading party (again) and the
most visible change there is the removal of the omap-cpufreq driver
that has not been used for a long time (good riddance). There are also
quite a few changes in the cppc_cpufreq driver, mostly related to fixing
its frequency invariance engine in the case when the CPPC registers
used by it are not in PCC. In addition to that, support for AM62L3 is
added to the ti-cpufreq driver and the cpufreq-dt-platdev list is
updated for some platforms. The remaining cpufreq changes are assorted
fixes and cleanups.
Next up is cpuidle and the changes there are dominated by intel_idle
driver updates, mostly related to the new command line facility allowing
users to adjust the list of C-states used by the driver. There are also
a few updates of cpuidle governors, including two menu governor fixes
and some refinements of the teo governor, and a MAINTAINERS update
adding Christian Loehle as a cpuidle reviewer. [Thanks for stepping up
Christian!]
The most significant update related to system suspend and hibernation
is the one to stop freezing the PM runtime workqueue during system PM
transitions which allows some deadlocks to be avoided. There is also
a fix for possible concurrent bit field updates in the core device
suspend code and a few other minor fixes.
Apart from the above, several drivers are updated to discard the return
value of pm_runtime_put() which is going to be converted to a void
function as soon as everybody stops using its return value, PL4 support
for Ice Lake is added to the Intel RAPL power capping driver, and there
are assorted cleanups, documentation fixes, and some cpupower utility
improvements.
Specifics:
- Remove the unused omap-cpufreq driver (Andreas Kemnade)
- Optimize error handling code in cpufreq_boost_trigger_state() and
make cpufreq_boost_trigger_state() return -EOPNOTSUPP if no policy
supports boost (Lifeng Zheng)
- Update cpufreq-dt-platdev list for tegra, qcom, TI (Aaron Kling,
Dhruva Gole, and Konrad Dybcio)
- Minor improvements to the cpufreq and cpumask rust implementation
(Alexandre Courbot, Alice Ryhl, Tamir Duberstein, and Yilin Chen)
- Add support for AM62L3 SoC to the ti-cpufreq driver (Dhruva Gole)
- Update arch_freq_scale in the CPPC cpufreq driver's frequency
invariance engine (FIE) in scheduler ticks if the related CPPC
registers are not in PCC (Jie Zhan)
- Assorted minor cleanups and improvements in ARM cpufreq drivers (Juan
Martinez, Felix Gu, Luca Weiss, and Sergey Shtylyov)
- Add generic helpers for sysfs show/store to cppc_cpufreq (Sumit
Gupta)
- Make the scaling_setspeed cpufreq sysfs attribute return the actual
requested frequency to avoid confusion (Pengjie Zhang)
- Simplify the idle CPU time granularity test in the ondemand cpufreq
governor (Frederic Weisbecker)
- Enable asym capacity in intel_pstate only when CPU SMT is not
possible (Yaxiong Tian)
- Update the description of rate_limit_us default value in cpufreq
documentation (Yaxiong Tian)
- Add a command line option to adjust the C-states table in the
intel_idle driver, remove the 'preferred_cstates' module parameter
from it, add C-states validation to it and clean it up (Artem
Bityutskiy)
- Make the menu cpuidle governor always check the time till the closest
timer event when the scheduler tick has been stopped to prevent it
from mistakenly selecting the deepest available idle state (Rafael
Wysocki)
- Update the teo cpuidle governor to avoid making suboptimal decisions
in certain corner cases and generally improve idle state selection
accuracy (Rafael Wysocki)
- Remove an unlikely() annotation on the early-return condition in
menu_select() that leads to branch misprediction 100% of the time
on systems with only 1 idle state enabled, like ARM64 servers (Breno
Leitao)
- Add Christian Loehle to MAINTAINERS as a cpuidle reviewer (Christian
Loehle)
- Stop flagging the PM runtime workqueue as freezable to avoid system
suspend and resume deadlocks in subsystems that assume asynchronous
runtime PM to work during system-wide PM transitions (Rafael Wysocki)
- Drop redundant NULL pointer checks before acomp_request_free() from
the hibernation code handling image saving (Rafael Wysocki)
- Update wakeup_sources_walk_start() to handle empty lists of wakeup
sources as appropriate (Samuel Wu)
- Make dev_pm_clear_wake_irq() check the power.wakeirq value under
power.lock to avoid race conditions (Gui-Dong Han)
- Avoid bit field races related to power.work_in_progress in the core
device suspend code (Xuewen Yan)
- Make several drivers discard pm_runtime_put() return value in
preparation for converting that function to a void one (Rafael
Wysocki)
- Add PL4 support for Ice Lake to the Intel RAPL power capping
driver (Daniel Tang)
- Replace sprintf() with sysfs_emit() in power capping sysfs show
functions (Sumeet Pawnikar)
- Make dev_pm_opp_get_level() return value match the documentation
after a previous update of the latter (Aleks Todorov)
- Use scoped for each OF child loop in the OPP code (Krzysztof
Kozlowski)
- Fix a bug in an example code snippet and correct typos in the energy
model management documentation (Patrick Little)
- Fix miscellaneous problems in cpupower (Kaushlendra Kumar):
* idle_monitor: Fix incorrect value logged after stop
* Fix inverted APERF capability check
* Use strcspn() to strip trailing newline
* Reset errno before strtoull()
* Show C0 in idle-info dump
- Improve cpupower installation procedure by making the systemd step
optional and allowing users to disable the installation of systemd's
unit file (João Marcos Costa)
Thanks!
---------------
Aaron Kling (1):
cpufreq: Add Tegra186 and Tegra194 to cpufreq-dt-platdev blocklist
Aleks Todorov (1):
OPP: Return correct value in dev_pm_opp_get_level
Alexandre Courbot (1):
rust: cpufreq: always inline functions using build_assert with arguments
Alice Ryhl (1):
rust: cpufreq: add __rust_helper to helpers
Andreas Kemnade (2):
cpufreq: omap: remove driver
MAINTAINERS: remove omap-cpufreq
Artem Bityutskiy (5):
intel_idle: Remove unused driver version constant
intel_idle: Remove the 'preferred_cstates' parameter
intel_idle: Initialize sysfs after cpuidle driver initialization
intel_idle: Add cmdline option to adjust C-states table
intel_idle: Add C-states validation
Breno Leitao (1):
cpuidle: menu: Remove incorrect unlikely() annotation
Christian Loehle (1):
MAINTAINERS: Add myself as cpuidle reviewer
Daniel Tang (1):
powercap: intel_rapl: Add PL4 support for Ice Lake
Dhruva Gole (2):
cpufreq: dt-platdev: Add ti,am62l3 to blocklist
cpufreq: ti-cpufreq: add support for AM62L3 SoC
Felix Gu (1):
cpufreq: scmi: Fix device_node reference leak in scmi_cpu_domain_id()
Frederic Weisbecker (1):
cpufreq: ondemand: Simplify idle cputime granularity test
Gui-Dong Han (1):
PM: sleep: wakeirq: harden dev_pm_clear_wake_irq() against races
Jie Zhan (3):
ACPI: CPPC: Factor out and export per-cpu cppc_perf_ctrs_in_pcc_cpu()
cpufreq: CPPC: Factor out cppc_fie_kworker_init()
cpufreq: CPPC: Update FIE arch_freq_scale in ticks for non-PCC regs
João Marcos Costa (1):
cpupower: make systemd unit installation optional
Juan Martinez (1):
cpufreq/amd-pstate: Add comment explaining nominal_perf usage
for performance policy
Kaushlendra Kumar (5):
cpupower: idle_monitor: fix incorrect value logged after stop
tools/cpupower: Fix inverted APERF capability check
tools/cpupower: Use strcspn() to strip trailing newline
tools/power cpupower: Reset errno before strtoull()
tools/power cpupower: Show C0 in idle-info dump
Konrad Dybcio (1):
cpufreq: dt-platdev: Block the driver from probing on more QC platforms
Krzysztof Kozlowski (1):
OPP: of: Simplify with scoped for each OF child loop
Lifeng Zheng (2):
cpufreq: Return -EOPNOTSUPP if no policy supports boost
cpufreq: cpufreq_boost_trigger_state() optimization
Luca Weiss (1):
dt-bindings: cpufreq: qcom-hw: document Milos CPUFREQ Hardware
Patrick Little (2):
Documentation: Fix typos in energy model documentation
PM: EM: Documentation: Fix bug in example code snippet
Pengjie Zhang (1):
cpufreq: userspace: make scaling_setspeed return the actual
requested frequency
Rafael J. Wysocki (19):
PM: sleep: Do not flag runtime PM workqueue as freezable
USB: core: Discard pm_runtime_put() return value
drm/imagination: Discard pm_runtime_put() return value
media: ccs: Discard pm_runtime_put() return value
watchdog: rz: Discard pm_runtime_put() return values
watchdog: rzv2h_wdt: Discard pm_runtime_put() return value
hwspinlock: omap: Discard pm_runtime_put() return value
coresight: Discard pm_runtime_put() return values
platform/chrome: cros_hps_i2c: Discard pm_runtime_put() return value
scsi: ufs: core: Discard pm_runtime_put() return values
genirq/chip: Change irq_chip_pm_put() return type to void
drm: Discard pm_runtime_put() return value
cpuidle: governors: menu: Always check timers with tick stopped
cpuidle: governors: teo: Avoid selecting states with zero-size bins
cpuidle: governors: teo: Avoid fake intercepts produced by tick
cpuidle: governors: teo: Refine tick_intercepts vs total events check
PM: hibernate: Drop NULL pointer checks before acomp_request_free()
cpuidle: governors: teo: Adjust the classification of wakeup events
cpuidle: governors: teo: Refine intercepts-based idle state lookup
Samuel Wu (1):
PM: wakeup: Handle empty list in wakeup_sources_walk_start()
Sergey Shtylyov (1):
cpufreq: scmi: correct SCMI explanation
Sumeet Pawnikar (1):
powercap: Replace sprintf() with sysfs_emit() in sysfs show functions
Sumit Gupta (1):
cpufreq: CPPC: Add generic helpers for sysfs show/store
Tamir Duberstein (1):
rust: cpufreq: replace `kernel::c_str!` with C-Strings
Xuewen Yan (1):
PM: sleep: core: Avoid bit field races related to work_in_progress
Yaxiong Tian (2):
cpufreq: intel_pstate: Enable asym capacity only when CPU SMT is
not possible
cpufreq: Documentation: Update description of rate_limit_us default value
Yilin Chen (1):
rust: cpumask: rename methods of Cpumask for clarity and consistency
---------------
Documentation/admin-guide/pm/cpufreq.rst | 2 +-
.../bindings/cpufreq/cpufreq-qcom-hw.yaml | 2 +
Documentation/power/energy-model.rst | 18 +-
Documentation/power/runtime_pm.rst | 7 +-
Documentation/scheduler/sched-energy.rst | 8 +-
MAINTAINERS | 2 +-
drivers/acpi/cppc_acpi.c | 48 ++--
drivers/base/power/main.c | 7 +-
drivers/base/power/wakeirq.c | 9 +-
drivers/base/power/wakeup.c | 4 +-
drivers/cpufreq/Kconfig.arm | 5 -
drivers/cpufreq/Makefile | 1 -
drivers/cpufreq/amd-pstate.c | 13 +
drivers/cpufreq/cppc_cpufreq.c | 164 +++++++------
drivers/cpufreq/cpufreq-dt-platdev.c | 6 +
drivers/cpufreq/cpufreq.c | 13 +-
drivers/cpufreq/cpufreq_ondemand.c | 7 +-
drivers/cpufreq/cpufreq_userspace.c | 4 +-
drivers/cpufreq/intel_pstate.c | 2 +-
drivers/cpufreq/omap-cpufreq.c | 195 ---------------
drivers/cpufreq/rcpufreq_dt.rs | 5 +-
drivers/cpufreq/scmi-cpufreq.c | 3 +-
drivers/cpufreq/ti-cpufreq.c | 34 ++-
drivers/cpuidle/governors/menu.c | 24 +-
drivers/cpuidle/governors/teo.c | 98 ++++++--
drivers/gpu/drm/arm/malidp_crtc.c | 6 +-
drivers/gpu/drm/bridge/imx/imx8qm-ldb.c | 4 +-
drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c | 4 +-
.../gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c | 5 +-
drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c | 5 +-
drivers/gpu/drm/imagination/pvr_power.h | 4 +-
drivers/gpu/drm/imx/dc/dc-crtc.c | 12 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 5 +-
drivers/gpu/drm/vc4/vc4_vec.c | 12 +-
drivers/hwspinlock/omap_hwspinlock.c | 4 +-
drivers/hwtracing/coresight/coresight-cpu-debug.c | 12 +-
drivers/idle/intel_idle.c | 268 +++++++++++++++++----
drivers/media/i2c/ccs/ccs-core.c | 4 +-
drivers/opp/core.c | 2 +-
drivers/opp/of.c | 4 +-
drivers/platform/chrome/cros_hps_i2c.c | 4 +-
drivers/powercap/intel_rapl_msr.c | 1 +
drivers/powercap/powercap_sys.c | 13 +-
drivers/ufs/core/ufshcd-priv.h | 4 +-
drivers/usb/core/driver.c | 8 +-
drivers/watchdog/rzg2l_wdt.c | 4 +-
drivers/watchdog/rzv2h_wdt.c | 8 +-
include/acpi/cppc_acpi.h | 5 +
include/linux/irq.h | 2 +-
include/linux/pm.h | 2 +-
include/linux/tick.h | 2 +
kernel/irq/chip.c | 22 +-
kernel/power/main.c | 2 +-
kernel/power/swap.c | 8 +-
kernel/time/hrtimer.c | 2 +-
kernel/time/tick-internal.h | 2 -
kernel/time/tick-sched.c | 8 +-
kernel/time/timer.c | 2 +-
rust/helpers/cpufreq.c | 3 +-
rust/kernel/cpufreq.rs | 5 +-
rust/kernel/cpumask.rs | 10 +-
tools/power/cpupower/Makefile | 17 +-
tools/power/cpupower/lib/cpuidle.c | 7 +-
tools/power/cpupower/utils/cpufreq-info.c | 2 +-
tools/power/cpupower/utils/cpuidle-info.c | 2 +-
.../cpupower/utils/idle_monitor/cpuidle_sysfs.c | 2 +-
66 files changed, 633 insertions(+), 546 deletions(-)
Powered by blists - more mailing lists