Hi Linus, Please pull from the tag git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \ pm-6.14-rc1 with top-most commit 1c91c99075db4e31fb5cf0838ce59e80ecd51eab Merge branch 'pm-tools' on top of commit 3744b08449c27bfa085aa218c4830f3996a51626 Merge branch 'pm-cpufreq' to receive power management updates for 6.14-rc1. The majority of changes here are cpufreq updates which are dominated by amd-pstate driver changes, like in the previous cycle. Moreover, changes related to amd-pstate are also the majority of cpupower utility updates. Included are some pieces of new hardware support, like the addition of Clearwater Forest processors support to intel_idle, new cpufreq driver for Airoha SoCs, and Apple cpufreq driver extensions to support more SoCs. The intel_pstate driver is also extended to be able to support new platforms by using ACPI CPPC to compute scaling factors between HWP performance states and frequency. The rest is mostly fixes and cleanups in assorted pieces of power management code. Specifics: - Use str_enable_disable()-like helpers in cpufreq (Krzysztof Kozlowski). - Extend the Apple cpufreq driver to support more SoCs (Hector Martin, Nick Chan). - Add new cpufreq driver for Airoha SoCs (Christian Marangi). - Fix using cpufreq-dt as module (Andreas Kemnade). - Minor fixes for Sparc, SCMI, and Qcom cpufreq drivers (Ethan Carter Edwards, Sibi Sankar, Manivannan Sadhasivam). - Fix the maximum supported frequency computation in the ACPI cpufreq driver to avoid relying on unfounded assumptions (Gautham Shenoy). - Fix an amd-pstate driver regression with preferred core rankings not being used (Mario Limonciello). - Fix a precision issue with frequency calculation in the amd-pstate driver (Naresh Solanki). - Add ftrace event to the amd-pstate driver for active mode (Mario Limonciello). - Set default EPP policy on Ryzen processors in amd-pstate (Mario Limonciello). - Clean up the amd-pstate cpufreq driver and optimize it to increase code reuse (Mario Limonciello, Dhananjay Ugwekar). - Use CPPC to get scaling factors between HWP performance levels and frequency in the intel_pstate driver and make it stop using a built -in scaling factor for Arrow Lake processors (Rafael Wysocki). - Make intel_pstate initialize epp_policy to CPUFREQ_POLICY_UNKNOWN for consistency with CPU offline (Christian Loehle). - Fix superfluous updates caused by need_freq_update in the schedutil cpufreq governor (Sultan Alsawaf). - Allow configuring the system suspend-resume (DPM) watchdog to warn earlier than panic (Douglas Anderson). - Implement devm_device_init_wakeup() helper and introduce a device- managed variant of dev_pm_set_wake_irq() (Joe Hattori, Peng Fan). - Remove direct inclusions of 'pm_wakeup.h' which should be only included via 'device.h' (Wolfram Sang). - Clean up two comments in the core system-wide PM code (Rafael Wysocki, Randy Dunlap). - Add Clearwater Forest processor support to the intel_idle cpuidle driver (Artem Bityutskiy). - Clean up the Exynos devfreq driver and devfreq core (Markus Elfring, Jeongjun Park). - Minor cleanups and fixes for OPP (Dan Carpenter, Neil Armstrong, Joe Hattori). - Implement dev_pm_opp_get_bw() (Neil Armstrong). - Expose OPP reference counting helpers for Rust (Viresh Kumar). - Fix TSC MHz calculation in cpupower (He Rongguang). - Add install and uninstall options to bindings Makefile and add header changes for cpufreq.h to SWIG bindings in cpupower (John B. Wyatt IV). - Add missing residency header changes in cpuidle.h to SWIG bindings in cpupower (John B. Wyatt IV). - Add output files to .gitignore and clean them up in "make clean" in selftests/cpufreq (Li Zhijian). - Fix cross-compilation in cpupower Makefile (Peng Fan). - Revise the is_valid flag handling for idle_monitor in the cpupower utility (wangfushuai). - Extend and clean up AMD processors support in cpupower (Mario Limonciello). Thanks! --------------- Andreas Kemnade (1): cpufreq: fix using cpufreq-dt as module Artem Bityutskiy (1): intel_idle: add Clearwater Forest SoC support Christian Loehle (1): cpufreq: intel_pstate: Use CPUFREQ_POLICY_UNKNOWN Christian Marangi (2): dt-bindings: cpufreq: Document support for Airoha EN7581 CPUFreq cpufreq: airoha: Add EN7581 CPUFreq SMCCC driver Dan Carpenter (1): opp: core: Fix off by one in dev_pm_opp_get_bw() Dhananjay Ugwekar (5): cpufreq/amd-pstate: Convert the amd_pstate_get/set_epp() to static calls cpufreq/amd-pstate: Move the invocation of amd_pstate_update_perf() cpufreq/amd-pstate: Refactor amd_pstate_epp_reenable() and amd_pstate_epp_offline() cpufreq/amd-pstate: Remove the cppc_state check in offline/online functions cpufreq/amd-pstate: Merge amd_pstate_epp_cpu_offline() and amd_pstate_epp_offline() Douglas Anderson (1): PM: sleep: Allow configuring the DPM watchdog to warn earlier than panic Ethan Carter Edwards (1): cpufreq: sparc: change kzalloc to kcalloc Gautham R. Shenoy (1): cpufreq: ACPI: Fix max-frequency computation He Rongguang (1): cpupower: fix TSC MHz calculation Hector Martin (1): cpufreq: apple-soc: Drop setting the PS2 field on M2+ Jeongjun Park (1): PM / devfreq: exynos: remove unused function parameter Joe Hattori (2): PM: wakeup: implement devm_device_init_wakeup() helper OPP: OF: Fix an OF node leak in _opp_add_static_v2() John B. Wyatt IV (3): pm: cpupower: Add install and uninstall options to bindings makefile pm: cpupower: Add header changes for cpufreq.h to SWIG bindings pm: cpupower: Add missing residency header changes in cpuidle.h to SWIG Krzysztof Kozlowski (1): cpufreq: Use str_enable_disable()-like helpers Li Zhijian (1): selftests/cpufreq: gitignore output files and clean them in make clean Manivannan Sadhasivam (2): cpufreq: qcom: Fix qcom_cpufreq_hw_recalc_rate() to query LUT if LMh IRQ is not available cpufreq: qcom: Implement clk_ops::determine_rate() for qcom_cpufreq* clocks Mario Limonciello (21): cpufreq/amd-pstate: Add trace event for EPP perf updates cpufreq/amd-pstate: convert mutex use to guard() cpufreq/amd-pstate: Drop cached epp_policy variable cpufreq/amd-pstate: Use FIELD_PREP and FIELD_GET macros cpufreq/amd-pstate: Only update the cached value in msr_set_epp() on success cpufreq/amd-pstate: store all values in cpudata struct in khz cpufreq/amd-pstate: Change amd_pstate_update_perf() to return an int cpufreq/amd-pstate: Move limit updating code cpufreq/amd-pstate: Cache EPP value and use that everywhere cpufreq/amd-pstate: Always write EPP value when updating perf cpufreq/amd-pstate: Drop ret variable from amd_pstate_set_energy_pref_index() cpufreq/amd-pstate: Set different default EPP policy for Epyc and Ryzen cpufreq/amd-pstate: Drop boost_state variable cpupower: Remove spurious return statement cpupower: Add support for parsing 'enabled' or 'disabled' strings from table cpupower: Add support for amd-pstate preferred core rankings cpupower: Don't try to read frequency from hardware when kernel uses aperfmperf cpupower: Add support for showing energy performance preference cpupower: Don't fetch maximum latency when EPP is enabled cpupower: Adjust whitespace for amd-pstate specific prints cpufreq/amd-pstate: Fix prefcore rankings Markus Elfring (1): PM / devfreq: event: Call of_node_put() only once in devfreq_event_get_edev_by_phandle() Naresh Solanki (1): cpufreq/amd-pstate: Refactor max frequency calculation Neil Armstrong (3): opp: core: implement dev_pm_opp_get_bw OPP: add index check to assert to avoid buffer overflow in _read_freq() OPP: fix dev_pm_opp_find_bw_*() when bandwidth table not initialized Nick Chan (6): dt-bindings: cpufreq: apple,cluster-cpufreq: Add A7-A11, T2 compatibles cpufreq: apple-soc: Allow per-SoC configuration of APPLE_DVFS_CMD_PS1 cpufreq: apple-soc: Use 32-bit read for status register cpufreq: apple-soc: Increase cluster switch timeout to 400us cpufreq: apple-soc: Set fallback transition latency to APPLE_DVFS_TRANSITION_TIMEOUT cpufreq: apple-soc: Add Apple A7-A8X SoC cpufreq support Peng Fan (2): pm: cpupower: Makefile: Fix cross compilation PM: sleep: wakeirq: Introduce device-managed variant of dev_pm_set_wake_irq() Rafael J. Wysocki (4): PM: sleep: Update stale comment in device_resume() cpufreq: intel_pstate: Use CPPC to get scaling factors cpufreq: intel_pstate: Drop Arrow Lake from "scaling factor" list PM: EM: Move sched domains rebuild function from schedutil to EM Randy Dunlap (1): PM: sleep: convert comment from kernel-doc to plain comment Sibi Sankar (1): cpufreq: scmi: Register for limit change notifications Sultan Alsawaf (unemployed) (1): cpufreq: schedutil: Fix superfluous updates caused by need_freq_update Viresh Kumar (1): PM / OPP: Add reference counting helpers for Rust implementation Wolfram Sang (2): PM: sleep: autosleep: don't include 'pm_wakeup.h' directly PM: sleep: sysfs: don't include 'pm_wakeup.h' directly wangfushuai (1): cpupower: revise is_valid flag handling for idle_monitor --------------- .../bindings/cpufreq/airoha,en7581-cpufreq.yaml | 55 +++ .../bindings/cpufreq/apple,cluster-cpufreq.yaml | 10 +- drivers/base/power/main.c | 26 +- drivers/base/power/sysfs.c | 1 - drivers/base/power/wakeirq.c | 26 ++ drivers/cpufreq/Kconfig | 2 +- drivers/cpufreq/Kconfig.arm | 8 + drivers/cpufreq/Makefile | 1 + drivers/cpufreq/acpi-cpufreq.c | 36 +- drivers/cpufreq/airoha-cpufreq.c | 152 +++++++ drivers/cpufreq/amd-pstate-trace.h | 52 ++- drivers/cpufreq/amd-pstate-ut.c | 12 +- drivers/cpufreq/amd-pstate.c | 483 ++++++++++----------- drivers/cpufreq/amd-pstate.h | 3 - drivers/cpufreq/apple-soc-cpufreq.c | 56 ++- drivers/cpufreq/cpufreq-dt-platdev.c | 4 +- drivers/cpufreq/cpufreq.c | 9 +- drivers/cpufreq/intel_pstate.c | 60 +-- drivers/cpufreq/powernv-cpufreq.c | 3 +- drivers/cpufreq/qcom-cpufreq-hw.c | 34 +- drivers/cpufreq/scmi-cpufreq.c | 45 ++ drivers/cpufreq/sparc-us2e-cpufreq.c | 2 +- drivers/cpufreq/sparc-us3-cpufreq.c | 2 +- drivers/devfreq/devfreq-event.c | 8 +- drivers/devfreq/exynos-bus.c | 5 +- drivers/idle/intel_idle.c | 1 + drivers/opp/core.c | 99 ++++- drivers/opp/of.c | 4 +- drivers/opp/opp.h | 1 - include/linux/energy_model.h | 2 + include/linux/pm_opp.h | 13 + include/linux/pm_wakeirq.h | 6 + include/linux/pm_wakeup.h | 17 + kernel/power/Kconfig | 21 +- kernel/power/autosleep.c | 1 - kernel/power/energy_model.c | 17 + kernel/power/power.h | 2 +- kernel/sched/cpufreq_schedutil.c | 37 +- tools/power/cpupower/Makefile | 8 + tools/power/cpupower/bindings/python/Makefile | 10 + tools/power/cpupower/bindings/python/README | 25 ++ .../cpupower/bindings/python/raw_pylibcpupower.swg | 5 + tools/power/cpupower/lib/cpufreq.c | 18 + tools/power/cpupower/lib/cpufreq.h | 8 + tools/power/cpupower/utils/cpufreq-info.c | 36 +- tools/power/cpupower/utils/helpers/amd.c | 18 +- .../cpupower/utils/idle_monitor/hsw_ext_idle.c | 4 +- .../cpupower/utils/idle_monitor/mperf_monitor.c | 17 +- tools/power/cpupower/utils/idle_monitor/nhm_idle.c | 2 +- tools/power/cpupower/utils/idle_monitor/snb_idle.c | 4 +- tools/testing/selftests/cpufreq/.gitignore | 2 + tools/testing/selftests/cpufreq/Makefile | 1 + 52 files changed, 1044 insertions(+), 430 deletions(-)