Skip to content

Commit 045e222

Browse files
committed
Merge tag 'pm-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management updates from Rafael Wysocki: "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 (Manivannan Sadhasivam, Chen Hui): - CPU clock provider support - Generic cleanups or reorganization - Potential memleak fix - Fix of the return value of cpufreq_driver->get() - Update Qualcomm cpufreq driver's DT bindings (Manivannan Sadhasivam, Rob Herring, Melody Olvera): - Support for CPU clock provider - Missing cache-related properties fixes - Support for QDU1000/QRU1000 - 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)" * tag 'pm-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (64 commits) PM: runtime: Adjust white space in the core code cpufreq: Remove CVS version control contents from documentation cpufreq: stats: Convert to use sysfs_emit_at() API cpufreq: ACPI: Only set boost MSRs on supported CPUs PM: sleep: Refine error message in try_to_freeze_tasks() PM: sleep: Avoid using pr_cont() in the tasks freezing code PM: runtime: Relocate rpm_callback() right after __rpm_callback() PM: runtime: Do not call __rpm_callback() from rpm_idle() PM / devfreq: event: use devm_platform_get_and_ioremap_resource() PM / devfreq: event: Use device_match_of_node() PM / devfreq: Use device_match_of_node() powercap: idle_inject: Fix warnings with make W=1 PM: hibernate: Complain about memory map mismatches during resume dt-bindings: cpufreq: cpufreq-qcom-hw: Add QDU1000/QRU1000 cpufreq cpufreq: tegra186: Use flexible array to simplify memory allocation cpupower: rapl monitor - shows the used power consumption in uj for each rapl domain cpupower: Introduce powercap intel-rapl library and powercap-info command cpupower: Add Georgian translation cpufreq: intel_pstate: Add Sapphire Rapids support in no-HWP mode cpufreq: amd_freq_sensitivity: Add missing pci_dev_put() ...
2 parents 631aa74 + ed6a004 commit 045e222

57 files changed

Lines changed: 3132 additions & 519 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/cpu-freq/index.rst

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,15 @@ Author: Dominik Brodowski <linux@brodo.de>
2020

2121
Mailing List
2222
------------
23-
There is a CPU frequency changing CVS commit and general list where
24-
you can report bugs, problems or submit patches. To post a message,
25-
send an email to linux-pm@vger.kernel.org.
23+
There is a CPU frequency general list where you can report bugs,
24+
problems or submit patches. To post a message, send an email to
25+
linux-pm@vger.kernel.org.
2626

2727
Links
2828
-----
2929
the FTP archives:
3030
* ftp://ftp.linux.org.uk/pub/linux/cpufreq/
3131

32-
how to access the CVS repository:
33-
* http://cvs.arm.linux.org.uk/
34-
3532
the CPUFreq Mailing list:
3633
* http://vger.kernel.org/vger-lists.html#linux-pm
3734

Documentation/devicetree/bindings/cpufreq/cpufreq-qcom-hw.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ properties:
2525
- description: v2 of CPUFREQ HW (EPSS)
2626
items:
2727
- enum:
28+
- qcom,qdu1000-cpufreq-epss
2829
- qcom,sm6375-cpufreq-epss
2930
- qcom,sm8250-cpufreq-epss
3031
- const: qcom,cpufreq-epss
@@ -56,6 +57,9 @@ properties:
5657
'#freq-domain-cells':
5758
const: 1
5859

60+
'#clock-cells':
61+
const: 1
62+
5963
required:
6064
- compatible
6165
- reg
@@ -83,11 +87,16 @@ examples:
8387
enable-method = "psci";
8488
next-level-cache = <&L2_0>;
8589
qcom,freq-domain = <&cpufreq_hw 0>;
90+
clocks = <&cpufreq_hw 0>;
8691
L2_0: l2-cache {
8792
compatible = "cache";
93+
cache-unified;
94+
cache-level = <2>;
8895
next-level-cache = <&L3_0>;
8996
L3_0: l3-cache {
9097
compatible = "cache";
98+
cache-unified;
99+
cache-level = <3>;
91100
};
92101
};
93102
};
@@ -99,8 +108,11 @@ examples:
99108
enable-method = "psci";
100109
next-level-cache = <&L2_100>;
101110
qcom,freq-domain = <&cpufreq_hw 0>;
111+
clocks = <&cpufreq_hw 0>;
102112
L2_100: l2-cache {
103113
compatible = "cache";
114+
cache-unified;
115+
cache-level = <2>;
104116
next-level-cache = <&L3_0>;
105117
};
106118
};
@@ -112,8 +124,11 @@ examples:
112124
enable-method = "psci";
113125
next-level-cache = <&L2_200>;
114126
qcom,freq-domain = <&cpufreq_hw 0>;
127+
clocks = <&cpufreq_hw 0>;
115128
L2_200: l2-cache {
116129
compatible = "cache";
130+
cache-unified;
131+
cache-level = <2>;
117132
next-level-cache = <&L3_0>;
118133
};
119134
};
@@ -125,8 +140,11 @@ examples:
125140
enable-method = "psci";
126141
next-level-cache = <&L2_300>;
127142
qcom,freq-domain = <&cpufreq_hw 0>;
143+
clocks = <&cpufreq_hw 0>;
128144
L2_300: l2-cache {
129145
compatible = "cache";
146+
cache-unified;
147+
cache-level = <2>;
130148
next-level-cache = <&L3_0>;
131149
};
132150
};
@@ -138,8 +156,11 @@ examples:
138156
enable-method = "psci";
139157
next-level-cache = <&L2_400>;
140158
qcom,freq-domain = <&cpufreq_hw 1>;
159+
clocks = <&cpufreq_hw 1>;
141160
L2_400: l2-cache {
142161
compatible = "cache";
162+
cache-unified;
163+
cache-level = <2>;
143164
next-level-cache = <&L3_0>;
144165
};
145166
};
@@ -151,8 +172,11 @@ examples:
151172
enable-method = "psci";
152173
next-level-cache = <&L2_500>;
153174
qcom,freq-domain = <&cpufreq_hw 1>;
175+
clocks = <&cpufreq_hw 1>;
154176
L2_500: l2-cache {
155177
compatible = "cache";
178+
cache-unified;
179+
cache-level = <2>;
156180
next-level-cache = <&L3_0>;
157181
};
158182
};
@@ -164,8 +188,11 @@ examples:
164188
enable-method = "psci";
165189
next-level-cache = <&L2_600>;
166190
qcom,freq-domain = <&cpufreq_hw 1>;
191+
clocks = <&cpufreq_hw 1>;
167192
L2_600: l2-cache {
168193
compatible = "cache";
194+
cache-unified;
195+
cache-level = <2>;
169196
next-level-cache = <&L3_0>;
170197
};
171198
};
@@ -177,8 +204,11 @@ examples:
177204
enable-method = "psci";
178205
next-level-cache = <&L2_700>;
179206
qcom,freq-domain = <&cpufreq_hw 1>;
207+
clocks = <&cpufreq_hw 1>;
180208
L2_700: l2-cache {
181209
compatible = "cache";
210+
cache-unified;
211+
cache-level = <2>;
182212
next-level-cache = <&L3_0>;
183213
};
184214
};
@@ -197,6 +227,7 @@ examples:
197227
clock-names = "xo", "alternate";
198228
199229
#freq-domain-cells = <1>;
230+
#clock-cells = <1>;
200231
};
201232
};
202233
...

Documentation/devicetree/bindings/opp/opp-v2-base.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ patternProperties:
108108
The power for the OPP in micro-Watts.
109109
110110
Entries for multiple regulators shall be provided in the same field
111-
separated by angular brackets <>. If current values aren't required
111+
separated by angular brackets <>. If power values aren't required
112112
for a regulator, then it shall be filled with 0. If power values
113113
aren't required for any of the regulators, then this field is not
114114
required. The OPP binding doesn't provide any provisions to relate the
@@ -230,9 +230,9 @@ patternProperties:
230230
minItems: 1
231231
maxItems: 8 # Should be enough regulators
232232

233-
'^opp-microwatt':
233+
'^opp-microwatt-':
234234
description:
235-
Named opp-microwatt property. Similar to opp-microamp property,
235+
Named opp-microwatt property. Similar to opp-microamp-<name> property,
236236
but for microwatt instead.
237237
$ref: /schemas/types.yaml#/definitions/uint32-array
238238
minItems: 1

Documentation/devicetree/bindings/opp/opp-v2.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ examples:
155155
opp-hz = /bits/ 64 <1200000000>;
156156
opp-microvolt = <1025000>;
157157
opp-microamp = <90000>;
158-
lock-latency-ns = <290000>;
158+
clock-latency-ns = <290000>;
159159
turbo-mode;
160160
};
161161
};

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20038,6 +20038,7 @@ F: drivers/clk/clk-sc[mp]i.c
2003820038
F: drivers/cpufreq/sc[mp]i-cpufreq.c
2003920039
F: drivers/firmware/arm_scmi/
2004020040
F: drivers/firmware/arm_scpi.c
20041+
F: drivers/powercap/arm_scmi_powercap.c
2004120042
F: drivers/regulator/scmi-regulator.c
2004220043
F: drivers/reset/reset-scmi.c
2004320044
F: include/linux/sc[mp]i_protocol.h

arch/arm64/boot/dts/ti/k3-am625-sk.dts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,15 @@
3131
bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
3232
};
3333

34+
opp-table {
35+
/* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */
36+
opp-1400000000 {
37+
opp-hz = /bits/ 64 <1400000000>;
38+
opp-supported-hw = <0x01 0x0004>;
39+
clock-latency-ns = <6000000>;
40+
};
41+
};
42+
3443
memory@80000000 {
3544
device_type = "memory";
3645
/* 2G RAM */

arch/arm64/boot/dts/ti/k3-am625.dtsi

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@
4848
d-cache-line-size = <64>;
4949
d-cache-sets = <128>;
5050
next-level-cache = <&L2_0>;
51+
operating-points-v2 = <&a53_opp_table>;
52+
clocks = <&k3_clks 135 0>;
5153
};
5254

5355
cpu1: cpu@1 {
@@ -62,6 +64,8 @@
6264
d-cache-line-size = <64>;
6365
d-cache-sets = <128>;
6466
next-level-cache = <&L2_0>;
67+
operating-points-v2 = <&a53_opp_table>;
68+
clocks = <&k3_clks 136 0>;
6569
};
6670

6771
cpu2: cpu@2 {
@@ -76,6 +80,8 @@
7680
d-cache-line-size = <64>;
7781
d-cache-sets = <128>;
7882
next-level-cache = <&L2_0>;
83+
operating-points-v2 = <&a53_opp_table>;
84+
clocks = <&k3_clks 137 0>;
7985
};
8086

8187
cpu3: cpu@3 {
@@ -90,6 +96,51 @@
9096
d-cache-line-size = <64>;
9197
d-cache-sets = <128>;
9298
next-level-cache = <&L2_0>;
99+
operating-points-v2 = <&a53_opp_table>;
100+
clocks = <&k3_clks 138 0>;
101+
};
102+
};
103+
104+
a53_opp_table: opp-table {
105+
compatible = "operating-points-v2-ti-cpu";
106+
opp-shared;
107+
syscon = <&wkup_conf>;
108+
109+
opp-200000000 {
110+
opp-hz = /bits/ 64 <200000000>;
111+
opp-supported-hw = <0x01 0x0007>;
112+
clock-latency-ns = <6000000>;
113+
};
114+
115+
opp-400000000 {
116+
opp-hz = /bits/ 64 <400000000>;
117+
opp-supported-hw = <0x01 0x0007>;
118+
clock-latency-ns = <6000000>;
119+
};
120+
121+
opp-600000000 {
122+
opp-hz = /bits/ 64 <600000000>;
123+
opp-supported-hw = <0x01 0x0007>;
124+
clock-latency-ns = <6000000>;
125+
};
126+
127+
opp-800000000 {
128+
opp-hz = /bits/ 64 <800000000>;
129+
opp-supported-hw = <0x01 0x0007>;
130+
clock-latency-ns = <6000000>;
131+
};
132+
133+
opp-1000000000 {
134+
opp-hz = /bits/ 64 <1000000000>;
135+
opp-supported-hw = <0x01 0x0006>;
136+
clock-latency-ns = <6000000>;
137+
};
138+
139+
opp-1250000000 {
140+
opp-hz = /bits/ 64 <1250000000>;
141+
opp-supported-hw = <0x01 0x0004>;
142+
clock-latency-ns = <6000000>;
143+
opp-suspend;
93144
};
94145
};
95146

0 commit comments

Comments
 (0)