Skip to content

Commit 5a5470d

Browse files
committed
Merge tag 'icc-6.13-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
Georgi writes: interconnect changes for 6.13 This pull request contains the interconnect changes for the 6.13-rc1 merge window. It contains new drivers and clean-ups with the following highlights: Core changes: - Remove a useless kfree_const() usage - Switch back to struct platform_driver::remove() - Use of_property_present() for non-boolean properties Driver changes: - New driver for QCS615 platforms - New driver for SAR2130P platforms - New driver for QCS8300 platforms - Probe defer incase of missing QoS clock dependency in rpmh driver - Rename qos_clks_required flag to qos_requires_clocks in rpmh driver - Constify pointers to qcom_icc_node in msm8937 driver Signed-off-by: Georgi Djakov <djakov@kernel.org> * tag 'icc-6.13-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc: interconnect: Use of_property_present() for non-boolean properties dt-bindings: interconnect: qcom-bwmon: Document QCS8300 bwmon compatibles interconnect: qcom: add QCS8300 interconnect provider driver interconnect: Switch back to struct platform_driver::remove() interconnect: qcom: add support for SAR2130P dt-bindings: interconnect: qcom: document SAR2130P NoC interconnect: qcom: add QCS615 interconnect provider driver dt-bindings: interconnect: document the RPMh Network-On-Chip interconnect in QCS615 SoC dt-bindings: interconnect: document the RPMh Network-On-Chip interconnect in QCS8300 SoC interconnect: Remove a useless kfree_const() usage interconnect: qcom: msm8937: constify pointer to qcom_icc_node interconnect: qcom: icc-rpmh: rename qos_clks_required flag interconnect: qcom: icc-rpmh: probe defer incase of missing QoS clock dependency
2 parents ab5bcaf + b1fd28d commit 5a5470d

Some content is hidden

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

58 files changed

+6701
-51
lines changed

Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ properties:
2626
- items:
2727
- enum:
2828
- qcom,qcm2290-cpu-bwmon
29+
- qcom,qcs8300-cpu-bwmon
2930
- qcom,sa8775p-cpu-bwmon
3031
- qcom,sc7180-cpu-bwmon
3132
- qcom,sc7280-cpu-bwmon
@@ -40,6 +41,7 @@ properties:
4041
- const: qcom,sdm845-bwmon # BWMON v4, unified register space
4142
- items:
4243
- enum:
44+
- qcom,qcs8300-llcc-bwmon
4345
- qcom,sa8775p-llcc-bwmon
4446
- qcom,sc7180-llcc-bwmon
4547
- qcom,sc8280xp-llcc-bwmon
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,qcs615-rpmh.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm RPMh Network-On-Chip Interconnect on QCS615
8+
9+
maintainers:
10+
- Raviteja Laggyshetty <quic_rlaggysh@quicinc.com>
11+
12+
description: |
13+
RPMh interconnect providers support system bandwidth requirements through
14+
RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
15+
able to communicate with the BCM through the Resource State Coordinator (RSC)
16+
associated with each execution environment. Provider nodes must point to at
17+
least one RPMh device child node pertaining to their RSC and each provider
18+
can map to multiple RPMh resources.
19+
20+
See also: include/dt-bindings/interconnect/qcom,qcs615-rpmh.h
21+
22+
properties:
23+
compatible:
24+
enum:
25+
- qcom,qcs615-aggre1-noc
26+
- qcom,qcs615-camnoc-virt
27+
- qcom,qcs615-config-noc
28+
- qcom,qcs615-dc-noc
29+
- qcom,qcs615-gem-noc
30+
- qcom,qcs615-ipa-virt
31+
- qcom,qcs615-mc-virt
32+
- qcom,qcs615-mmss-noc
33+
- qcom,qcs615-system-noc
34+
35+
reg:
36+
maxItems: 1
37+
38+
required:
39+
- compatible
40+
41+
allOf:
42+
- $ref: qcom,rpmh-common.yaml#
43+
- if:
44+
properties:
45+
compatible:
46+
contains:
47+
enum:
48+
- qcom,qcs615-camnoc-virt
49+
- qcom,qcs615-ipa-virt
50+
- qcom,qcs615-mc-virt
51+
then:
52+
properties:
53+
reg: false
54+
else:
55+
required:
56+
- reg
57+
58+
unevaluatedProperties: false
59+
60+
examples:
61+
- |
62+
gem_noc: interconnect@9680000 {
63+
compatible = "qcom,qcs615-gem-noc";
64+
reg = <0x9680000 0x3e200>;
65+
#interconnect-cells = <2>;
66+
qcom,bcm-voters = <&apps_bcm_voter>;
67+
};
68+
69+
mc_virt: interconnect-2 {
70+
compatible = "qcom,qcs615-mc-virt";
71+
#interconnect-cells = <2>;
72+
qcom,bcm-voters = <&apps_bcm_voter>;
73+
};
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,qcs8300-rpmh.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm RPMh Network-On-Chip Interconnect on QCS8300
8+
9+
maintainers:
10+
- Raviteja Laggyshetty <quic_rlaggysh@quicinc.com>
11+
12+
description: |
13+
RPMh interconnect providers support system bandwidth requirements through
14+
RPMh hardware accelerators known as Bus Clock Manager (BCM).
15+
16+
See also: include/dt-bindings/interconnect/qcom,qcs8300-rpmh.h
17+
18+
properties:
19+
compatible:
20+
enum:
21+
- qcom,qcs8300-aggre1-noc
22+
- qcom,qcs8300-aggre2-noc
23+
- qcom,qcs8300-clk-virt
24+
- qcom,qcs8300-config-noc
25+
- qcom,qcs8300-dc-noc
26+
- qcom,qcs8300-gem-noc
27+
- qcom,qcs8300-gpdsp-anoc
28+
- qcom,qcs8300-lpass-ag-noc
29+
- qcom,qcs8300-mc-virt
30+
- qcom,qcs8300-mmss-noc
31+
- qcom,qcs8300-nspa-noc
32+
- qcom,qcs8300-pcie-anoc
33+
- qcom,qcs8300-system-noc
34+
35+
reg:
36+
maxItems: 1
37+
38+
required:
39+
- compatible
40+
41+
allOf:
42+
- $ref: qcom,rpmh-common.yaml#
43+
- if:
44+
properties:
45+
compatible:
46+
contains:
47+
enum:
48+
- qcom,qcs8300-clk-virt
49+
- qcom,qcs8300-mc-virt
50+
then:
51+
properties:
52+
reg: false
53+
else:
54+
required:
55+
- reg
56+
57+
unevaluatedProperties: false
58+
59+
examples:
60+
- |
61+
gem_noc: interconnect@9100000 {
62+
compatible = "qcom,qcs8300-gem-noc";
63+
reg = <0x9100000 0xf7080>;
64+
#interconnect-cells = <2>;
65+
qcom,bcm-voters = <&apps_bcm_voter>;
66+
};
67+
68+
clk_virt: interconnect-0 {
69+
compatible = "qcom,qcs8300-clk-virt";
70+
#interconnect-cells = <2>;
71+
qcom,bcm-voters = <&apps_bcm_voter>;
72+
};
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interconnect/qcom,sar2130p-rpmh.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm RPMh Network-On-Chip Interconnect on SAR2130P
8+
9+
maintainers:
10+
- Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
11+
- Georgi Djakov <djakov@kernel.org>
12+
13+
description: |
14+
RPMh interconnect providers support system bandwidth requirements through
15+
RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
16+
able to communicate with the BCM through the Resource State Coordinator (RSC)
17+
associated with each execution environment. Provider nodes must point to at
18+
least one RPMh device child node pertaining to their RSC and each provider
19+
can map to multiple RPMh resources.
20+
21+
See also:: include/dt-bindings/interconnect/qcom,sar2130p-rpmh.h
22+
23+
properties:
24+
compatible:
25+
enum:
26+
- qcom,sar2130p-clk-virt
27+
- qcom,sar2130p-config-noc
28+
- qcom,sar2130p-gem-noc
29+
- qcom,sar2130p-lpass-ag-noc
30+
- qcom,sar2130p-mc-virt
31+
- qcom,sar2130p-mmss-noc
32+
- qcom,sar2130p-nsp-noc
33+
- qcom,sar2130p-pcie-anoc
34+
- qcom,sar2130p-system-noc
35+
36+
reg:
37+
maxItems: 1
38+
39+
clocks:
40+
minItems: 1
41+
maxItems: 2
42+
43+
required:
44+
- compatible
45+
46+
allOf:
47+
- $ref: qcom,rpmh-common.yaml#
48+
- if:
49+
properties:
50+
compatible:
51+
contains:
52+
enum:
53+
- qcom,sar2130p-clk-virt
54+
- qcom,sar2130p-mc-virt
55+
then:
56+
properties:
57+
reg: false
58+
else:
59+
required:
60+
- reg
61+
62+
- if:
63+
properties:
64+
compatible:
65+
contains:
66+
enum:
67+
- qcom,sar2130p-pcie-anoc
68+
then:
69+
properties:
70+
clocks:
71+
items:
72+
- description: aggre-NOC PCIe AXI clock
73+
- description: cfg-NOC PCIe a-NOC AHB clock
74+
75+
- if:
76+
properties:
77+
compatible:
78+
contains:
79+
enum:
80+
- qcom,sar2130p-system-noc
81+
then:
82+
properties:
83+
clocks:
84+
items:
85+
- description: aggre USB3 PRIM AXI clock
86+
87+
- if:
88+
properties:
89+
compatible:
90+
contains:
91+
enum:
92+
- qcom,sar2130p-system-noc
93+
- qcom,sar2130p-pcie-anoc
94+
then:
95+
required:
96+
- clocks
97+
else:
98+
properties:
99+
clocks: false
100+
101+
unevaluatedProperties: false
102+
103+
examples:
104+
- |
105+
clk_virt: interconnect-0 {
106+
compatible = "qcom,sar2130p-clk-virt";
107+
#interconnect-cells = <2>;
108+
qcom,bcm-voters = <&apps_bcm_voter>;
109+
};
110+
111+
aggre1_noc: interconnect@1680000 {
112+
compatible = "qcom,sar2130p-system-noc";
113+
reg = <0x01680000 0x29080>;
114+
#interconnect-cells = <2>;
115+
clocks = <&gcc_prim_axi_clk>;
116+
qcom,bcm-voters = <&apps_bcm_voter>;
117+
};

drivers/interconnect/core.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -808,7 +808,7 @@ void icc_put(struct icc_path *path)
808808
mutex_unlock(&icc_bw_lock);
809809
mutex_unlock(&icc_lock);
810810

811-
kfree_const(path->name);
811+
kfree(path->name);
812812
kfree(path);
813813
}
814814
EXPORT_SYMBOL_GPL(icc_put);
@@ -1081,7 +1081,7 @@ static int of_count_icc_providers(struct device_node *np)
10811081
int count = 0;
10821082

10831083
for_each_available_child_of_node(np, child) {
1084-
if (of_property_read_bool(child, "#interconnect-cells") &&
1084+
if (of_property_present(child, "#interconnect-cells") &&
10851085
likely(!of_match_node(ignore_list, child)))
10861086
count++;
10871087
count += of_count_icc_providers(child);

drivers/interconnect/imx/imx8mm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ static int imx8mm_icc_probe(struct platform_device *pdev)
8888

8989
static struct platform_driver imx8mm_icc_driver = {
9090
.probe = imx8mm_icc_probe,
91-
.remove_new = imx_icc_unregister,
91+
.remove = imx_icc_unregister,
9292
.driver = {
9393
.name = "imx8mm-interconnect",
9494
},

drivers/interconnect/imx/imx8mn.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ static int imx8mn_icc_probe(struct platform_device *pdev)
7777

7878
static struct platform_driver imx8mn_icc_driver = {
7979
.probe = imx8mn_icc_probe,
80-
.remove_new = imx_icc_unregister,
80+
.remove = imx_icc_unregister,
8181
.driver = {
8282
.name = "imx8mn-interconnect",
8383
},

drivers/interconnect/imx/imx8mp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ static int imx8mp_icc_probe(struct platform_device *pdev)
241241

242242
static struct platform_driver imx8mp_icc_driver = {
243243
.probe = imx8mp_icc_probe,
244-
.remove_new = imx_icc_unregister,
244+
.remove = imx_icc_unregister,
245245
.driver = {
246246
.name = "imx8mp-interconnect",
247247
},

drivers/interconnect/imx/imx8mq.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ static int imx8mq_icc_probe(struct platform_device *pdev)
8787

8888
static struct platform_driver imx8mq_icc_driver = {
8989
.probe = imx8mq_icc_probe,
90-
.remove_new = imx_icc_unregister,
90+
.remove = imx_icc_unregister,
9191
.driver = {
9292
.name = "imx8mq-interconnect",
9393
.sync_state = icc_sync_state,

drivers/interconnect/mediatek/mt8183.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ static struct platform_driver mtk_emi_icc_mt8183_driver = {
133133
.sync_state = icc_sync_state,
134134
},
135135
.probe = mtk_emi_icc_probe,
136-
.remove_new = mtk_emi_icc_remove,
136+
.remove = mtk_emi_icc_remove,
137137

138138
};
139139
module_platform_driver(mtk_emi_icc_mt8183_driver);

0 commit comments

Comments
 (0)