* [PATCH v2 1/7] dt-bindings: media: sun4i-a10-video-engine: Fix IOMMU count for H6
2026-07-11 13:59 [PATCH v2 0/7] arm64: allwinner: h616: Support Video Engine Chen-Yu Tsai
@ 2026-07-11 13:59 ` Chen-Yu Tsai
2026-07-11 13:59 ` [PATCH v2 2/7] dt-bindings: media: sun4i-a10-video-engine: Fix SRAM " Chen-Yu Tsai
` (5 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Chen-Yu Tsai @ 2026-07-11 13:59 UTC (permalink / raw)
To: Maxime Ripard, Paul Kocialkowski, Mauro Carvalho Chehab,
Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Greg Kroah-Hartman, linux-media, linux-staging, devicetree,
linux-sunxi, linux-arm-kernel, linux-kernel, Jernej Skrabec
On the H6 SoC, the Video Engine has two memory ports, thus two IOMMU
connections. The secondary one that is missing is likely used for
reading reference frames. The newer H616 is the same. On the other
hand, the D1 only has one memory port.
Add the missing IOMMU connection for the Video Engine.
Fixes: 62a8ccf3a248 ("arm64: dts: allwinner: h6: Fix Cedrus IOMMU usage")
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
---
.../allwinner,sun4i-a10-video-engine.yaml | 21 ++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
index 01f2afa023f0..932043d7f0cc 100644
--- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
+++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
@@ -55,7 +55,10 @@ properties:
description: Phandle to the device SRAM
iommus:
- maxItems: 1
+ minItems: 1
+ items:
+ - description: VE port on IOMMU
+ - description: VE_R port on IOMMU
memory-region:
maxItems: 1
@@ -82,6 +85,22 @@ required:
- resets
- allwinner,sram
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - allwinner,sun50i-h6-video-engine
+ then:
+ properties:
+ iommus:
+ minItems: 2
+ else:
+ properties:
+ iommus:
+ maxItems: 1
+
additionalProperties: false
examples:
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 2/7] dt-bindings: media: sun4i-a10-video-engine: Fix SRAM count for H6
2026-07-11 13:59 [PATCH v2 0/7] arm64: allwinner: h616: Support Video Engine Chen-Yu Tsai
2026-07-11 13:59 ` [PATCH v2 1/7] dt-bindings: media: sun4i-a10-video-engine: Fix IOMMU count for H6 Chen-Yu Tsai
@ 2026-07-11 13:59 ` Chen-Yu Tsai
2026-07-11 13:59 ` [PATCH v2 3/7] dt-bindings: media: sun4i-a10-video-engine: Add H616 compatible Chen-Yu Tsai
` (4 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Chen-Yu Tsai @ 2026-07-11 13:59 UTC (permalink / raw)
To: Maxime Ripard, Paul Kocialkowski, Mauro Carvalho Chehab,
Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Greg Kroah-Hartman, linux-media, linux-staging, devicetree,
linux-sunxi, linux-arm-kernel, linux-kernel, Jernej Skrabec
On the H6, the SRAM C region includes an alias of part of the VE SRAM
used by the video engine. This region should also be claimed so that no
access happens through the alias window.
Add a second SRAM region phandle to the video engine for the H6.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
---
.../allwinner,sun4i-a10-video-engine.yaml | 21 ++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
index 932043d7f0cc..818d815d4732 100644
--- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
+++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
@@ -48,11 +48,15 @@ properties:
allwinner,sram:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ minItems: 1
items:
- items:
- description: phandle to SRAM
- description: register value for device
- description: Phandle to the device SRAM
+ - items:
+ - description: phandle to SRAM alias
+ - description: register value for device
+ description: Phandle to the device SRAM(s)
iommus:
minItems: 1
@@ -101,6 +105,21 @@ allOf:
iommus:
maxItems: 1
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - allwinner,sun50i-h6-video-engine
+ then:
+ properties:
+ allwinner,sram:
+ minItems: 2
+ else:
+ properties:
+ allwinner,sram:
+ maxItems: 1
+
additionalProperties: false
examples:
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 3/7] dt-bindings: media: sun4i-a10-video-engine: Add H616 compatible
2026-07-11 13:59 [PATCH v2 0/7] arm64: allwinner: h616: Support Video Engine Chen-Yu Tsai
2026-07-11 13:59 ` [PATCH v2 1/7] dt-bindings: media: sun4i-a10-video-engine: Fix IOMMU count for H6 Chen-Yu Tsai
2026-07-11 13:59 ` [PATCH v2 2/7] dt-bindings: media: sun4i-a10-video-engine: Fix SRAM " Chen-Yu Tsai
@ 2026-07-11 13:59 ` Chen-Yu Tsai
2026-07-11 13:59 ` [PATCH v2 4/7] drivers: staging: media: sunxi: cedrus: add H616 variant Chen-Yu Tsai
` (3 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Chen-Yu Tsai @ 2026-07-11 13:59 UTC (permalink / raw)
To: Maxime Ripard, Paul Kocialkowski, Mauro Carvalho Chehab,
Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Greg Kroah-Hartman, linux-media, linux-staging, devicetree,
linux-sunxi, linux-arm-kernel, linux-kernel, Jernej Skrabec
The H616 contains a video engine similar to past SoCs.
Add a new compatible for it.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
---
.../bindings/media/allwinner,sun4i-a10-video-engine.yaml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
index 818d815d4732..20c430795134 100644
--- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
+++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
@@ -24,6 +24,7 @@ properties:
- allwinner,sun50i-a64-video-engine
- allwinner,sun50i-h5-video-engine
- allwinner,sun50i-h6-video-engine
+ - allwinner,sun50i-h616-video-engine
reg:
maxItems: 1
@@ -96,6 +97,7 @@ allOf:
contains:
enum:
- allwinner,sun50i-h6-video-engine
+ - allwinner,sun50i-h616-video-engine
then:
properties:
iommus:
@@ -111,6 +113,7 @@ allOf:
contains:
enum:
- allwinner,sun50i-h6-video-engine
+ - allwinner,sun50i-h616-video-engine
then:
properties:
allwinner,sram:
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 4/7] drivers: staging: media: sunxi: cedrus: add H616 variant
2026-07-11 13:59 [PATCH v2 0/7] arm64: allwinner: h616: Support Video Engine Chen-Yu Tsai
` (2 preceding siblings ...)
2026-07-11 13:59 ` [PATCH v2 3/7] dt-bindings: media: sun4i-a10-video-engine: Add H616 compatible Chen-Yu Tsai
@ 2026-07-11 13:59 ` Chen-Yu Tsai
2026-07-11 13:59 ` [PATCH v2 5/7] arm64: dts: allwinner: sun50i-h6: Add missing SRAM region for video engine Chen-Yu Tsai
` (2 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Chen-Yu Tsai @ 2026-07-11 13:59 UTC (permalink / raw)
To: Maxime Ripard, Paul Kocialkowski, Mauro Carvalho Chehab,
Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Greg Kroah-Hartman, linux-media, linux-staging, devicetree,
linux-sunxi, linux-arm-kernel, linux-kernel, Jernej Skrabec
The Allwinner H616 SoC has a video engine hardware block like the one
found on previous generations such as the H6. In addition to the
currently supported features of the H6, it also includes a VP9 decoder.
Support for VP9 will be added separately.
Add the compatible for the H616 variant, using the H6 variant data.
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
---
Changes since v1:
- Updated commit message on VP9 decoder status
---
drivers/staging/media/sunxi/cedrus/cedrus.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c
index bbd186b8035b..ac0217976670 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
@@ -696,6 +696,10 @@ static const struct of_device_id cedrus_dt_match[] = {
.compatible = "allwinner,sun50i-h6-video-engine",
.data = &sun50i_h6_cedrus_variant,
},
+ {
+ .compatible = "allwinner,sun50i-h616-video-engine",
+ .data = &sun50i_h6_cedrus_variant,
+ },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, cedrus_dt_match);
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 5/7] arm64: dts: allwinner: sun50i-h6: Add missing SRAM region for video engine
2026-07-11 13:59 [PATCH v2 0/7] arm64: allwinner: h616: Support Video Engine Chen-Yu Tsai
` (3 preceding siblings ...)
2026-07-11 13:59 ` [PATCH v2 4/7] drivers: staging: media: sunxi: cedrus: add H616 variant Chen-Yu Tsai
@ 2026-07-11 13:59 ` Chen-Yu Tsai
2026-07-11 13:59 ` [PATCH v2 6/7] arm64: dts: allwinner: sun50i-h6: Add missing IOMMU " Chen-Yu Tsai
2026-07-11 13:59 ` [PATCH v2 7/7] arm64: dts: allwinner: sun50i-h616: Add " Chen-Yu Tsai
6 siblings, 0 replies; 9+ messages in thread
From: Chen-Yu Tsai @ 2026-07-11 13:59 UTC (permalink / raw)
To: Maxime Ripard, Paul Kocialkowski, Mauro Carvalho Chehab,
Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Greg Kroah-Hartman, linux-media, linux-staging, devicetree,
linux-sunxi, linux-arm-kernel, linux-kernel, Jernej Skrabec
The SRAM C region contains a partial alias to the VE SRAM already
referenced by the video engine. To avoid access through this alias
window, the region should also be claimed by the video engine.
Add a reference to the SRAM C region to the video engine node.
Fixes: b542570e5605 ("arm64: dts: allwinner: h6: Add Video Engine node")
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
---
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
index 72ce1a75647b..88c6e3e105c0 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
@@ -205,7 +205,7 @@ video-codec@1c0e000 {
clock-names = "ahb", "mod", "ram";
resets = <&ccu RST_BUS_VE>;
interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
- allwinner,sram = <&ve_sram 1>;
+ allwinner,sram = <&ve_sram 1>, <&de2_sram 1>;
iommus = <&iommu 3>;
};
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 6/7] arm64: dts: allwinner: sun50i-h6: Add missing IOMMU for video engine
2026-07-11 13:59 [PATCH v2 0/7] arm64: allwinner: h616: Support Video Engine Chen-Yu Tsai
` (4 preceding siblings ...)
2026-07-11 13:59 ` [PATCH v2 5/7] arm64: dts: allwinner: sun50i-h6: Add missing SRAM region for video engine Chen-Yu Tsai
@ 2026-07-11 13:59 ` Chen-Yu Tsai
2026-07-11 13:59 ` [PATCH v2 7/7] arm64: dts: allwinner: sun50i-h616: Add " Chen-Yu Tsai
6 siblings, 0 replies; 9+ messages in thread
From: Chen-Yu Tsai @ 2026-07-11 13:59 UTC (permalink / raw)
To: Maxime Ripard, Paul Kocialkowski, Mauro Carvalho Chehab,
Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Greg Kroah-Hartman, linux-media, linux-staging, devicetree,
linux-sunxi, linux-arm-kernel, linux-kernel, Jernej Skrabec
The video engine on the H6 actually has two IOMMU ports. The one already
listed is simply named "VE" in the user manual. The missing one is named
"VE_R" and is probably either read-only or used for reference frames.
Either way, it should be listed.
Add a reference to the "VE_R" IOMMU port to the video engine node.
Fixes: 62a8ccf3a248 ("arm64: dts: allwinner: h6: Fix Cedrus IOMMU usage")
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
---
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
index 88c6e3e105c0..48c771223af4 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
@@ -206,7 +206,7 @@ video-codec@1c0e000 {
resets = <&ccu RST_BUS_VE>;
interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
allwinner,sram = <&ve_sram 1>, <&de2_sram 1>;
- iommus = <&iommu 3>;
+ iommus = <&iommu 3>, <&iommu 1>;
};
gpu: gpu@1800000 {
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 7/7] arm64: dts: allwinner: sun50i-h616: Add video engine
2026-07-11 13:59 [PATCH v2 0/7] arm64: allwinner: h616: Support Video Engine Chen-Yu Tsai
` (5 preceding siblings ...)
2026-07-11 13:59 ` [PATCH v2 6/7] arm64: dts: allwinner: sun50i-h6: Add missing IOMMU " Chen-Yu Tsai
@ 2026-07-11 13:59 ` Chen-Yu Tsai
2026-07-11 15:13 ` Andre Przywara
6 siblings, 1 reply; 9+ messages in thread
From: Chen-Yu Tsai @ 2026-07-11 13:59 UTC (permalink / raw)
To: Maxime Ripard, Paul Kocialkowski, Mauro Carvalho Chehab,
Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Jernej Skrabec, Greg Kroah-Hartman, linux-media, linux-staging,
devicetree, linux-sunxi, linux-arm-kernel, linux-kernel
From: Jernej Skrabec <jernej.skrabec@gmail.com>
The H616 SoC has a video engine, and two SRAM regions needed by it.
Add the video engine to the dtsi file.
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
[wens@kernel.org: Add VE SRAM region and commit message]
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
---
Changes since v1:
- Corrected second IOMMU port
---
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
index 1598e86259ab..c6b3a3f8359a 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
@@ -175,6 +175,18 @@ crypto: crypto@1904000 {
resets = <&ccu RST_BUS_CE>;
};
+ video-codec@1c0e000 {
+ compatible = "allwinner,sun50i-h616-video-engine";
+ reg = <0x01c0e000 0x2000>;
+ clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
+ <&ccu CLK_MBUS_VE>;
+ clock-names = "ahb", "mod", "ram";
+ resets = <&ccu RST_BUS_VE>;
+ interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
+ iommus = <&iommu 3>, <&iommu 2>;
+ allwinner,sram = <&ve_sram 1>, <&sram_c 1>;
+ };
+
syscon: syscon@3000000 {
compatible = "allwinner,sun50i-h616-system-control";
reg = <0x03000000 0x1000>;
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v2 7/7] arm64: dts: allwinner: sun50i-h616: Add video engine
2026-07-11 13:59 ` [PATCH v2 7/7] arm64: dts: allwinner: sun50i-h616: Add " Chen-Yu Tsai
@ 2026-07-11 15:13 ` Andre Przywara
0 siblings, 0 replies; 9+ messages in thread
From: Andre Przywara @ 2026-07-11 15:13 UTC (permalink / raw)
To: Chen-Yu Tsai, Maxime Ripard, Paul Kocialkowski,
Mauro Carvalho Chehab, Jernej Skrabec, Samuel Holland,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Jernej Skrabec, Greg Kroah-Hartman, linux-media, linux-staging,
devicetree, linux-sunxi, linux-arm-kernel, linux-kernel
Hi,
On 7/11/26 15:59, Chen-Yu Tsai wrote:
> From: Jernej Skrabec <jernej.skrabec@gmail.com>
>
> The H616 SoC has a video engine, and two SRAM regions needed by it.
>
> Add the video engine to the dtsi file.
>
> Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
> [wens@kernel.org: Add VE SRAM region and commit message]
> Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
Checked against the binding and the manual: clocks, regs, interrupts and
reset matches. Also test-built the DTB: that worked fine, not sure what
Sashiko was complaining about.
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Thanks,
Andre
> ---
> Changes since v1:
> - Corrected second IOMMU port
> ---
> arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
> index 1598e86259ab..c6b3a3f8359a 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
> @@ -175,6 +175,18 @@ crypto: crypto@1904000 {
> resets = <&ccu RST_BUS_CE>;
> };
>
> + video-codec@1c0e000 {
> + compatible = "allwinner,sun50i-h616-video-engine";
> + reg = <0x01c0e000 0x2000>;
> + clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
> + <&ccu CLK_MBUS_VE>;
> + clock-names = "ahb", "mod", "ram";
> + resets = <&ccu RST_BUS_VE>;
> + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
> + iommus = <&iommu 3>, <&iommu 2>;
> + allwinner,sram = <&ve_sram 1>, <&sram_c 1>;
> + };
> +
> syscon: syscon@3000000 {
> compatible = "allwinner,sun50i-h616-system-control";
> reg = <0x03000000 0x1000>;
^ permalink raw reply [flat|nested] 9+ messages in thread