[GIT PULL] Power management updates for v6.2-rc1

From: Rafael J. Wysocki
Date: Mon Dec 12 2022 - 11:53:03 EST


Hi Linus,

Please pull from the tag

git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-6.2-rc1

with top-most commit ed6a00471dd444af085164f987e3d5e8145da35a

Merge branches 'pm-devfreq' and 'pm-tools'

on top of commit 76dcd734eca23168cb008912c0f69ff408905235

Linux 6.1-rc8

to receive power management updates for 6.2-rc1.

These include two new drivers (cpufreq driver for Apple SoC CPU
P-states and the SCMI Powercap based power capping driver), other new
hardware support and driver extensions (Qualcomm cpufreq driver and
its DT bindings, TI cpufreq driver, intel_pstate, intel-uncore-freq),
a bunch of fixes and cleanups all over and a cpupower utility update
including new features related to RAPL support.

Specifics:

- Fix nasty and hard to debug race condition introduced by mistake
in the runtime PM core code and clean up that code somewhat on
top of the fix (Rafael Wysocki).

- Generalize of_perf_domain_get_sharing_cpumask phandle format (Hector
Martin).

- Add new cpufreq driver for Apple SoC CPU P-states (Hector Martin).

- Update Qualcomm cpufreq driver, including:
* CPU clock provider support,
* Generic cleanups or reorganization.
* Potential memleak fix.
* Fix of the return value of cpufreq_driver->get().
(Manivannan Sadhasivam, Chen Hui).

- Update Qualcomm cpufreq driver's DT bindings, including:
* Support for CPU clock provider.
* Missing cache-related properties fixes.
* Support for QDU1000/QRU1000.
(Manivannan Sadhasivam, Rob Herring, Melody Olvera).

- Add support for ti,am625 SoC and enable build of ti-cpufreq for
ARCH_K3 (Dave Gerlach, and Vibhore Vardhan).

- Use flexible array to simplify memory allocation in the tegra186
cpufreq driver (Christophe JAILLET).

- Convert cpufreq statistics code to use sysfs_emit_at() (ye xingchen).

- Allow intel_pstate to use no-HWP mode on Sapphire Rapids (Giovanni
Gherdovich).

- Add missing pci_dev_put() to the amd_freq_sensitivity cpufreq driver
(Xiongfeng Wang).

- Initialize the kobj_unregister completion before calling
kobject_init_and_add() in the cpufreq core code (Yongqiang Liu).

- Defer setting boost MSRs in the ACPI cpufreq driver (Stuart Hayes,
Nathan Chancellor).

- Make intel_pstate accept initial EPP value of 0x80 (Srinivas
Pandruvada).

- Make read-only array sys_clk_src in the SPEAr cpufreq driver static
(Colin Ian King).

- Make array speeds in the longhaul cpufreq driver static (Colin Ian
King).

- Use str_enabled_disabled() helper in the ACPI cpufreq driver (Andy
Shevchenko).

- Drop a reference to CVS from cpufreq documentation (Conghui Wang).

- Improve kernel messages printed by the PSCI cpuidle driver (Ulf
Hansson).

- Make the DT cpuidle driver return the correct number of parsed idle
states, clean it up and clarify a comment in it (Ulf Hansson).

- Modify the tasks freezing code to avoid using pr_cont() and refine an
error message printed by it (Rafael Wysocki).

- Make the hibernation core code complain about memory map mismatches
during resume to help diagnostics (Xueqin Luo).

- Fix mistake in a kerneldoc comment in the hibernation code (xiongxin).

- Reverse the order of performance and enabling operations in the
generic power domains code (Abel Vesa).

- Power off[on] domains in hibernate .freeze[thaw]_noirq hook of in the
generic power domains code (Abel Vesa).

- Consolidate genpd_restore_noirq() and genpd_resume_noirq() (Shawn
Guo).

- Pass generic PM noirq hooks to genpd_finish_suspend() (Shawn Guo).

- Drop generic power domain status manipulation during hibernate
restore (Shawn Guo).

- Fix compiler warnings with make W=1 in the idle_inject power capping
driver (Srinivas Pandruvada).

- Use kstrtobool() instead of strtobool() in the power capping sysfs
interface (Christophe JAILLET).

- Add SCMI Powercap based power capping driver (Cristian Marussi).

- Add Emerald Rapids support to the intel-uncore-freq driver (Artem
Bityutskiy).

- Repair slips in kernel-doc comments in the generic notifier code
(Lukas Bulwahn).

- Fix several DT issues in the OPP library reorganize code around
opp-microvolt-<named> DT property (Viresh Kumar).

- Allow any of opp-microvolt, opp-microamp, or opp-microwatt properties
to be present without the others present (James Calligeros).

- Fix clock-latency-ns property in DT example (Serge Semin).

- Add a private governor_data for devfreq governors (Kant Fan).

- Reorganize devfreq code to use device_match_of_node() and
devm_platform_get_and_ioremap_resource() instead of open coding
them (ye xingchen, Minghao Chi).

- Make cpupower choose base_cpu to display default cpupower details
instead of picking CPU 0 (Saket Kumar Bhaskar).

- Add Georgian translation to cpupower documentation (Zurab
Kargareteli).

- Introduce powercap intel-rapl library, powercap-info command, and
RAPL monitor into cpupower (Thomas Renninger).

Thanks!


---------------

Abel Vesa (1):
PM: domains: Reverse the order of performance and enabling ops

Andy Shevchenko (1):
cpufreq: ACPI: Use str_enabled_disabled() helper

Artem Bityutskiy (1):
platform/x86: intel-uncore-freq: add Emerald Rapids support

Chen Hui (1):
cpufreq: qcom-hw: Fix memory leak in qcom_cpufreq_hw_read_lut()

Christophe JAILLET (2):
powercap: Use kstrtobool() instead of strtobool()
cpufreq: tegra186: Use flexible array to simplify memory allocation

Colin Ian King (2):
cpufreq: longhaul: Make array speeds static const
cpufreq: SPEAr: Make read-only array sys_clk_src static

Conghui Wang (1):
cpufreq: Remove CVS version control contents from documentation

Cristian Marussi (1):
powercap: arm_scmi: Add SCMI Powercap based driver

Dave Gerlach (4):
cpufreq: ti-cpufreq: Add support for AM625
cpufreq: dt-platdev: Blacklist ti,am625 SoC
arm64: dts: ti: k3-am625: Introduce operating-points table
cpufreq: ti: Enable ti-cpufreq for ARCH_K3

Giovanni Gherdovich (1):
cpufreq: intel_pstate: Add Sapphire Rapids support in no-HWP mode

Hector Martin (2):
cpufreq: Generalize of_perf_domain_get_sharing_cpumask phandle format
cpufreq: apple-soc: Add new driver to control Apple SoC CPU P-states

James Calligeros (1):
OPP: decouple dt properties in opp_parse_supplies()

Kant Fan (1):
PM/devfreq: governor: Add a private governor_data for governor

Lukas Bulwahn (1):
notifier: repair slips in kernel-doc comments

Manivannan Sadhasivam (7):
cpufreq: qcom-hw: Remove un-necessary cpumask_empty() check
cpufreq: qcom-hw: Allocate qcom_cpufreq_data during probe
cpufreq: qcom-hw: Use cached dev pointer in probe()
cpufreq: qcom-hw: Move soc_data to struct qcom_cpufreq
cpufreq: qcom-hw: Fix the frequency returned by cpufreq_driver->get()
dt-bindings: cpufreq: cpufreq-qcom-hw: Add cpufreq clock provider
cpufreq: qcom-hw: Add CPU clock provider support

Melody Olvera (1):
dt-bindings: cpufreq: cpufreq-qcom-hw: Add QDU1000/QRU1000 cpufreq

Minghao Chi (1):
PM / devfreq: event: use devm_platform_get_and_ioremap_resource()

Nathan Chancellor (1):
cpufreq: ACPI: Remove unused variables 'acpi_cpufreq_online' and 'ret'

Rafael J. Wysocki (5):
PM: runtime: Do not call __rpm_callback() from rpm_idle()
PM: runtime: Relocate rpm_callback() right after __rpm_callback()
PM: sleep: Avoid using pr_cont() in the tasks freezing code
PM: sleep: Refine error message in try_to_freeze_tasks()
PM: runtime: Adjust white space in the core code

Rob Herring (1):
dt-bindings: cpufreq: qcom: Add missing cache related properties

Saket Kumar Bhaskar (1):
tools/cpupower: Choose base_cpu to display default cpupower details

Serge Semin (1):
dt-bindings: opp-v2: Fix clock-latency-ns prop in example

Shawn Guo (4):
PM: domains: Drop genpd status manipulation for hibernate restore
PM: domains: Pass generic PM noirq hooks to genpd_finish_suspend()
PM: domains: Consolidate genpd_restore_noirq() and genpd_resume_noirq()
PM: domains: Power off[on] domain in hibernate .freeze[thaw]_noirq hook

Srinivas Pandruvada (2):
cpufreq: intel_pstate: Allow EPP 0x80 setting by the firmware
powercap: idle_inject: Fix warnings with make W=1

Stuart Hayes (2):
cpufreq: ACPI: Defer setting boost MSRs
cpufreq: ACPI: Only set boost MSRs on supported CPUs

Thomas Renninger (2):
cpupower: Introduce powercap intel-rapl library and powercap-info command
cpupower: rapl monitor - shows the used power consumption in uj
for each rapl domain

Ulf Hansson (3):
cpuidle: psci: Extend information in log about OSI/PC mode
cpuidle: dt: Return the correct numbers of parsed idle states
cpuidle: dt: Clarify a comment and simplify code in dt_init_idle_driver()

Vibhore Vardhan (1):
arm64: dts: ti: k3-am625-sk: Add 1.4GHz OPP

Viresh Kumar (4):
dt-bindings: opp: Fix usage of current in microwatt property
dt-bindings: opp: Fix named microwatt property
OPP: Parse named opp-microwatt property too
OPP: Simplify opp_parse_supplies() by restructuring it

Xiongfeng Wang (1):
cpufreq: amd_freq_sensitivity: Add missing pci_dev_put()

Xueqin Luo (1):
PM: hibernate: Complain about memory map mismatches during resume

Yongqiang Liu (1):
cpufreq: Init completion before kobject_init_and_add()

Zurab Kargareteli (1):
cpupower: Add Georgian translation

xiongxin (1):
PM: hibernate: Fix mistake in kerneldoc comment

ye xingchen (3):
PM / devfreq: Use device_match_of_node()
PM / devfreq: event: Use device_match_of_node()
cpufreq: stats: Convert to use sysfs_emit_at() API

---------------

Documentation/cpu-freq/index.rst | 9 +-
.../bindings/cpufreq/cpufreq-qcom-hw.yaml | 31 +
.../devicetree/bindings/opp/opp-v2-base.yaml | 6 +-
Documentation/devicetree/bindings/opp/opp-v2.yaml | 2 +-
MAINTAINERS | 1 +
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 9 +
arch/arm64/boot/dts/ti/k3-am625.dtsi | 51 ++
drivers/base/power/domain.c | 150 ++--
drivers/base/power/runtime.c | 145 +--
drivers/cpufreq/Kconfig.arm | 13 +-
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/acpi-cpufreq.c | 43 +-
drivers/cpufreq/amd_freq_sensitivity.c | 2 +
drivers/cpufreq/apple-soc-cpufreq.c | 352 ++++++++
drivers/cpufreq/cpufreq-dt-platdev.c | 3 +
drivers/cpufreq/cpufreq.c | 2 +-
drivers/cpufreq/cpufreq_stats.c | 16 +-
drivers/cpufreq/intel_pstate.c | 10 +-
drivers/cpufreq/longhaul.c | 4 +-
drivers/cpufreq/mediatek-cpufreq-hw.c | 14 +-
drivers/cpufreq/qcom-cpufreq-hw.c | 206 +++--
drivers/cpufreq/spear-cpufreq.c | 2 +-
drivers/cpufreq/tegra186-cpufreq.c | 11 +-
drivers/cpufreq/ti-cpufreq.c | 36 +
drivers/cpuidle/cpuidle-psci-domain.c | 3 +-
drivers/cpuidle/dt_idle_states.c | 11 +-
drivers/devfreq/devfreq-event.c | 2 +-
drivers/devfreq/devfreq.c | 8 +-
drivers/devfreq/event/exynos-nocp.c | 3 +-
drivers/devfreq/governor_userspace.c | 12 +-
drivers/opp/of.c | 228 +++--
.../x86/intel/uncore-frequency/uncore-frequency.c | 1 +
drivers/powercap/Kconfig | 13 +
drivers/powercap/Makefile | 1 +
drivers/powercap/arm_scmi_powercap.c | 509 +++++++++++
drivers/powercap/idle_inject.c | 3 +
drivers/powercap/powercap_sys.c | 3 +-
include/linux/cpufreq.h | 28 +-
include/linux/devfreq.h | 7 +-
kernel/notifier.c | 6 +-
kernel/power/process.c | 25 +-
kernel/power/snapshot.c | 12 +-
tools/power/cpupower/Makefile | 15 +-
tools/power/cpupower/lib/powercap.c | 290 ++++++
tools/power/cpupower/lib/powercap.h | 54 ++
tools/power/cpupower/man/cpupower-powercap-info.1 | 25 +
tools/power/cpupower/po/ka.po | 983 +++++++++++++++++++++
tools/power/cpupower/utils/builtin.h | 2 +
tools/power/cpupower/utils/cpufreq-info.c | 4 +-
tools/power/cpupower/utils/cpuidle-info.c | 4 +-
tools/power/cpupower/utils/cpupower-info.c | 4 +-
tools/power/cpupower/utils/cpupower.c | 1 +
.../cpupower/utils/idle_monitor/cpupower-monitor.c | 7 +-
.../cpupower/utils/idle_monitor/idle_monitors.def | 1 +
.../cpupower/utils/idle_monitor/rapl_monitor.c | 148 ++++
tools/power/cpupower/utils/powercap-info.c | 117 +++
tools/power/pm-graph/sleepgraph.py | 2 +-
57 files changed, 3132 insertions(+), 519 deletions(-)