Hi Linus, The next week will be all conference travel for me and I'll be traveling in the week after it too, so here's an early request to pull power management updates for 6.12-rc1. To receive them, please pull from the tag git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \ pm-6.12-rc1 with top-most commit 0a06811d664b8695a7612d3e59c1defb4382f4e0 Merge branches 'pm-sleep', 'pm-opp' and 'pm-tools' on top of commit da3ea35007d0af457a0afc87e84fddaebc4e0b63 Linux 6.11-rc7 By the number of new lines of code, the most visible change here is the addition of hybrid CPU capacity scaling support to the intel_pstate driver. Next are the amd-pstate driver changes related to the calculation of the AMD boost numerator and preferred core detection. As far as new hardware support is concerned, the intel_idle driver will now handle Granite Rapids Xeon processors natively, the intel_rapl power capping driver will recognize family 1Ah of AMD processors and Intel ArrowLake-U chipos, and intel_pstate will handle Granite Rapids and Sierra Forest chips in the out-of-band (OOB) mode. Apart from the above, there is a usual collection of assorted fixes and code cleanups in many places and there are tooling updates. Specifics: - Remove LATENCY_MULTIPLIER from cpufreq (Qais Yousef). - Add support for Granite Rapids and Sierra Forest in OOB mode to the intel_pstate cpufreq driver (Srinivas Pandruvada). - Add basic support for CPU capacity scaling on x86 and make the intel_pstate driver set asymmetric CPU capacity on hybrid systems without SMT (Rafael Wysocki). - Add missing MODULE_DESCRIPTION() macros to the powerpc cpufreq driver (Jeff Johnson). - Several OF related cleanups in cpufreq drivers (Rob Herring). - Enable COMPILE_TEST for ARM drivers (Rob Herring). - Introduce quirks for syscon failures and use socinfo to get revision for TI cpufreq driver (Dhruva Gole, Nishanth Menon). - Minor cleanups in amd-pstate driver (Anastasia Belova, Dhananjay Ugwekar). - Minor cleanups for loongson, cpufreq-dt and powernv cpufreq drivers (Danila Tikhonov, Huacai Chen, and Liu Jing). - Make amd-pstate validate return of any attempt to update EPP limits, which fixes the masking hardware problems (Mario Limonciello). - Move the calculation of the AMD boost numerator outside of amd-pstate, correcting acpi-cpufreq on systems with preferred cores (Mario Limonciello). - Harden preferred core detection in amd-pstate to avoid potential false positives (Mario Limonciello). - Add extra unit test coverage for mode state machine (Mario Limonciello). - Fix an "Uninitialized variables" issue in amd-pstate (Qianqiang Liu). - Add Granite Rapids Xeon support to intel_idle (Artem Bityutskiy). - Disable promotion to C1E on Jasper Lake and Elkhart Lake in intel_idle (Kai-Heng Feng). - Use scoped device node handling to fix missing of_node_put() and simplify walking OF children in the riscv-sbi cpuidle driver (Krzysztof Kozlowski). - Remove dead code from cpuidle_enter_state() (Dhruva Gole). - Change an error pointer to NULL to fix error handling in the intel_rapl power capping driver (Dan Carpenter). - Fix off by one in get_rpi() in the intel_rapl power capping driver (Dan Carpenter). - Add support for ArrowLake-U to the intel_rapl power capping driver (Sumeet Pawnikar). - Fix the energy-pkg event for AMD CPUs in the intel_rapl power capping driver (Dhananjay Ugwekar). - Add support for AMD family 1Ah processors to the intel_rapl power capping driver (Dhananjay Ugwekar). - Remove unused stub for saveable_highmem_page() and remove deprecated macros from power management documentation (Andy Shevchenko). - Use ysfs_emit() and sysfs_emit_at() in "show" functions in the PM sysfs interface (Xueqin Luo). - Update the maintainers information for the operating-points-v2-ti-cpu DT binding (Dhruva Gole). - Drop unnecessary of_match_ptr() from ti-opp-supply (Rob Herring). - Add missing MODULE_DESCRIPTION() macros to devfreq governors (Jeff Johnson). - Use devm_clk_get_enabled() in the exynos-bus devfreq driver (Anand Moon). - Use of_property_present() instead of of_get_property() in the imx-bus devfreq driver (Rob Herring). - Update directory handling and installation process in the pm-graph Makefile and add .gitignore to ignore sleepgraph.py artifacts to pm-graph (Amit Vadhavana, Yo-Jung Lin). - Make cpupower display residency value in idle-info (Aboorva Devarajan). - Add missing powercap_set_enabled() stub function to cpupower (John B. Wyatt IV). - Add SWIG support to cpupower (John B. Wyatt IV). Thanks! --------------- Aboorva Devarajan (1): tools/cpupower: display residency value in idle-info Amit Vadhavana (1): pm-graph: Update directory handling and installation process in Makefile Anand Moon (1): PM / devfreq: exynos: Use Use devm_clk_get_enabled() helpers Anastasia Belova (1): cpufreq: amd-pstate: add check for cpufreq_cpu_get's return value Andy Shevchenko (2): Documentation: PM: Discourage use of deprecated macros PM: hibernate: Remove unused stub for saveable_highmem_page() Artem Bityutskiy (1): intel_idle: add Granite Rapids Xeon support Dan Carpenter (2): powercap: intel_rapl: Fix off by one in get_rpi() powercap: intel_rapl: Change an error pointer to NULL Danila Tikhonov (1): cpufreq: Add SM7325 to cpufreq-dt-platdev blocklist Dhananjay Ugwekar (3): powercap/intel_rapl: Add support for AMD family 1Ah powercap/intel_rapl: Fix the energy-pkg event for AMD CPUs cpufreq/amd-pstate: Add the missing cpufreq_cpu_put() Dhruva Gole (3): cpuidle: remove dead code from cpuidle_enter_state() dt-bindings: opp: operating-points-v2-ti-cpu: Update maintainers cpufreq: ti-cpufreq: Use socinfo to get revision in AM62 family Huacai Chen (1): cpufreq: loongson3: Use raw_smp_processor_id() in do_service_request() Jeff Johnson (2): cpufreq: powerpc: add missing MODULE_DESCRIPTION() macros PM/devfreq: governor: add missing MODULE_DESCRIPTION() macros John B. Wyatt IV (5): pm:cpupower: Add missing powercap_set_enabled() stub function pm:cpupower: Add SWIG bindings files for libcpupower pm:cpupower: Include test_raw_pylibcpupower.py MAINTAINERS: Add Maintainers for SWIG Python bindings pm:cpupower: Add error warning when SWIG is not installed Kai-Heng Feng (1): intel_idle: Disable promotion to C1E on Jasper Lake and Elkhart Lake Krzysztof Kozlowski (2): cpuidle: riscv-sbi: Use scoped device node handling to fix missing of_node_put cpuidle: riscv-sbi: Simplify with scoped for each OF child loop Liu Jing (1): cpufreq: Fix the cacography in powernv-cpufreq.c Mario Limonciello (14): cpufreq/amd-pstate: Catch failures for amd_pstate_epp_update_limit() x86/amd: Move amd_get_highest_perf() from amd.c to cppc.c ACPI: CPPC: Adjust return code for inline functions in !CONFIG_ACPI_CPPC_LIB x86/amd: Rename amd_get_highest_perf() to amd_get_boost_ratio_numerator() ACPI: CPPC: Drop check for non zero perf ratio ACPI: CPPC: Adjust debug messages in amd_set_max_freq_ratio() to warn x86/amd: Move amd_get_highest_perf() out of amd-pstate x86/amd: Detect preferred cores in amd_get_boost_ratio_numerator() cpufreq: amd-pstate: Merge amd_pstate_highest_perf_set() into amd_get_boost_ratio_numerator() cpufreq: amd-pstate: Optimize amd_pstate_update_limits() cpufreq: amd-pstate: Add documentation for `amd_pstate_hw_prefcore` amd-pstate: Add missing documentation for `amd_pstate_prefcore_ranking` cpufreq/amd-pstate: Export symbols for changing modes cpufreq/amd-pstate-ut: Add test case for mode switches Nishanth Menon (1): cpufreq: ti-cpufreq: Introduce quirks to handle syscon fails appropriately Qais Yousef (1): cpufreq: Remove LATENCY_MULTIPLIER Qianqiang Liu (1): cpufreq/amd-pstate-ut: Fix an "Uninitialized variables" issue Rafael J. Wysocki (2): x86/sched: Add basic support for CPU capacity scaling cpufreq: intel_pstate: Set asymmetric CPU capacity on hybrid systems Rob Herring (Arm) (10): cpufreq: Use of_property_present() cpufreq: spear: Use of_property_for_each_u32() instead of open coding cpufreq: qcom: Add explicit io.h include for readl/writel_relaxed cpufreq: omap: Drop asm includes cpufreq: armada-8k: Avoid excessive stack usage opp: ti: Drop unnecessary of_match_ptr() cpufreq: Enable COMPILE_TEST on Arm drivers cpufreq: Drop CONFIG_ARM and CONFIG_ARM64 dependency on Arm drivers cpufreq: Fix warning on unused of_device_id tables for !CONFIG_OF PM / devfreq: imx-bus: Use of_property_present() Srinivas Pandruvada (1): cpufreq: intel_pstate: Support Granite Rapids and Sierra Forest OOB mode Sumeet Pawnikar (1): powercap: intel_rapl: Add support for ArrowLake-U platform Xueqin Luo (2): PM: hibernate: Use sysfs_emit() and sysfs_emit_at() in "show" functions PM: sleep: Use sysfs_emit() and sysfs_emit_at() in "show" functions Yo-Jung (Leo) Lin (1): pm-graph: Make git ignore sleepgraph.py artifacts --------------- Documentation/admin-guide/pm/amd-pstate.rst | 15 +- .../bindings/opp/operating-points-v2-ti-cpu.yaml | 2 +- Documentation/power/pci.rst | 11 +- Documentation/power/runtime_pm.rst | 4 +- MAINTAINERS | 3 + arch/x86/include/asm/processor.h | 3 - arch/x86/include/asm/topology.h | 13 ++ arch/x86/kernel/acpi/cppc.c | 172 +++++++++++++- arch/x86/kernel/cpu/amd.c | 16 -- arch/x86/kernel/cpu/aperfmperf.c | 89 +++++++- drivers/cpufreq/Kconfig | 2 - drivers/cpufreq/Kconfig.arm | 50 +++-- drivers/cpufreq/acpi-cpufreq.c | 12 +- drivers/cpufreq/amd-pstate-ut.c | 41 +++- drivers/cpufreq/amd-pstate.c | 181 ++++++--------- drivers/cpufreq/amd-pstate.h | 14 ++ drivers/cpufreq/apple-soc-cpufreq.c | 2 +- drivers/cpufreq/armada-8k-cpufreq.c | 2 +- drivers/cpufreq/cpufreq-dt-platdev.c | 1 + drivers/cpufreq/cpufreq-dt.c | 11 +- drivers/cpufreq/cpufreq.c | 27 +-- drivers/cpufreq/intel_pstate.c | 240 +++++++++++++++++++- drivers/cpufreq/loongson3_cpufreq.c | 2 +- drivers/cpufreq/maple-cpufreq.c | 1 + drivers/cpufreq/mediatek-cpufreq.c | 2 +- drivers/cpufreq/omap-cpufreq.c | 3 - drivers/cpufreq/pasemi-cpufreq.c | 1 + drivers/cpufreq/pmac64-cpufreq.c | 3 +- drivers/cpufreq/powernv-cpufreq.c | 3 +- drivers/cpufreq/ppc_cbe_cpufreq.c | 1 + drivers/cpufreq/qcom-cpufreq-hw.c | 1 + drivers/cpufreq/qcom-cpufreq-nvmem.c | 2 +- drivers/cpufreq/spear-cpufreq.c | 18 +- drivers/cpufreq/sti-cpufreq.c | 2 +- drivers/cpufreq/sun50i-cpufreq-nvmem.c | 2 +- drivers/cpufreq/ti-cpufreq.c | 31 ++- drivers/cpuidle/cpuidle-riscv-sbi.c | 28 +-- drivers/cpuidle/cpuidle.c | 5 +- drivers/devfreq/exynos-bus.c | 22 +- drivers/devfreq/governor_performance.c | 1 + drivers/devfreq/governor_powersave.c | 1 + drivers/devfreq/governor_simpleondemand.c | 1 + drivers/devfreq/governor_userspace.c | 1 + drivers/devfreq/imx-bus.c | 2 +- drivers/idle/intel_idle.c | 60 ++++- drivers/opp/ti-opp-supply.c | 2 +- drivers/powercap/intel_rapl_common.c | 38 +++- include/acpi/cppc_acpi.h | 41 ++-- include/linux/cpufreq.h | 6 - kernel/power/hibernate.c | 26 ++- kernel/power/main.c | 76 ++++--- kernel/power/snapshot.c | 5 - tools/power/cpupower/bindings/python/.gitignore | 8 + tools/power/cpupower/bindings/python/Makefile | 33 +++ tools/power/cpupower/bindings/python/README | 59 +++++ .../cpupower/bindings/python/raw_pylibcpupower.i | 247 +++++++++++++++++++++ .../bindings/python/test_raw_pylibcpupower.py | 42 ++++ tools/power/cpupower/lib/cpuidle.c | 8 + tools/power/cpupower/lib/cpuidle.h | 2 + tools/power/cpupower/lib/powercap.c | 8 + tools/power/cpupower/utils/cpuidle-info.c | 4 + tools/power/pm-graph/.gitignore | 3 + tools/power/pm-graph/Makefile | 111 +++++---- 63 files changed, 1416 insertions(+), 407 deletions(-)