Skip to content

Commit 75afd02

Browse files
committed
Merge tag 'mailbox-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox
Pull mailbox updates from Jassi Brar: - add CMDQ support for mediatek mt8188 - mhuv2: fix channel window status - qcom: document X1E80100 IPC controller and misc cleanup - add Versal bindings to xlnx - Convert to platform remove callback returning void * tag 'mailbox-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox: (23 commits) mailbox: mtk-cmdq: Add CMDQ driver support for mt8188 mailbox: mtk-cmdq: Sort cmdq platform data by compatible name mailbox: mtk-cmdq: Rename gce_plat variable with SoC name postfix dt-bindings: mailbox: qcom-ipcc: document the X1E80100 Inter-Processor Communication Controller mailbox: zynqmp-ipi: Convert to platform remove callback returning void mailbox: tegra-hsp: Convert to platform remove callback returning void mailbox: sun6i-msgbox: Convert to platform remove callback returning void mailbox: stm32-ipcc: Convert to platform remove callback returning void mailbox: qcom-ipcc: Convert to platform remove callback returning void mailbox: qcom-apcs-ipc: Convert to platform remove callback returning void mailbox: omap: Convert to platform remove callback returning void mailbox: mtk-cmdq: Convert to platform remove callback returning void mailbox: mailbox-test: Convert to platform remove callback returning void mailbox: imx: Convert to platform remove callback returning void mailbox: bcm-pdc: Convert to platform remove callback returning void mailbox: bcm-flexrm: Convert to platform remove callback returning void mailbox: zynqmp-ipi: fix an Excess struct member kernel-doc warning dt-bindings: mailbox: add Versal IPI bindings dt-bindings: mailbox: zynqmp: extend required list mailbox: arm_mhuv2: Fix a bug for mhuv2_sender_interrupt ...
2 parents 08df80a + cd795fb commit 75afd02

16 files changed

+220
-103
lines changed

Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml

Lines changed: 43 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,24 @@ properties:
2323
- qcom,ipq8074-apcs-apps-global
2424
- qcom,ipq9574-apcs-apps-global
2525
- const: qcom,ipq6018-apcs-apps-global
26+
- items:
27+
- enum:
28+
- qcom,qcs404-apcs-apps-global
29+
- const: qcom,msm8916-apcs-kpss-global
30+
- const: syscon
31+
- items:
32+
- enum:
33+
- qcom,msm8976-apcs-kpss-global
34+
- const: qcom,msm8994-apcs-kpss-global
35+
- const: syscon
36+
- items:
37+
- enum:
38+
- qcom,msm8998-apcs-hmss-global
39+
- qcom,sdm660-apcs-hmss-global
40+
- qcom,sm4250-apcs-hmss-global
41+
- qcom,sm6115-apcs-hmss-global
42+
- qcom,sm6125-apcs-hmss-global
43+
- const: qcom,msm8994-apcs-kpss-global
2644
- items:
2745
- enum:
2846
- qcom,sc7180-apss-shared
@@ -34,22 +52,14 @@ properties:
3452
- qcom,msm8916-apcs-kpss-global
3553
- qcom,msm8939-apcs-kpss-global
3654
- qcom,msm8953-apcs-kpss-global
37-
- qcom,msm8976-apcs-kpss-global
3855
- qcom,msm8994-apcs-kpss-global
39-
- qcom,qcs404-apcs-apps-global
4056
- qcom,sdx55-apcs-gcc
4157
- const: syscon
4258
- enum:
4359
- qcom,ipq6018-apcs-apps-global
44-
- qcom,ipq8074-apcs-apps-global
4560
- qcom,msm8996-apcs-hmss-global
46-
- qcom,msm8998-apcs-hmss-global
4761
- qcom,qcm2290-apcs-hmss-global
48-
- qcom,sdm660-apcs-hmss-global
4962
- qcom,sdm845-apss-shared
50-
- qcom,sm4250-apcs-hmss-global
51-
- qcom,sm6115-apcs-hmss-global
52-
- qcom,sm6125-apcs-hmss-global
5363

5464
reg:
5565
maxItems: 1
@@ -80,20 +90,38 @@ allOf:
8090
- if:
8191
properties:
8292
compatible:
83-
enum:
84-
- qcom,msm8916-apcs-kpss-global
85-
- qcom,msm8939-apcs-kpss-global
86-
- qcom,qcs404-apcs-apps-global
93+
contains:
94+
enum:
95+
- qcom,msm8916-apcs-kpss-global
96+
then:
97+
properties:
98+
clocks:
99+
items:
100+
- description: primary pll parent of the clock driver
101+
- description: auxiliary parent
102+
clock-names:
103+
items:
104+
- const: pll
105+
- const: aux
106+
107+
- if:
108+
properties:
109+
compatible:
110+
contains:
111+
enum:
112+
- qcom,msm8939-apcs-kpss-global
87113
then:
88114
properties:
89115
clocks:
90116
items:
91117
- description: primary pll parent of the clock driver
92118
- description: auxiliary parent
119+
- description: reference clock
93120
clock-names:
94121
items:
95122
- const: pll
96123
- const: aux
124+
- const: ref
97125

98126
- if:
99127
properties:
@@ -113,6 +141,7 @@ allOf:
113141
- const: ref
114142
- const: pll
115143
- const: aux
144+
116145
- if:
117146
properties:
118147
compatible:
@@ -137,16 +166,10 @@ allOf:
137166
compatible:
138167
enum:
139168
- qcom,msm8953-apcs-kpss-global
140-
- qcom,msm8976-apcs-kpss-global
141169
- qcom,msm8994-apcs-kpss-global
142170
- qcom,msm8996-apcs-hmss-global
143-
- qcom,msm8998-apcs-hmss-global
144171
- qcom,qcm2290-apcs-hmss-global
145-
- qcom,sdm660-apcs-hmss-global
146172
- qcom,sdm845-apss-shared
147-
- qcom,sm4250-apcs-hmss-global
148-
- qcom,sm6115-apcs-hmss-global
149-
- qcom,sm6125-apcs-hmss-global
150173
then:
151174
properties:
152175
clocks: false
@@ -192,7 +215,8 @@ examples:
192215
#define GCC_APSS_AHB_CLK_SRC 1
193216
#define GCC_GPLL0_AO_OUT_MAIN 123
194217
apcs: mailbox@b011000 {
195-
compatible = "qcom,qcs404-apcs-apps-global", "syscon";
218+
compatible = "qcom,qcs404-apcs-apps-global",
219+
"qcom,msm8916-apcs-kpss-global", "syscon";
196220
reg = <0x0b011000 0x1000>;
197221
#mbox-cells = <1>;
198222
clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;

Documentation/devicetree/bindings/mailbox/qcom-ipcc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ properties:
3535
- qcom,sm8450-ipcc
3636
- qcom,sm8550-ipcc
3737
- qcom,sm8650-ipcc
38+
- qcom,x1e80100-ipcc
3839
- const: qcom,ipcc
3940

4041
reg:

Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml

Lines changed: 119 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ maintainers:
3737

3838
properties:
3939
compatible:
40-
const: xlnx,zynqmp-ipi-mailbox
40+
enum:
41+
- xlnx,zynqmp-ipi-mailbox
42+
- xlnx,versal-ipi-mailbox
4143

4244
method:
4345
description: |
@@ -58,6 +60,12 @@ properties:
5860
'#size-cells':
5961
const: 2
6062

63+
reg:
64+
maxItems: 2
65+
66+
reg-names:
67+
maxItems: 2
68+
6169
xlnx,ipi-id:
6270
description: |
6371
Remote Xilinx IPI agent ID of which the mailbox is connected to.
@@ -76,7 +84,17 @@ patternProperties:
7684
properties:
7785

7886
compatible:
79-
const: xlnx,zynqmp-ipi-dest-mailbox
87+
enum:
88+
- xlnx,zynqmp-ipi-dest-mailbox
89+
- xlnx,versal-ipi-dest-mailbox
90+
91+
reg:
92+
minItems: 1
93+
maxItems: 4
94+
95+
reg-names:
96+
minItems: 1
97+
maxItems: 4
8098

8199
xlnx,ipi-id:
82100
description:
@@ -88,23 +106,44 @@ patternProperties:
88106
description:
89107
It contains tx(0) or rx(1) channel IPI id number.
90108

91-
reg:
92-
maxItems: 4
93-
94-
reg-names:
95-
items:
96-
- const: local_request_region
97-
- const: local_response_region
98-
- const: remote_request_region
99-
- const: remote_response_region
109+
allOf:
110+
- if:
111+
properties:
112+
compatible:
113+
contains:
114+
enum:
115+
- xlnx,zynqmp-ipi-dest-mailbox
116+
then:
117+
properties:
118+
reg:
119+
maxItems: 4
120+
121+
reg-names:
122+
items:
123+
- const: local_request_region
124+
- const: local_response_region
125+
- const: remote_request_region
126+
- const: remote_response_region
127+
else:
128+
properties:
129+
reg:
130+
minItems: 1
131+
items:
132+
- description: Remote IPI agent control register region
133+
- description: Remote IPI agent optional message buffers
134+
135+
reg-names:
136+
minItems: 1
137+
items:
138+
- const: ctrl
139+
- const: msg
100140

101141
required:
102142
- compatible
103143
- reg
104144
- reg-names
105145
- "#mbox-cells"
106-
107-
additionalProperties: false
146+
- xlnx,ipi-id
108147

109148
required:
110149
- compatible
@@ -113,6 +152,36 @@ required:
113152
- '#size-cells'
114153
- xlnx,ipi-id
115154

155+
allOf:
156+
- if:
157+
properties:
158+
compatible:
159+
contains:
160+
enum:
161+
- xlnx,zynqmp-ipi-mailbox
162+
then:
163+
properties:
164+
reg: false
165+
reg-names: false
166+
167+
else:
168+
properties:
169+
reg:
170+
items:
171+
- description: Host IPI agent control register region
172+
- description: Host IPI agent optional message buffers
173+
174+
reg-names:
175+
items:
176+
- const: ctrl
177+
- const: msg
178+
179+
required:
180+
- reg
181+
- reg-names
182+
183+
additionalProperties: false
184+
116185
examples:
117186
- |
118187
#include<dt-bindings/interrupt-controller/arm-gic.h>
@@ -144,4 +213,41 @@ examples:
144213
};
145214
};
146215
216+
- |
217+
#include<dt-bindings/interrupt-controller/arm-gic.h>
218+
219+
bus {
220+
#address-cells = <2>;
221+
#size-cells = <2>;
222+
mailbox@ff300000 {
223+
compatible = "xlnx,versal-ipi-mailbox";
224+
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
225+
#address-cells = <2>;
226+
#size-cells = <2>;
227+
reg = <0x0 0xff300000 0x0 0x1000>,
228+
<0x0 0xff990000 0x0 0x1ff>;
229+
reg-names = "ctrl", "msg";
230+
xlnx,ipi-id = <0>;
231+
ranges;
232+
233+
/* buffered IPI */
234+
mailbox@ff340000 {
235+
compatible = "xlnx,versal-ipi-dest-mailbox";
236+
reg = <0x0 0xff340000 0x0 0x1000>,
237+
<0x0 0xff990400 0x0 0x1ff>;
238+
reg-names = "ctrl", "msg";
239+
#mbox-cells = <1>;
240+
xlnx,ipi-id = <4>;
241+
};
242+
243+
/* bufferless IPI */
244+
mailbox@ff370000 {
245+
compatible = "xlnx,versal-ipi-dest-mailbox";
246+
reg = <0x0 0xff370000 0x0 0x1000>;
247+
reg-names = "ctrl";
248+
#mbox-cells = <1>;
249+
xlnx,ipi-id = <7>;
250+
};
251+
};
252+
};
147253
...

drivers/mailbox/arm_mhuv2.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,8 @@ static irqreturn_t mhuv2_sender_interrupt(int irq, void *data)
553553
priv = chan->con_priv;
554554

555555
if (!IS_PROTOCOL_DOORBELL(priv)) {
556-
writel_relaxed(1, &mhu->send->ch_wn[priv->ch_wn_idx + priv->windows - 1].int_clr);
556+
for (i = 0; i < priv->windows; i++)
557+
writel_relaxed(1, &mhu->send->ch_wn[priv->ch_wn_idx + i].int_clr);
557558

558559
if (chan->cl) {
559560
mbox_chan_txdone(chan, 0);

drivers/mailbox/bcm-flexrm-mailbox.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1650,7 +1650,7 @@ static int flexrm_mbox_probe(struct platform_device *pdev)
16501650
return ret;
16511651
}
16521652

1653-
static int flexrm_mbox_remove(struct platform_device *pdev)
1653+
static void flexrm_mbox_remove(struct platform_device *pdev)
16541654
{
16551655
struct device *dev = &pdev->dev;
16561656
struct flexrm_mbox *mbox = platform_get_drvdata(pdev);
@@ -1661,8 +1661,6 @@ static int flexrm_mbox_remove(struct platform_device *pdev)
16611661

16621662
dma_pool_destroy(mbox->cmpl_pool);
16631663
dma_pool_destroy(mbox->bd_pool);
1664-
1665-
return 0;
16661664
}
16671665

16681666
static const struct of_device_id flexrm_mbox_of_match[] = {
@@ -1677,7 +1675,7 @@ static struct platform_driver flexrm_mbox_driver = {
16771675
.of_match_table = flexrm_mbox_of_match,
16781676
},
16791677
.probe = flexrm_mbox_probe,
1680-
.remove = flexrm_mbox_remove,
1678+
.remove_new = flexrm_mbox_remove,
16811679
};
16821680
module_platform_driver(flexrm_mbox_driver);
16831681

drivers/mailbox/bcm-pdc-mailbox.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1605,7 +1605,7 @@ static int pdc_probe(struct platform_device *pdev)
16051605
return err;
16061606
}
16071607

1608-
static int pdc_remove(struct platform_device *pdev)
1608+
static void pdc_remove(struct platform_device *pdev)
16091609
{
16101610
struct pdc_state *pdcs = platform_get_drvdata(pdev);
16111611

@@ -1617,12 +1617,11 @@ static int pdc_remove(struct platform_device *pdev)
16171617

16181618
dma_pool_destroy(pdcs->rx_buf_pool);
16191619
dma_pool_destroy(pdcs->ring_pool);
1620-
return 0;
16211620
}
16221621

16231622
static struct platform_driver pdc_mbox_driver = {
16241623
.probe = pdc_probe,
1625-
.remove = pdc_remove,
1624+
.remove_new = pdc_remove,
16261625
.driver = {
16271626
.name = "brcm-iproc-pdc-mbox",
16281627
.of_match_table = pdc_mbox_of_match,

drivers/mailbox/imx-mailbox.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -903,13 +903,11 @@ static int imx_mu_probe(struct platform_device *pdev)
903903
return ret;
904904
}
905905

906-
static int imx_mu_remove(struct platform_device *pdev)
906+
static void imx_mu_remove(struct platform_device *pdev)
907907
{
908908
struct imx_mu_priv *priv = platform_get_drvdata(pdev);
909909

910910
pm_runtime_disable(priv->dev);
911-
912-
return 0;
913911
}
914912

915913
static const struct imx_mu_dcfg imx_mu_cfg_imx6sx = {
@@ -1070,7 +1068,7 @@ static const struct dev_pm_ops imx_mu_pm_ops = {
10701068

10711069
static struct platform_driver imx_mu_driver = {
10721070
.probe = imx_mu_probe,
1073-
.remove = imx_mu_remove,
1071+
.remove_new = imx_mu_remove,
10741072
.driver = {
10751073
.name = "imx_mu",
10761074
.of_match_table = imx_mu_dt_ids,

0 commit comments

Comments
 (0)