Skip to content

Commit ccc5e98

Browse files
committed
Merge tag 'pm-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management updates from Rafael Wysocki: "These rework cpuidle governors to call tick_nohz_get_sleep_length() less often and fix one of them, rework hibernation to avoid storing pages filled with zeros in hibernation images, switch over some cpufreq drivers to use void remove callbacks, fix and clean up multiple cpufreq drivers, fix the devfreq core, update the cpupower utility and make other assorted improvements. Specifics: - Rework the menu and teo cpuidle governors to avoid calling tick_nohz_get_sleep_length(), which is likely to become quite expensive going forward, too often and improve making decisions regarding whether or not to stop the scheduler tick in the teo governor (Rafael Wysocki) - Improve the performance of cpufreq_stats_create_table() in some cases (Liao Chang) - Fix two issues in the amd-pstate-ut cpufreq driver (Swapnil Sapkal) - Use clamp() helper macro to improve the code readability in cpufreq_verify_within_limits() (Liao Chang) - Set stale CPU frequency to minimum in intel_pstate (Doug Smythies) - Migrate cpufreq drivers for various platforms to use void remove callback (Yangtao Li) - Add online/offline/exit hooks for Tegra driver (Sumit Gupta) - Explicitly include correct DT includes in cpufreq (Rob Herring) - Frequency domain updates for qcom-hw driver (Neil Armstrong) - Modify AMD pstate driver return the highest_perf value (Meng Li) - Generic cleanups for cppc, mediatek and powernow driver (Liao Chang, Konrad Dybcio) - Add more platforms to cpufreq-arm driver's blocklist (AngeloGioacchino Del Regno and Konrad Dybcio) - brcmstb-avs-cpufreq: Fix -Warray-bounds bug (Gustavo A. R. Silva) - Add device PM helpers to allow a device to remain powered-on during system-wide transitions (Ulf Hansson) - Rework hibernation memory snapshotting to avoid storing pages filled with zeros in hibernation image files (Brian Geffon) - Add check to make sure that CPU latency QoS constraints do not use negative values (Clive Lin) - Optimize rp->domains memory allocation in the Intel RAPL power capping driver (xiongxin) - Remove recursion while parsing zones in the arm_scmi power capping driver (Cristian Marussi) - Fix memory leak in devfreq_dev_release() (Boris Brezillon) - Rewrite devfreq_monitor_start() kerneldoc comment (Manivannan Sadhasivam) - Explicitly include correct DT includes in devfreq (Rob Herring) - Remove unsued pm_runtime_update_max_time_suspended() extern declaration (YueHaibing) - Add turbo-boost support to cpupower (Wyes Karny) - Add support for amd_pstate mode change to cpupower (Wyes Karny) - Fix 'cpupower idle_set' command to accept only numeric values of arguments (Likhitha Korrapati) - Clean up OPP code and add new frequency related APIs to it (Viresh Kumar, Manivannan Sadhasivam) - Convert ti cpufreq/opp bindings to json schema (Nishanth Menon)" * tag 'pm-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (74 commits) cpufreq: tegra194: remove opp table in exit hook cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit() cpufreq: tegra194: add online/offline hooks cpuidle: teo: Avoid unnecessary variable assignments cpufreq: qcom-cpufreq-hw: add support for 4 freq domains dt-bindings: cpufreq: qcom-hw: add a 4th frequency domain cpufreq: amd-pstate-ut: Fix kernel panic when loading the driver cpufreq: amd-pstate-ut: Remove module parameter access cpufreq: Use clamp() helper macro to improve the code readability PM: sleep: Add helpers to allow a device to remain powered-on PM: QoS: Add check to make sure CPU latency is non-negative PM: runtime: Remove unsued extern declaration of pm_runtime_update_max_time_suspended() cpufreq: intel_pstate: set stale CPU frequency to minimum cpufreq: stats: Improve the performance of cpufreq_stats_create_table() dt-bindings: cpufreq: Convert ti-cpufreq to json schema dt-bindings: opp: Convert ti-omap5-opp-supply to json schema OPP: Fix argument name in doc comment cpuidle: menu: Skip tick_nohz_get_sleep_length() call in some cases cpufreq: cppc: Set fie_disabled to FIE_DISABLED if fails to create kworker_fie cpufreq: cppc: cppc_cpufreq_get_rate() returns zero in all error cases. ...
2 parents 330235e + 422ec6f commit ccc5e98

Some content is hidden

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

63 files changed

+1097
-613
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,15 @@ properties:
4949
- description: Frequency domain 0 register region
5050
- description: Frequency domain 1 register region
5151
- description: Frequency domain 2 register region
52+
- description: Frequency domain 3 register region
5253

5354
reg-names:
5455
minItems: 1
5556
items:
5657
- const: freq-domain0
5758
- const: freq-domain1
5859
- const: freq-domain2
60+
- const: freq-domain3
5961

6062
clocks:
6163
items:
@@ -69,14 +71,15 @@ properties:
6971

7072
interrupts:
7173
minItems: 1
72-
maxItems: 3
74+
maxItems: 4
7375

7476
interrupt-names:
7577
minItems: 1
7678
items:
7779
- const: dcvsh-irq-0
7880
- const: dcvsh-irq-1
7981
- const: dcvsh-irq-2
82+
- const: dcvsh-irq-3
8083

8184
'#freq-domain-cells':
8285
const: 1

Documentation/devicetree/bindings/cpufreq/ti-cpufreq.txt

Lines changed: 0 additions & 132 deletions
This file was deleted.
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/opp/operating-points-v2-ti-cpu.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: TI CPU OPP (Operating Performance Points)
8+
9+
description:
10+
TI SoCs, like those in the AM335x, AM437x, AM57xx, AM62x, and DRA7xx
11+
families, the CPU frequencies subset and the voltage value of each
12+
OPP vary based on the silicon variant used. The data sheet sections
13+
corresponding to "Operating Performance Points" describe the frequency
14+
and voltage values based on device type and speed bin information
15+
blown in corresponding eFuse bits as referred to by the Technical
16+
Reference Manual.
17+
18+
This document extends the operating-points-v2 binding by providing
19+
the hardware description for the scheme mentioned above.
20+
21+
maintainers:
22+
- Nishanth Menon <nm@ti.com>
23+
24+
allOf:
25+
- $ref: opp-v2-base.yaml#
26+
27+
properties:
28+
compatible:
29+
const: operating-points-v2-ti-cpu
30+
31+
syscon:
32+
$ref: /schemas/types.yaml#/definitions/phandle
33+
description: |
34+
points to syscon node representing the control module
35+
register space of the SoC.
36+
37+
opp-shared: true
38+
39+
patternProperties:
40+
'^opp(-?[0-9]+)*$':
41+
type: object
42+
additionalProperties: false
43+
44+
properties:
45+
clock-latency-ns: true
46+
opp-hz: true
47+
opp-microvolt: true
48+
opp-supported-hw: true
49+
opp-suspend: true
50+
turbo-mode: true
51+
52+
required:
53+
- opp-hz
54+
- opp-supported-hw
55+
56+
required:
57+
- compatible
58+
- syscon
59+
60+
additionalProperties: false
61+
62+
examples:
63+
- |
64+
opp-table {
65+
compatible = "operating-points-v2-ti-cpu";
66+
syscon = <&scm_conf>;
67+
68+
opp-300000000 {
69+
opp-hz = /bits/ 64 <300000000>;
70+
opp-microvolt = <1100000 1078000 1122000>;
71+
opp-supported-hw = <0x06 0x0020>;
72+
opp-suspend;
73+
};
74+
75+
opp-500000000 {
76+
opp-hz = /bits/ 64 <500000000>;
77+
opp-microvolt = <1100000 1078000 1122000>;
78+
opp-supported-hw = <0x01 0xFFFF>;
79+
};
80+
81+
opp-600000000 {
82+
opp-hz = /bits/ 64 <600000000>;
83+
opp-microvolt = <1100000 1078000 1122000>;
84+
opp-supported-hw = <0x06 0x0040>;
85+
};
86+
87+
opp-1000000000 {
88+
opp-hz = /bits/ 64 <1000000000>;
89+
opp-microvolt = <1325000 1298500 1351500>;
90+
opp-supported-hw = <0x04 0x0200>;
91+
};
92+
};

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ patternProperties:
5656
need to be configured and that is left for the implementation
5757
specific binding.
5858
minItems: 1
59-
maxItems: 16
59+
maxItems: 32
6060
items:
6161
maxItems: 1
6262

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/opp/ti,omap-opp-supply.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Texas Instruments OMAP compatible OPP supply
8+
9+
description:
10+
OMAP5, DRA7, and AM57 families of SoCs have Class 0 AVS eFuse
11+
registers, which contain OPP-specific voltage information tailored
12+
for the specific device. This binding provides the information
13+
needed to describe such a hardware values and relate them to program
14+
the primary regulator during an OPP transition.
15+
16+
Also, some supplies may have an associated vbb-supply, an Adaptive
17+
Body Bias regulator, which must transition in a specific sequence
18+
w.r.t the vdd-supply and clk when making an OPP transition. By
19+
supplying two regulators to the device that will undergo OPP
20+
transitions, we can use the multi-regulator support implemented by
21+
the OPP core to describe both regulators the platform needs. The
22+
OPP core binding Documentation/devicetree/bindings/opp/opp-v2.yaml
23+
provides further information (refer to Example 4 Handling multiple
24+
regulators).
25+
26+
maintainers:
27+
- Nishanth Menon <nm@ti.com>
28+
29+
properties:
30+
$nodename:
31+
pattern: '^opp-supply(@[0-9a-f]+)?$'
32+
33+
compatible:
34+
oneOf:
35+
- description: Basic OPP supply controlling VDD and VBB
36+
const: ti,omap-opp-supply
37+
- description: OMAP5+ optimized voltages in efuse(Class 0) VDD along with
38+
VBB.
39+
const: ti,omap5-opp-supply
40+
- description: OMAP5+ optimized voltages in efuse(class0) VDD but no VBB
41+
const: ti,omap5-core-opp-supply
42+
43+
reg:
44+
maxItems: 1
45+
46+
ti,absolute-max-voltage-uv:
47+
$ref: /schemas/types.yaml#/definitions/uint32
48+
description: Absolute maximum voltage for the OPP supply in micro-volts.
49+
minimum: 750000
50+
maximum: 1500000
51+
52+
ti,efuse-settings:
53+
description: An array of u32 tuple items providing information about
54+
optimized efuse configuration.
55+
minItems: 1
56+
$ref: /schemas/types.yaml#/definitions/uint32-matrix
57+
items:
58+
items:
59+
- description: Reference voltage in micro-volts (OPP Voltage)
60+
minimum: 750000
61+
maximum: 1500000
62+
multipleOf: 10000
63+
- description: efuse offset where the optimized voltage is located
64+
multipleOf: 4
65+
maximum: 256
66+
67+
required:
68+
- compatible
69+
- ti,absolute-max-voltage-uv
70+
71+
allOf:
72+
- if:
73+
not:
74+
properties:
75+
compatible:
76+
contains:
77+
const: ti,omap-opp-supply
78+
then:
79+
required:
80+
- reg
81+
- ti,efuse-settings
82+
83+
additionalProperties: false
84+
85+
examples:
86+
- |
87+
opp-supply {
88+
compatible = "ti,omap-opp-supply";
89+
ti,absolute-max-voltage-uv = <1375000>;
90+
};
91+
- |
92+
opp-supply@4a003b20 {
93+
compatible = "ti,omap5-opp-supply";
94+
reg = <0x4a003b20 0x8>;
95+
ti,efuse-settings =
96+
/* uV offset */
97+
<1060000 0x0>,
98+
<1160000 0x4>,
99+
<1210000 0x8>;
100+
ti,absolute-max-voltage-uv = <1500000>;
101+
};

0 commit comments

Comments
 (0)