Skip to content

Commit abfbb29

Browse files
committed
Merge tag 'rproc-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc
Pull remoteproc updates from Bjorn Andersson: "This introduces device managed versions of functions used to register remoteproc devices, add support for remoteproc driver specific resource control, enables remoteproc drivers to specify ELF class and machine for coredumps. It integrates pm_runtime in the core for keeping resources active while the remote is booted and holds a wake source while recoverying a remote processor after a firmware crash. It refactors the remoteproc device's allocation path to simplify the logic, fix a few cleanup bugs and to not clone const strings onto the heap. Debugfs code is simplifies using the DEFINE_SHOW_ATTRIBUTE and a zero-length array is replaced with flexible-array. A new remoteproc driver for the JZ47xx VPU is introduced, the Qualcomm SM8250 gains support for audio, compute and sensor remoteprocs and the Qualcomm SC7180 modem support is cleaned up and improved. The Qualcomm glink subsystem-restart driver is merged into the main glink driver, the Qualcomm sysmon driver is extended to properly notify remote processors about all other remote processors' state transitions" * tag 'rproc-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc: (43 commits) remoteproc: Fix an error code in devm_rproc_alloc() MAINTAINERS: Add myself as reviewer for Ingenic rproc driver remoteproc: ingenic: Added remoteproc driver remoteproc: Add support for runtime PM dt-bindings: Document JZ47xx VPU auxiliary processor remoteproc: wcss: Fix arguments passed to qcom_add_glink_subdev() remoteproc: Fix and restore the parenting hierarchy for vdev remoteproc: Fall back to using parent memory pool if no dedicated available remoteproc: Replace zero-length array with flexible-array remoteproc: wcss: add support for rpmsg communication remoteproc: core: Prevent system suspend during remoteproc recovery remoteproc: qcom_q6v5_mss: Remove unused q6v5_da_to_va function remoteproc: qcom_q6v5_mss: map/unmap mpss segments before/after use remoteproc: qcom_q6v5_mss: Drop accesses to MPSS PERPH register space dt-bindings: remoteproc: qcom: Replace halt-nav with spare-regs remoteproc: qcom: pas: Add SM8250 PAS remoteprocs dt-bindings: remoteproc: qcom: pas: Add SM8250 remoteprocs remoteproc: qcom_q6v5_mss: Extract mba/mpss from memory-region dt-bindings: remoteproc: qcom: Use memory-region to reference memory remoteproc: qcom: pas: Add SC7180 Modem support ...
2 parents d26a42a + 7dcef39 commit abfbb29

31 files changed

+921
-277
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: "http://devicetree.org/schemas/remoteproc/ingenic,vpu.yaml#"
5+
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6+
7+
title: Ingenic Video Processing Unit bindings
8+
9+
description:
10+
Inside the Video Processing Unit (VPU) of the recent JZ47xx SoCs from
11+
Ingenic is a second Xburst MIPS CPU very similar to the main core.
12+
This document describes the devicetree bindings for this auxiliary
13+
processor.
14+
15+
maintainers:
16+
- Paul Cercueil <[email protected]>
17+
18+
properties:
19+
compatible:
20+
const: ingenic,jz4770-vpu-rproc
21+
22+
reg:
23+
items:
24+
- description: aux registers
25+
- description: tcsm0 registers
26+
- description: tcsm1 registers
27+
- description: sram registers
28+
29+
reg-names:
30+
items:
31+
- const: aux
32+
- const: tcsm0
33+
- const: tcsm1
34+
- const: sram
35+
36+
clocks:
37+
items:
38+
- description: aux clock
39+
- description: vpu clock
40+
41+
clock-names:
42+
items:
43+
- const: aux
44+
- const: vpu
45+
46+
interrupts:
47+
description: VPU hardware interrupt
48+
49+
required:
50+
- compatible
51+
- reg
52+
- reg-names
53+
- clocks
54+
- clock-names
55+
- interrupts
56+
57+
additionalProperties: false
58+
59+
examples:
60+
- |
61+
#include <dt-bindings/clock/jz4770-cgu.h>
62+
63+
vpu: video-decoder@132a0000 {
64+
compatible = "ingenic,jz4770-vpu-rproc";
65+
66+
reg = <0x132a0000 0x20>, /* AUX */
67+
<0x132b0000 0x4000>, /* TCSM0 */
68+
<0x132c0000 0xc000>, /* TCSM1 */
69+
<0x132f0000 0x7000>; /* SRAM */
70+
reg-names = "aux", "tcsm0", "tcsm1", "sram";
71+
72+
clocks = <&cgu JZ4770_CLK_AUX>, <&cgu JZ4770_CLK_VPU>;
73+
clock-names = "aux", "vpu";
74+
75+
interrupt-parent = <&cpuintc>;
76+
interrupts = <3>;
77+
};

Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,16 @@ on the Qualcomm ADSP Hexagon core.
1515
"qcom,qcs404-adsp-pas"
1616
"qcom,qcs404-cdsp-pas"
1717
"qcom,qcs404-wcss-pas"
18+
"qcom,sc7180-mpss-pas"
1819
"qcom,sdm845-adsp-pas"
1920
"qcom,sdm845-cdsp-pas"
2021
"qcom,sm8150-adsp-pas"
2122
"qcom,sm8150-cdsp-pas"
2223
"qcom,sm8150-mpss-pas"
2324
"qcom,sm8150-slpi-pas"
25+
"qcom,sm8250-adsp-pas"
26+
"qcom,sm8250-cdsp-pas"
27+
"qcom,sm8250-slpi-pas"
2428

2529
- interrupts-extended:
2630
Usage: required
@@ -44,8 +48,12 @@ on the Qualcomm ADSP Hexagon core.
4448
qcom,sm8150-adsp-pas:
4549
qcom,sm8150-cdsp-pas:
4650
qcom,sm8150-slpi-pas:
51+
qcom,sm8250-adsp-pas:
52+
qcom,sm8250-cdsp-pas:
53+
qcom,sm8250-slpi-pas:
4754
must be "wdog", "fatal", "ready", "handover", "stop-ack"
4855
qcom,qcs404-wcss-pas:
56+
qcom,sc7180-mpss-pas:
4957
qcom,sm8150-mpss-pas:
5058
must be "wdog", "fatal", "ready", "handover", "stop-ack",
5159
"shutdown-ack"
@@ -105,10 +113,14 @@ on the Qualcomm ADSP Hexagon core.
105113
qcom,sdm845-cdsp-pas:
106114
qcom,sm8150-adsp-pas:
107115
qcom,sm8150-cdsp-pas:
116+
qcom,sm8250-cdsp-pas:
108117
must be "cx", "load_state"
118+
qcom,sc7180-mpss-pas:
109119
qcom,sm8150-mpss-pas:
110120
must be "cx", "load_state", "mss"
121+
qcom,sm8250-adsp-pas:
111122
qcom,sm8150-slpi-pas:
123+
qcom,sm8250-slpi-pas:
112124
must be "lcx", "lmx", "load_state"
113125

114126
- memory-region:

Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ on the Qualcomm Hexagon core.
7979
"snoc_axi", "mnoc_axi", "qdss"
8080
qcom,sc7180-mss-pil:
8181
must be "iface", "bus", "xo", "snoc_axi", "mnoc_axi",
82-
"mss_crypto", "mss_nav", "nav"
82+
"nav"
8383
qcom,sdm845-mss-pil:
8484
must be "iface", "bus", "mem", "xo", "gpll0_mss",
8585
"snoc_axi", "mnoc_axi", "prng"
@@ -102,6 +102,14 @@ on the Qualcomm Hexagon core.
102102
must be "mss_restart", "pdc_reset" for the modem
103103
sub-system on SC7180, SDM845 SoCs
104104

105+
For devices where the mba and mpss sub-nodes are not specified, mba/mpss region
106+
should be referenced as follows:
107+
- memory-region:
108+
Usage: required
109+
Value type: <phandle>
110+
Definition: reference to the reserved-memory for the mba region followed
111+
by the mpss region
112+
105113
For the compatible strings below the following supplies are required:
106114
"qcom,q6v5-pil"
107115
"qcom,msm8916-mss-pil",
@@ -173,16 +181,12 @@ For the compatible string below the following supplies are required:
173181

174182
For the compatible strings below the following phandle references are required:
175183
"qcom,sc7180-mss-pil"
176-
- qcom,halt-nav-regs:
184+
- qcom,spare-regs:
177185
Usage: required
178186
Value type: <prop-encoded-array>
179-
Definition: reference to a list of 2 phandles with one offset each for
180-
the modem sub-system running on SC7180 SoC. The first
181-
phandle reference is to the mss clock node followed by the
182-
offset within register space for nav halt register. The
183-
second phandle reference is to a syscon representing TCSR
184-
followed by the offset within syscon for conn_box_spare0
185-
register.
187+
Definition: a phandle reference to a syscon representing TCSR followed
188+
by the offset within syscon for conn_box_spare0 register
189+
used by the modem sub-system running on SC7180 SoC.
186190

187191
The Hexagon node must contain iommus property as described in ../iommu/iommu.txt
188192
on platforms which do not have TrustZone.

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8502,6 +8502,7 @@ F: drivers/mtd/nand/raw/ingenic/
85028502
F: drivers/pinctrl/pinctrl-ingenic.c
85038503
F: drivers/power/supply/ingenic-battery.c
85048504
F: drivers/pwm/pwm-jz4740.c
8505+
F: drivers/remoteproc/ingenic_rproc.c
85058506
F: drivers/rtc/rtc-jz4740.c
85068507
F: drivers/tty/serial/8250/8250_ingenic.c
85078508
F: drivers/usb/musb/jz4740.c

drivers/remoteproc/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,15 @@ config IMX_REMOTEPROC
2323

2424
It's safe to say N here.
2525

26+
config INGENIC_VPU_RPROC
27+
tristate "Ingenic JZ47xx VPU remoteproc support"
28+
depends on MIPS || COMPILE_TEST
29+
help
30+
Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic.
31+
32+
This can be either built-in or a loadable module.
33+
If unsure say N.
34+
2635
config MTK_SCP
2736
tristate "Mediatek SCP support"
2837
depends on ARCH_MEDIATEK

drivers/remoteproc/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ remoteproc-y += remoteproc_sysfs.o
1010
remoteproc-y += remoteproc_virtio.o
1111
remoteproc-y += remoteproc_elf_loader.o
1212
obj-$(CONFIG_IMX_REMOTEPROC) += imx_rproc.o
13+
obj-$(CONFIG_INGENIC_VPU_RPROC) += ingenic_rproc.o
1314
obj-$(CONFIG_MTK_SCP) += mtk_scp.o mtk_scp_ipi.o
1415
obj-$(CONFIG_OMAP_REMOTEPROC) += omap_remoteproc.o
1516
obj-$(CONFIG_WKUP_M3_RPROC) += wkup_m3_rproc.o

0 commit comments

Comments
 (0)