[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CAJZ5v0jRGpZP4DDNVq0+27BmxhahpOHX-kZKGWxwrWy-JwQjHA@mail.gmail.com>
Date: Thu, 24 Jul 2025 14:34:55 +0200
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Linux PM <linux-pm@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>, Viresh Kumar <viresh.kumar@...aro.org>,
Mario Limonciello <mario.limonciello@....com>,
"Chanwoo Choi (samsung.com)" <chanwoo@...nel.org>, Shuah Khan <skhan@...uxfoundation.org>,
ACPI Devel Maling List <linux-acpi@...r.kernel.org>
Subject: [GIT PULL] Power management updates for v6.17-rc1
Hi Linus,
I'm sending this early because I will be mostly offline next week
and I'm not planning to add anything to it.
Please pull from the tag
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-6.17-rc1
with top-most commit 40c28199550d5cdace4583bfe723a7636b170a90
Merge branches 'pm-misc' and 'pm-tools'
on top of commit ebd6884167eac94bae9f92793fcd84069d9e4415
PM: sleep: Update power.completion for all devices on errors
to receive power management updates for 6.17-rc1.
Traditionally, cpufreq is the part with the largest number of updates
that include core fixes and cleanups as well as updates of several
assorted drivers, but there are also quite a few updates related
to system sleep, mostly focused on asynchronous suspend and resume of
devices and on making the integration of system suspend and resume with
runtime PM easier.
Runtime PM is also updated to allow some code duplication in drivers
to be eliminated going forward and to work more consistently overall
in some cases.
Apart from that, there are some driver core updates related to PM
domains that should help to address ordering issues with devm_ cleanup
routines relying on PM domains, some assorted devfreq updates including
core fixes and cleanups, tooling updates, and documentation and
MAINTAINERS updates.
Specifics:
- Fix two initialization ordering issues in the cpufreq core and a
governor initialization error path in it, and clean it up (Lifeng
Zheng)
- Add Granite Rapids support in no-HWP mode to the intel_pstate cpufreq
driver (Li RongQing)
- Make intel_pstate always use HWP_DESIRED_PERF when operating in the
passive mode (Rafael Wysocki)
- Allow building the tegra124 cpufreq driver as a module (Aaron Kling)
- Do minor cleanups for Rust cpufreq and cpumask APIs and fix MAINTAINERS
entry for cpu.rs (Abhinav Ananthu, Ritvik Gupta, Lukas Bulwahn)
- Clean up assorted cpufreq drivers (Arnd Bergmann, Dan Carpenter,
Krzysztof Kozlowski, Sven Peter, Svyatoslav Ryhel, Lifeng Zheng)
- Add the NEED_UPDATE_LIMITS flag to the CPPC cpufreq driver (Prashant
Malani)
- Fix minimum performance state label error in the amd-pstate driver
documentation (Shouye Liu)
- Add the CPUFREQ_GOV_STRICT_TARGET flag to the userspace cpufreq
governor and explain HW coordination influence on it in the
documentation (Shashank Balaji)
- Fix opencoded for_each_cpu() in idle_state_valid() in the DT cpuidle
driver (Yury Norov)
- Remove info about non-existing QoS interfaces from the PM QoS
documentation (Ulf Hansson)
- Use c_* types via kernel prelude in Rust for OPP (Abhinav Ananthu)
- Add HiSilicon uncore frequency scaling driver to devfreq (Jie Zhan)
- Allow devfreq drivers to add custom sysfs ABIs (Jie Zhan)
- Simplify the sun8i-a33-mbus devfreq driver by using more devm
functions (Uwe Kleine-König)
- Fix an index typo in trans_stat() in devfreq (Chanwoo Choi)
- Check devfreq governor before using governor->name (Lifeng Zheng)
- Remove a redundant devfreq_get_freq_range() call from
devfreq_add_device() (Lifeng Zheng)
- Limit max_freq with scaling_min_freq in devfreq (Lifeng Zheng)
- Replace sscanf() with kstrtoul() in set_freq_store() (Lifeng Zheng)
- Extend the asynchronous suspend and resume of devices to handle
suppliers like parents and consumers like children (Rafael Wysocki)
- Make pm_runtime_force_resume() work for drivers that set the
DPM_FLAG_SMART_SUSPEND flag and allow PCI drivers and drivers that
collaborate with the general ACPI PM domain to set it (Rafael
Wysocki)
- Add kernel parameter to disable asynchronous suspend/resume of
devices (Tudor Ambarus)
- Drop redundant might_sleep() calls from some functions in the device
suspend/resume core code (Zhongqiu Han)
- Fix the handling of monitors connected right before waking up the
system from sleep (tuhaowen)
- Clean up MAINTAINERS entries for suspend and hibernation (Rafael
Wysocki)
- Fix error code path in the KEXEC_JUMP flow and drop a redundant
pm_restore_gfp_mask() call from it (Rafael Wysocki)
- Rearrange suspend/resume error handling in the core device suspend
and resume code (Rafael Wysocki)
- Fix up white space that does not follow coding style in the
hibernation core code (Darshan Rathod)
- Document return values of suspend-related API functions in the
runtime PM framework (Sakari Ailus)
- Mark last busy stamp in multiple autosuspend-related functions in the
runtime PM framework and update its documentation (Sakari Ailus)
- Take active children into account in pm_runtime_get_if_in_use() for
consistency (Rafael Wysocki)
- Fix NULL pointer dereference in get_pd_power_uw() in the dtpm_cpu
power capping driver (Sivan Zohar-Kotzer)
- Add support for the Bartlett Lake platform to the Intel RAPL power
capping driver (Qiao Wei)
- Add PL4 support for Panther Lake to the intel_rapl_msr power capping
driver (Zhang Rui)
- Update contact information in the PM ABI docs and maintainer
information in the power domains DT binding (Rafael Wysocki)
- Update PM header inclusions to follow the IWYU (Include What You Use)
principle (Andy Shevchenko)
- Add flags to specify power on attach/detach for PM domains, make the
driver core detach PM domains in device_unbind_cleanup(), and drop
the dev_pm_domain_detach() call from the platform bus type (Claudiu
Beznea)
- Improve Python binding's Makefile for cpupower (John B. Wyatt IV)
- Fix printing of CORE, CPU fields in cpupower-monitor (Gautham Shenoy)
Thanks!
---------------
Aaron Kling (3):
cpufreq: Export disable_cpufreq()
cpufreq: dt: Add register helper
cpufreq: tegra124: Allow building as a module
Abhinav Ananthu (3):
rust: cpufreq: Ensure C ABI compatibility in all unsafe
rust: cpufreq: use c_ types from kernel prelude
rust: opp: use c_* types via kernel prelude
Andy Shevchenko (1):
PM: Don't use "proxy" headers
Arnd Bergmann (1):
cpufreq: armada-8k: make both cpu masks static
Chanwoo Choi (1):
PM / devfreq: Fix a index typo in trans_stat
Claudiu Beznea (3):
PM: domains: Add flags to specify power on attach/detach
PM: domains: Detach on device_unbind_cleanup()
driver core: platform: Drop dev_pm_domain_detach() call
Dan Carpenter (1):
cpufreq: armada-8k: Fix off by one in armada_8k_cpufreq_free_table()
Darshan Rathod (1):
PM: hibernate: Fix up white space that does not follow coding style
Gautham R. Shenoy (2):
pm: cpupower: Fix the snapshot-order of tsc,mperf, clock in mperf_stop()
pm: cpupower: Fix printing of CORE, CPU fields in cpupower-monitor
Jie Zhan (2):
PM / devfreq: Allow devfreq driver to add custom sysfs ABIs
PM / devfreq: Add HiSilicon uncore frequency scaling driver
John B. Wyatt IV (1):
cpupower: Improve Python binding's Makefile
Krzysztof Kozlowski (1):
cpufreq: brcmstb-avs: Fully open-code compatible for grepping
Li RongQing (1):
cpufreq: intel_pstate: Add Granite Rapids support in no-HWP mode
Lifeng Zheng (13):
cpufreq: CPPC: Remove cpu_data_list
cpufreq: CPPC: Do not return a value from populate_efficiency_class()
cpufreq: CPPC: Remove forward declaration of cppc_cpufreq_register_em()
PM / devfreq: governor: Replace sscanf() with kstrtoul() in
set_freq_store()
PM / devfreq: Limit max_freq with scaling_min_freq
PM / devfreq: Remove redundant devfreq_get_freq_range() calling
in devfreq_add_device()
PM / devfreq: Check governor before using governor->name
cpufreq: Contain scaling_cur_freq.attr in cpufreq_attrs
cpufreq: Remove duplicate check in __cpufreq_offline()
cpufreq: Initialize cpufreq-based frequency-invariance later
cpufreq: Init policy->rwsem before it may be possibly used
cpufreq: Move the check of cpufreq_driver->get into
cpufreq_verify_current_freq()
cpufreq: Exit governor when failed to start old governor
Lukas Bulwahn (1):
MAINTAINERS: adjust file entry in CPU HOTPLUG
Prashant Malani (1):
cpufreq: CPPC: Mark driver with NEED_UPDATE_LIMITS flag
Qiao Wei (1):
powercap: intel_rapl: Add support for Bartlett Lake platform
Rafael J. Wysocki (18):
PM: sleep: Make async resume handle consumers like children
PM: sleep: Make async suspend handle suppliers like parents
PM: Use true/false as power.needs_force_resume values
PM: Move two sleep-related functions under CONFIG_PM_SLEEP
PM: Make pm_runtime_force_resume() work with DPM_FLAG_SMART_SUSPEND
PM: runtime: Clear power.needs_force_resume in pm_runtime_reinit()
PM: Check power.needs_force_resume in pm_runtime_force_suspend()
PM: runtime: Introduce __rpm_get_driver_callback()
PM: sleep: Add strict_midlayer flag to struct dev_pm_info
ACPI: PM: Set/clear power.strict_midlayer in prepare/complete
PCI/PM: Set power.strict_midlayer in pci_pm_init()
cpufreq: intel_pstate: Always use HWP_DESIRED_PERF in passive mode
PM: sleep: Clean up MAINTAINERS entries for suspend and hibernation
kexec_core: Fix error code path in the KEXEC_JUMP flow
kexec_core: Drop redundant pm_restore_gfp_mask() call
PM: runtime: Take active children into account in
pm_runtime_get_if_in_use()
PM: sleep: Rearrange suspend/resume error handling in the core
PM: docs: Use my kernel.org address in ABI docs and DT bindings
Ritvik Gupta (1):
rust: cpumask: Replace `MaybeUninit` and `mem::zeroed` with `Opaque` APIs
Sakari Ailus (6):
PM: runtime: Document return values of suspend-related API functions
PM: runtime: Mark last busy stamp in pm_runtime_put_autosuspend()
PM: runtime: Mark last busy stamp in pm_runtime_put_sync_autosuspend()
PM: runtime: Mark last busy stamp in pm_runtime_autosuspend()
PM: runtime: Mark last busy stamp in pm_request_autosuspend()
Documentation: PM: *_autosuspend() functions update last busy time
Shashank Balaji (2):
cpufreq: userspace: set CPUFREQ_GOV_STRICT_TARGET flag
cpufreq: docs: userspace: Explain HW coordination influence
Sivan Zohar-Kotzer (1):
powercap: dtpm_cpu: Fix NULL pointer dereference in get_pd_power_uw()
Sven Peter (1):
cpufreq: apple: drop default ARCH_APPLE in Kconfig
Svyatoslav Ryhel (1):
drivers: cpufreq: add Tegra114 support
Tudor Ambarus (1):
PM: sleep: add kernel parameter to disable asynchronous suspend/resume
Ulf Hansson (1):
Documentation: power: Remove info about non-existing QoS interfaces
Uwe Kleine-König (1):
PM / devfreq: sun8i-a33-mbus: Simplify by using more devm functions
Yury Norov [NVIDIA] (1):
cpuidle: dt: fix opencoded for_each_cpu() in idle_state_valid()
Zhang Rui (1):
powercap: intel_rapl_msr: Add PL4 support for Panther Lake
Zhongqiu Han (1):
PM: sleep: Drop superfluous might_sleep() calls
shouyeliu (1):
Documentation: amd-pstate:fix minimum performance state label error
tuhaowen (1):
PM: sleep: console: Fix the black screen issue
---------------
Documentation/ABI/testing/sysfs-class-devfreq | 9 +
Documentation/ABI/testing/sysfs-devices-power | 34 +-
Documentation/ABI/testing/sysfs-power | 26 +-
Documentation/admin-guide/kernel-parameters.txt | 12 +
Documentation/admin-guide/pm/amd-pstate.rst | 2 +-
Documentation/admin-guide/pm/cpufreq.rst | 4 +-
.../devicetree/bindings/power/power-domain.yaml | 2 +-
Documentation/power/pm_qos_interface.rst | 7 -
Documentation/power/runtime_pm.rst | 50 +-
MAINTAINERS | 10 +-
drivers/acpi/device_pm.c | 4 +
drivers/amba/bus.c | 4 +-
drivers/base/auxiliary.c | 2 +-
drivers/base/dd.c | 2 +
drivers/base/platform.c | 9 +-
drivers/base/power/common.c | 9 +-
drivers/base/power/main.c | 155 +++--
drivers/base/power/runtime.c | 154 +++--
drivers/clk/qcom/apcs-sdx55.c | 2 +-
drivers/cpufreq/Kconfig.arm | 3 +-
drivers/cpufreq/armada-8k-cpufreq.c | 5 +-
drivers/cpufreq/brcmstb-avs-cpufreq.c | 2 +-
drivers/cpufreq/cppc_cpufreq.c | 61 +-
drivers/cpufreq/cpufreq-dt-platdev.c | 1 +
drivers/cpufreq/cpufreq-dt.c | 11 +
drivers/cpufreq/cpufreq-dt.h | 2 +
drivers/cpufreq/cpufreq.c | 56 +-
drivers/cpufreq/cpufreq_userspace.c | 1 +
drivers/cpufreq/intel_pstate.c | 6 +-
drivers/cpufreq/tegra124-cpufreq.c | 49 +-
drivers/cpuidle/dt_idle_states.c | 14 +-
drivers/devfreq/Kconfig | 11 +
drivers/devfreq/Makefile | 1 +
drivers/devfreq/devfreq.c | 23 +-
drivers/devfreq/governor_userspace.c | 6 +-
drivers/devfreq/hisi_uncore_freq.c | 658 +++++++++++++++++++++
drivers/devfreq/sun8i-a33-mbus.c | 38 +-
drivers/gpu/drm/display/drm_dp_aux_bus.c | 2 +-
drivers/i2c/i2c-core-base.c | 2 +-
drivers/mmc/core/sdio_bus.c | 2 +-
drivers/pci/pci-driver.c | 4 +
drivers/powercap/dtpm_cpu.c | 2 +
drivers/powercap/intel_rapl_common.c | 1 +
drivers/powercap/intel_rapl_msr.c | 1 +
drivers/rpmsg/rpmsg_core.c | 2 +-
drivers/soundwire/bus_type.c | 2 +-
drivers/spi/spi.c | 2 +-
drivers/tty/serdev/core.c | 2 +-
include/acpi/cppc_acpi.h | 1 -
include/linux/devfreq.h | 4 +
include/linux/device.h | 27 +
include/linux/pm.h | 13 +-
include/linux/pm_domain.h | 10 +-
include/linux/pm_runtime.h | 203 ++++++-
kernel/kexec_core.c | 4 +-
kernel/power/console.c | 7 +-
kernel/power/main.c | 9 +
kernel/power/snapshot.c | 12 +-
rust/kernel/cpufreq.rs | 60 +-
rust/kernel/cpumask.rs | 13 +-
rust/kernel/opp.rs | 8 +-
tools/power/cpupower/bindings/python/Makefile | 12 +-
.../cpupower/utils/idle_monitor/cpupower-monitor.c | 4 -
.../cpupower/utils/idle_monitor/mperf_monitor.c | 4 +-
64 files changed, 1403 insertions(+), 455 deletions(-)
Powered by blists - more mailing lists