Hi Linus, Please pull from the tag git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \ pm-6.16-rc1-2 with top-most commit 3d031d0d8daab86f9c3e9e89c80fec08367fb304 Merge branch 'pm-cpuidle' on top of commit 9d230d500b0e5f7be863e2bf2386be5f80dd18aa Merge tag 'driver-core-6.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core to receive more power management updates for 6.16-rc1. These revert an x86 commit that introduced a nasty power regression on some systems, fix PSCI cpuidle driver and ACPI cpufreq driver regressions, add Rust abstractions for cpufreq, OPP, clk, and cpumasks, add a Rust-based cpufreq-dt driver, and do a minor SCMI cpufreq driver cleanup: - Revert an x86 commit that went into 6.15 and caused idle power, including power in suspend-to-idle, to rise rather dramatically on systems booting with "nosmt" in the kernel command line (Rafael Wysocki). - Prevent freeing an uninitialized pointer in the error path of dt_idle_state_present() in the PSCI cpuidle driver (Dan Carpenter). - Use KHz as the nominal_freq units in get_max_boost_ratio() in the ACPI cpufreq driver (iGautham Shenoy). - Add Rust abstractions for CPUFreq framework (Viresh Kumar). - Add Rust abstractions for OPP framework (Viresh Kumar). - Add basic Rust abstractions for Clk and Cpumask frameworks (Viresh Kumar). - Clean up the SCMI cpufreq driver somewhat (Mike Tipton). Thanks! --------------- Anisse Astier (1): rust: macros: enable use of hyphens in module names Dan Carpenter (1): cpuidle: psci: Fix uninitialized variable in dt_idle_state_present() Gautham R. Shenoy (1): acpi-cpufreq: Fix nominal_freq units to KHz in get_max_boost_ratio() Mike Tipton (1): cpufreq: scmi: Skip SCMI devices that aren't used by the CPUs Rafael J. Wysocki (1): Revert "x86/smp: Eliminate mwait_play_dead_cpuid_hint()" Viresh Kumar (16): rust: cpumask: Add few more helpers rust: cpumask: Add initial abstractions MAINTAINERS: Add entry for Rust cpumask API rust: clk: Add helpers for Rust code rust: clk: Add initial abstractions rust: cpu: Add from_cpu() rust: opp: Add initial abstractions for OPP framework rust: opp: Add abstractions for the OPP table rust: opp: Add abstractions for the configuration options rust: cpufreq: Add initial abstractions for cpufreq framework rust: cpufreq: Extend abstractions for policy and driver ops rust: cpufreq: Extend abstractions for driver registration rust: opp: Extend OPP abstractions with cpufreq support cpufreq: Add Rust-based cpufreq-dt driver rust: opp: Make the doctest example depend on CONFIG_OF rust: opp: Move `cfg(CONFIG_OF)` attribute to the top of doc test --------------- MAINTAINERS | 11 + arch/x86/kernel/smpboot.c | 54 +- drivers/cpufreq/Kconfig | 12 + drivers/cpufreq/Makefile | 1 + drivers/cpufreq/acpi-cpufreq.c | 2 +- drivers/cpufreq/rcpufreq_dt.rs | 226 +++++++ drivers/cpufreq/scmi-cpufreq.c | 36 +- drivers/cpuidle/cpuidle-psci.c | 9 +- rust/bindings/bindings_helper.h | 4 + rust/helpers/clk.c | 66 ++ rust/helpers/cpufreq.c | 10 + rust/helpers/cpumask.c | 25 + rust/helpers/helpers.c | 2 + rust/kernel/clk.rs | 334 ++++++++++ rust/kernel/cpu.rs | 30 + rust/kernel/cpufreq.rs | 1321 +++++++++++++++++++++++++++++++++++++++ rust/kernel/cpumask.rs | 330 ++++++++++ rust/kernel/lib.rs | 7 + rust/kernel/opp.rs | 1146 +++++++++++++++++++++++++++++++++ rust/macros/module.rs | 20 +- 20 files changed, 3624 insertions(+), 22 deletions(-)