Skip to content

Commit 08906ab

Browse files
committed
Merge tag 'rproc-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
Pull remoteproc updates from Bjorn Andersson: "Make Qualcomm TrustZone Peripherial Authentication Service-remoteproc identifier/name human friendly. Add audio DSP support for the Qualcomm SAR2130P. Ensure IMEM access in the Qualcomm modem remoteproc driver is performed prior to the firmware enabling the XPU and locking us out. Improve error handling, error logging, compile testing support, and a few other stylistic things across a variety of the drivers" * tag 'rproc-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (30 commits) remoteproc: qcom: wcss: Remove double assignment in q6v5_wcss_probe() remoteproc: qcom_q6v5_mss: Re-order writes to the IMEM region remoteproc: qcom_wcnss_iris: Simplify with dev_err_probe() remoteproc: qcom_q6v5_wcss: Simplify with dev_err_probe() remoteproc: qcom_q6v5_pas: Simplify with dev_err_probe() remoteproc: qcom_q6v5_mss: Drop redundant error printks in probe remoteproc: qcom_q6v5_mss: Simplify with dev_err_probe() remoteproc: qcom_q6v5_adsp: Simplify with dev_err_probe() remoteproc: qcom_q6v5_pas: disable auto boot for wpss remoteproc: qcom: pas: Make remoteproc name human friendly remoteproc: qcom: pas: enable SAR2130P audio DSP support remoteproc: qcom: pas: add minidump_id to SM8350 resources dt-bindings: remoteproc: qcom,sm8350-pas: add SAR2130P aDSP compatible dt-bindings: remoteproc: qcom,sm8550-pas: Add SM8750 ADSP remoteproc: qcom: wcss: Remove subdevs on the error path of q6v5_wcss_probe() remoteproc: qcom: adsp: Remove subdevs on the error path of adsp_probe() remoteproc: qcom: pas: Remove subdevs on the error path of adsp_probe() remoteproc: Switch back to struct platform_driver::remove() remoteproc: k3-dsp: Force cast from iomem address space remoteproc: k3-r5: Force cast from iomem address space ...
2 parents 727968f + 44024eb commit 08906ab

24 files changed

+212
-261
lines changed

Documentation/devicetree/bindings/remoteproc/qcom,sm8350-pas.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ description:
1616
properties:
1717
compatible:
1818
enum:
19+
- qcom,sar2130p-adsp-pas
1920
- qcom,sm8350-adsp-pas
2021
- qcom,sm8350-cdsp-pas
2122
- qcom,sm8350-slpi-pas
@@ -61,6 +62,7 @@ allOf:
6162
properties:
6263
compatible:
6364
enum:
65+
- qcom,sar2130p-adsp-pas
6466
- qcom,sm8350-adsp-pas
6567
- qcom,sm8350-cdsp-pas
6668
- qcom,sm8350-slpi-pas
@@ -101,6 +103,7 @@ allOf:
101103
properties:
102104
compatible:
103105
enum:
106+
- qcom,sar2130p-adsp-pas
104107
- qcom,sm8350-adsp-pas
105108
- qcom,sm8350-slpi-pas
106109
- qcom,sm8450-adsp-pas

Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml

+34-14
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,20 @@ description:
1515

1616
properties:
1717
compatible:
18-
enum:
19-
- qcom,sdx75-mpss-pas
20-
- qcom,sm8550-adsp-pas
21-
- qcom,sm8550-cdsp-pas
22-
- qcom,sm8550-mpss-pas
23-
- qcom,sm8650-adsp-pas
24-
- qcom,sm8650-cdsp-pas
25-
- qcom,sm8650-mpss-pas
26-
- qcom,x1e80100-adsp-pas
27-
- qcom,x1e80100-cdsp-pas
18+
oneOf:
19+
- enum:
20+
- qcom,sdx75-mpss-pas
21+
- qcom,sm8550-adsp-pas
22+
- qcom,sm8550-cdsp-pas
23+
- qcom,sm8550-mpss-pas
24+
- qcom,sm8650-adsp-pas
25+
- qcom,sm8650-cdsp-pas
26+
- qcom,sm8650-mpss-pas
27+
- qcom,x1e80100-adsp-pas
28+
- qcom,x1e80100-cdsp-pas
29+
- items:
30+
- const: qcom,sm8750-adsp-pas
31+
- const: qcom,sm8550-adsp-pas
2832

2933
reg:
3034
maxItems: 1
@@ -82,6 +86,20 @@ allOf:
8286
maxItems: 5
8387
memory-region:
8488
maxItems: 2
89+
- if:
90+
properties:
91+
compatible:
92+
contains:
93+
enum:
94+
- qcom,sm8750-adsp-pas
95+
then:
96+
properties:
97+
interrupts:
98+
maxItems: 6
99+
interrupt-names:
100+
maxItems: 6
101+
memory-region:
102+
maxItems: 2
85103
- if:
86104
properties:
87105
compatible:
@@ -129,10 +147,12 @@ allOf:
129147
- if:
130148
properties:
131149
compatible:
132-
enum:
133-
- qcom,sm8550-adsp-pas
134-
- qcom,sm8650-adsp-pas
135-
- qcom,x1e80100-adsp-pas
150+
contains:
151+
enum:
152+
- qcom,sm8550-adsp-pas
153+
- qcom,sm8650-adsp-pas
154+
- qcom,sm8750-adsp-pas
155+
- qcom,x1e80100-adsp-pas
136156
then:
137157
properties:
138158
power-domains:

drivers/remoteproc/Kconfig

+7-5
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,8 @@ config STM32_RPROC
329329

330330
config TI_K3_DSP_REMOTEPROC
331331
tristate "TI K3 DSP remoteproc support"
332-
depends on ARCH_K3
332+
depends on ARCH_K3 || COMPILE_TEST
333+
depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=n)
333334
depends on OMAP2PLUS_MBOX
334335
help
335336
Say m here to support TI's C66x and C71x DSP remote processor
@@ -341,9 +342,9 @@ config TI_K3_DSP_REMOTEPROC
341342

342343
config TI_K3_M4_REMOTEPROC
343344
tristate "TI K3 M4 remoteproc support"
344-
depends on ARCH_OMAP2PLUS || ARCH_K3
345-
select MAILBOX
346-
select OMAP2PLUS_MBOX
345+
depends on ARCH_K3 || COMPILE_TEST
346+
depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=n)
347+
depends on OMAP2PLUS_MBOX
347348
help
348349
Say m here to support TI's M4 remote processor subsystems
349350
on various TI K3 family of SoCs through the remote processor
@@ -354,7 +355,8 @@ config TI_K3_M4_REMOTEPROC
354355

355356
config TI_K3_R5_REMOTEPROC
356357
tristate "TI K3 R5 remoteproc support"
357-
depends on ARCH_K3
358+
depends on ARCH_K3 || COMPILE_TEST
359+
depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=n)
358360
depends on OMAP2PLUS_MBOX
359361
help
360362
Say m here to support TI's R5F remote processor subsystems

drivers/remoteproc/da8xx_remoteproc.c

+9-22
Original file line numberDiff line numberDiff line change
@@ -251,10 +251,8 @@ static int da8xx_rproc_probe(struct platform_device *pdev)
251251
return irq;
252252

253253
irq_data = irq_get_irq_data(irq);
254-
if (!irq_data) {
255-
dev_err(dev, "irq_get_irq_data(%d): NULL\n", irq);
256-
return -EINVAL;
257-
}
254+
if (!irq_data)
255+
return dev_err_probe(dev, -EINVAL, "irq_get_irq_data(%d): NULL\n", irq);
258256

259257
bootreg = devm_platform_ioremap_resource_byname(pdev, "host1cfg");
260258
if (IS_ERR(bootreg))
@@ -265,28 +263,17 @@ static int da8xx_rproc_probe(struct platform_device *pdev)
265263
return PTR_ERR(chipsig);
266264

267265
dsp_clk = devm_clk_get(dev, NULL);
268-
if (IS_ERR(dsp_clk)) {
269-
dev_err(dev, "clk_get error: %ld\n", PTR_ERR(dsp_clk));
270-
271-
return PTR_ERR(dsp_clk);
272-
}
266+
if (IS_ERR(dsp_clk))
267+
return dev_err_probe(dev, PTR_ERR(dsp_clk), "clk_get error\n");
273268

274269
dsp_reset = devm_reset_control_get_exclusive(dev, NULL);
275-
if (IS_ERR(dsp_reset)) {
276-
if (PTR_ERR(dsp_reset) != -EPROBE_DEFER)
277-
dev_err(dev, "unable to get reset control: %ld\n",
278-
PTR_ERR(dsp_reset));
279-
280-
return PTR_ERR(dsp_reset);
281-
}
270+
if (IS_ERR(dsp_reset))
271+
return dev_err_probe(dev, PTR_ERR(dsp_reset), "unable to get reset control\n");
282272

283273
if (dev->of_node) {
284274
ret = of_reserved_mem_device_init(dev);
285-
if (ret) {
286-
dev_err(dev, "device does not have specific CMA pool: %d\n",
287-
ret);
288-
return ret;
289-
}
275+
if (ret)
276+
return dev_err_probe(dev, ret, "device does not have specific CMA pool\n");
290277
}
291278

292279
rproc = rproc_alloc(dev, "dsp", &da8xx_rproc_ops, da8xx_fw_name,
@@ -378,7 +365,7 @@ MODULE_DEVICE_TABLE(of, davinci_rproc_of_match);
378365

379366
static struct platform_driver da8xx_rproc_driver = {
380367
.probe = da8xx_rproc_probe,
381-
.remove_new = da8xx_rproc_remove,
368+
.remove = da8xx_rproc_remove,
382369
.driver = {
383370
.name = "davinci-rproc",
384371
.of_match_table = of_match_ptr(davinci_rproc_of_match),

drivers/remoteproc/imx_dsp_rproc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1258,7 +1258,7 @@ MODULE_DEVICE_TABLE(of, imx_dsp_rproc_of_match);
12581258

12591259
static struct platform_driver imx_dsp_rproc_driver = {
12601260
.probe = imx_dsp_rproc_probe,
1261-
.remove_new = imx_dsp_rproc_remove,
1261+
.remove = imx_dsp_rproc_remove,
12621262
.driver = {
12631263
.name = "imx-dsp-rproc",
12641264
.of_match_table = imx_dsp_rproc_of_match,

drivers/remoteproc/imx_rproc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1198,7 +1198,7 @@ MODULE_DEVICE_TABLE(of, imx_rproc_of_match);
11981198

11991199
static struct platform_driver imx_rproc_driver = {
12001200
.probe = imx_rproc_probe,
1201-
.remove_new = imx_rproc_remove,
1201+
.remove = imx_rproc_remove,
12021202
.driver = {
12031203
.name = "imx-rproc",
12041204
.of_match_table = imx_rproc_of_match,

drivers/remoteproc/keystone_remoteproc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ MODULE_DEVICE_TABLE(of, keystone_rproc_of_match);
490490

491491
static struct platform_driver keystone_rproc_driver = {
492492
.probe = keystone_rproc_probe,
493-
.remove_new = keystone_rproc_remove,
493+
.remove = keystone_rproc_remove,
494494
.driver = {
495495
.name = "keystone-rproc",
496496
.of_match_table = keystone_rproc_of_match,

drivers/remoteproc/meson_mx_ao_arc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ MODULE_DEVICE_TABLE(of, meson_mx_ao_arc_rproc_match);
246246

247247
static struct platform_driver meson_mx_ao_arc_rproc_driver = {
248248
.probe = meson_mx_ao_arc_rproc_probe,
249-
.remove_new = meson_mx_ao_arc_rproc_remove,
249+
.remove = meson_mx_ao_arc_rproc_remove,
250250
.driver = {
251251
.name = "meson-mx-ao-arc-rproc",
252252
.of_match_table = meson_mx_ao_arc_rproc_match,

drivers/remoteproc/mtk_scp.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1521,7 +1521,7 @@ MODULE_DEVICE_TABLE(of, mtk_scp_of_match);
15211521

15221522
static struct platform_driver mtk_scp_driver = {
15231523
.probe = scp_probe,
1524-
.remove_new = scp_remove,
1524+
.remove = scp_remove,
15251525
.driver = {
15261526
.name = "mtk-scp",
15271527
.of_match_table = mtk_scp_of_match,

drivers/remoteproc/pru_rproc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1132,7 +1132,7 @@ static struct platform_driver pru_rproc_driver = {
11321132
.suppress_bind_attrs = true,
11331133
},
11341134
.probe = pru_rproc_probe,
1135-
.remove_new = pru_rproc_remove,
1135+
.remove = pru_rproc_remove,
11361136
};
11371137
module_platform_driver(pru_rproc_driver);
11381138

drivers/remoteproc/qcom_q6v5_adsp.c

+16-14
Original file line numberDiff line numberDiff line change
@@ -534,15 +534,11 @@ static const struct rproc_ops adsp_ops = {
534534
static int adsp_init_clock(struct qcom_adsp *adsp, const char **clk_ids)
535535
{
536536
int num_clks = 0;
537-
int i, ret;
537+
int i;
538538

539539
adsp->xo = devm_clk_get(adsp->dev, "xo");
540-
if (IS_ERR(adsp->xo)) {
541-
ret = PTR_ERR(adsp->xo);
542-
if (ret != -EPROBE_DEFER)
543-
dev_err(adsp->dev, "failed to get xo clock");
544-
return ret;
545-
}
540+
if (IS_ERR(adsp->xo))
541+
return dev_err_probe(adsp->dev, PTR_ERR(adsp->xo), "failed to get xo clock");
546542

547543
for (i = 0; clk_ids[i]; i++)
548544
num_clks++;
@@ -708,10 +704,9 @@ static int adsp_probe(struct platform_device *pdev)
708704
return ret;
709705

710706
ret = qcom_rproc_pds_attach(adsp, desc->pd_names, desc->num_pds);
711-
if (ret < 0) {
712-
dev_err(&pdev->dev, "Failed to attach proxy power domains\n");
713-
return ret;
714-
}
707+
if (ret < 0)
708+
return dev_err_probe(&pdev->dev, ret,
709+
"Failed to attach proxy power domains\n");
715710

716711
ret = adsp_init_reset(adsp);
717712
if (ret)
@@ -734,15 +729,22 @@ static int adsp_probe(struct platform_device *pdev)
734729
desc->ssctl_id);
735730
if (IS_ERR(adsp->sysmon)) {
736731
ret = PTR_ERR(adsp->sysmon);
737-
goto disable_pm;
732+
goto deinit_remove_glink_pdm_ssr;
738733
}
739734

740735
ret = rproc_add(rproc);
741736
if (ret)
742-
goto disable_pm;
737+
goto remove_sysmon;
743738

744739
return 0;
745740

741+
remove_sysmon:
742+
qcom_remove_sysmon_subdev(adsp->sysmon);
743+
deinit_remove_glink_pdm_ssr:
744+
qcom_q6v5_deinit(&adsp->q6v5);
745+
qcom_remove_glink_subdev(rproc, &adsp->glink_subdev);
746+
qcom_remove_pdm_subdev(rproc, &adsp->pdm_subdev);
747+
qcom_remove_ssr_subdev(rproc, &adsp->ssr_subdev);
746748
disable_pm:
747749
qcom_rproc_pds_detach(adsp);
748750

@@ -840,7 +842,7 @@ MODULE_DEVICE_TABLE(of, adsp_of_match);
840842

841843
static struct platform_driver adsp_pil_driver = {
842844
.probe = adsp_probe,
843-
.remove_new = adsp_remove,
845+
.remove = adsp_remove,
844846
.driver = {
845847
.name = "qcom_q6v5_adsp",
846848
.of_match_table = adsp_of_match,

0 commit comments

Comments
 (0)