Hi Linus, I'm sending this ahead of time, because I will be traveling next week and I don't want to delay the integration of the changes below just because of my absence. Please pull from the tag git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \ pm-6.3-rc1 with top-most commit dd855f01e8d194d2dfeda36b620203c623c10430 Merge branches 'pm-tools' and 'pm-docs' on top of commit 6f098cde9df2c86d60db727d6270272751943674 cpufreq: qcom-hw: Add missing null pointer check to receive power management updates for 6.3-rc1. These add EPP support to the AMD P-state cpufreq driver, add support for new platforms to the Intel RAPL power capping driver, intel_idle and the Qualcomm cpufreq driver, enable thermal cooling for Tegra194, drop the custom cpufreq driver for loongson1 that is not necessary any more (and the corresponding cpufreq platform device), fix assorted issues and clean up code. Specifics: - Add EPP support to the AMD P-state cpufreq driver (Perry Yuan, Wyes Karny, Arnd Bergmann, Bagas Sanjaya). - Drop the custom cpufreq driver for loongson1 that is not necessary any more and the corresponding cpufreq platform device (Keguang Zhang). - Remove "select SRCU" from system sleep, cpufreq and OPP Kconfig entries (Paul E. McKenney). - Enable thermal cooling for Tegra194 (Yi-Wei Wang). - Register module device table and add missing compatibles for cpufreq-qcom-hw (Nícolas F. R. A. Prado, Abel Vesa and Luca Weiss). - Various dt binding updates for qcom-cpufreq-nvmem and opp-v2-kryo-cpu (Christian Marangi). - Make kobj_type structure in the cpufreq core constant (Thomas Weißschuh). - Make cpufreq_unregister_driver() return void (Uwe Kleine-König). - Make the TEO cpuidle governor check CPU utilization in order to refine idle state selection (Kajetan Puchalski). - Make Kconfig select the haltpoll cpuidle governor when the haltpoll cpuidle driver is selected and replace a default_idle() call in that driver with arch_cpu_idle() to allow MWAIT to be used (Li RongQing). - Add Emerald Rapids Xeon support to the intel_idle driver (Artem Bityutskiy). - Add ARCH_SUSPEND_POSSIBLE dependencies for ARMv4 cpuidle drivers to avoid randconfig build failures (Arnd Bergmann). - Make kobj_type structures used in the cpuidle sysfs interface constant (Thomas Weißschuh). - Make the cpuidle driver registration code update microsecond values of idle state parameters in accordance with their nanosecond values if they are provided (Rafael Wysocki). - Make the PSCI cpuidle driver prevent topology CPUs from being suspended on PREEMPT_RT (Krzysztof Kozlowski). - Document that pm_runtime_force_suspend() cannot be used with DPM_FLAG_SMART_SUSPEND (Richard Fitzgerald). - Add EXPORT macros for exporting PM functions from drivers (Richard Fitzgerald). - Remove /** from non-kernel-doc comments in hibernation code (Randy Dunlap). - Fix possible name leak in powercap_register_zone() (Yang Yingliang). - Add Meteor Lake and Emerald Rapids support to the intel_rapl power capping driver (Zhang Rui). - Modify the idle_inject power capping facility to support 100% idle injection (Srinivas Pandruvada). - Fix large time windows handling in the intel_rapl power capping driver (Zhang Rui). - Fix memory leaks with using debugfs_lookup() in the generic PM domains and Energy Model code (Greg Kroah-Hartman). - Add missing 'cache-unified' property in the example for kryo OPP bindings (Rob Herring). - Fix error checking in opp_migrate_dentry() (Qi Zheng). - Let qcom,opp-fuse-level be a 2-long array for qcom SoCs (Konrad Dybcio). - Modify some power management utilities to use the canonical ftrace path (Ross Zwisler). - Correct spelling problems for Documentation/power/ as reported by codespell (Randy Dunlap). Thanks! --------------- Abel Vesa (1): dt-bindings: cpufreq: cpufreq-qcom-hw: Add SM8550 compatible Arnd Bergmann (2): cpufreq: amd-pstate: avoid uninitialized variable use cpuidle: add ARCH_SUSPEND_POSSIBLE dependencies Artem Bityutskiy (1): intel_idle: add Emerald Rapids Xeon support Bagas Sanjaya (1): Documentation: amd-pstate: disambiguate user space sections Christian Marangi (3): dt-bindings: cpufreq: qcom-cpufreq-nvmem: specify supported opp tables dt-bindings: cpufreq: qcom-cpufreq-nvmem: make cpr bindings optional dt-bindings: opp: opp-v2-kryo-cpu: enlarge opp-supported-hw maximum Greg Kroah-Hartman (2): PM: domains: fix memory leak with using debugfs_lookup() PM: EM: fix memory leak with using debugfs_lookup() Kajetan Puchalski (2): cpuidle: teo: Optionally skip polling states in teo_find_shallower_state() cpuidle: teo: Introduce util-awareness Keguang Zhang (2): cpufreq: loongson1: Delete obsolete driver MIPS: loongson32: Drop obsolete cpufreq platform device Konrad Dybcio (1): dt-bindings: opp: v2-qcom-level: Let qcom,opp-fuse-level be a 2-long array Krzysztof Kozlowski (1): cpuidle: psci: Do not suspend topology CPUs on PREEMPT_RT Li RongQing (2): cpuidle-haltpoll: select haltpoll governor cpuidle-haltpoll: Replace default_idle() with arch_cpu_idle() Luca Weiss (1): dt-bindings: cpufreq: cpufreq-qcom-hw: Add missing compatibles Nícolas F. R. A. Prado (1): cpufreq: mediatek-hw: Register to module device table Paul E. McKenney (3): drivers/opp: Remove "select SRCU" drivers/cpufreq: Remove "select SRCU" PM: sleep: Remove "select SRCU" Perry Yuan (10): ACPI: CPPC: Add AMD pstate energy performance preference cppc control Documentation: amd-pstate: add EPP profiles introduction cpufreq: amd-pstate: implement Pstate EPP support for the AMD processors cpufreq: amd-pstate: implement amd pstate cpu online and offline callback cpufreq: amd-pstate: implement suspend and resume callbacks cpufreq: amd-pstate: add driver working mode switch support Documentation: amd-pstate: add amd pstate driver mode introduction Documentation: introduce amd pstate active mode kernel command line options cpufreq: amd-pstate: convert sprintf with sysfs_emit() Documentation: amd-pstate: introduce new global sysfs attributes Qi Zheng (1): OPP: fix error checking in opp_migrate_dentry() Rafael J. Wysocki (1): cpuidle: driver: Update microsecond values of state parameters as needed Randy Dunlap (2): PM: hibernate: swap: don't use /** for non-kernel-doc comments Documentation: power: correct spelling Richard Fitzgerald (2): PM: runtime: Document that force_suspend() is incompatible with SMART_SUSPEND PM: Add EXPORT macros for exporting PM functions Rob Herring (1): dt-bindings: opp: opp-v2-kryo-cpu: Add missing 'cache-unified' property in example Ross Zwisler (1): PM: tools: use canonical ftrace path Srinivas Pandruvada (1): powercap: idle_inject: Support 100% idle injection Thomas Weißschuh (2): cpufreq: Make kobj_type structure constant cpuidle: sysfs: make kobj_type structures constant Uwe Kleine-König (2): cpufreq: Make cpufreq_unregister_driver() return void cpufreq: davinci: Fix clk use after free Wyes Karny (2): cpufreq: amd-pstate: optimize driver working mode selection in amd_pstate_param() cpufreq: amd-pstate: Fix invalid write to MSR_AMD_CPPC_REQ Yang Yingliang (1): powercap: fix possible name leak in powercap_register_zone() Yi-Wei Wang (1): cpufreq: tegra194: Enable CPUFREQ thermal cooling Zhang Rui (3): powercap: intel_rapl: add support for Meteor Lake powercap: intel_rapl: add support for Emerald Rapids powercap: intel_rapl: Fix handling for large time window --------------- Documentation/admin-guide/kernel-parameters.txt | 7 + Documentation/admin-guide/pm/amd-pstate.rst | 78 ++- .../bindings/cpufreq/cpufreq-qcom-hw.yaml | 5 + .../bindings/cpufreq/qcom-cpufreq-nvmem.yaml | 81 ++- .../devicetree/bindings/opp/opp-v2-kryo-cpu.yaml | 18 +- .../devicetree/bindings/opp/opp-v2-qcom-level.yaml | 4 +- Documentation/power/suspend-and-interrupts.rst | 2 +- arch/mips/include/asm/mach-loongson32/cpufreq.h | 18 - arch/mips/include/asm/mach-loongson32/platform.h | 1 - arch/mips/loongson32/common/platform.c | 16 - arch/mips/loongson32/ls1b/board.c | 1 - arch/x86/kernel/process.c | 1 + drivers/acpi/cppc_acpi.c | 67 ++ drivers/base/power/domain.c | 5 +- drivers/base/power/runtime.c | 4 + drivers/cpufreq/Kconfig | 10 - drivers/cpufreq/Makefile | 1 - drivers/cpufreq/amd-pstate.c | 705 ++++++++++++++++++++- drivers/cpufreq/brcmstb-avs-cpufreq.c | 5 +- drivers/cpufreq/cpufreq.c | 10 +- drivers/cpufreq/davinci-cpufreq.c | 4 +- drivers/cpufreq/loongson1-cpufreq.c | 222 ------- drivers/cpufreq/mediatek-cpufreq-hw.c | 5 +- drivers/cpufreq/omap-cpufreq.c | 4 +- drivers/cpufreq/qcom-cpufreq-hw.c | 4 +- drivers/cpufreq/tegra194-cpufreq.c | 3 +- drivers/cpuidle/Kconfig | 1 + drivers/cpuidle/Kconfig.arm | 10 + drivers/cpuidle/cpuidle-haltpoll.c | 2 +- drivers/cpuidle/cpuidle-psci-domain.c | 7 +- drivers/cpuidle/cpuidle-psci.c | 3 + drivers/cpuidle/driver.c | 4 + drivers/cpuidle/governors/teo.c | 102 ++- drivers/cpuidle/sysfs.c | 6 +- drivers/idle/intel_idle.c | 2 + drivers/opp/Kconfig | 1 - drivers/opp/debugfs.c | 2 +- drivers/powercap/idle_inject.c | 6 +- drivers/powercap/intel_rapl_common.c | 13 +- drivers/powercap/powercap_sys.c | 14 +- include/acpi/cppc_acpi.h | 12 + include/linux/amd-pstate.h | 32 + include/linux/cpufreq.h | 2 +- include/linux/pm.h | 4 + kernel/power/Kconfig | 1 - kernel/power/energy_model.c | 5 +- kernel/power/swap.c | 16 +- tools/power/pm-graph/sleepgraph.py | 4 +- .../x86/amd_pstate_tracer/amd_pstate_trace.py | 4 +- .../x86/intel_pstate_tracer/intel_pstate_tracer.py | 10 +- 50 files changed, 1160 insertions(+), 384 deletions(-)