* [PATCH 0/4] media: iris: Enable Iris video codec on Eliza
@ 2026-09-14 9:54 Wangao Wang
2026-09-14 9:54 ` [PATCH 1/4] dt-bindings: media: qcom,sm8550-iris: Document Eliza IRIS accelerator Wangao Wang
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Wangao Wang @ 2026-09-14 9:54 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel, Wangao Wang
This series enables the Iris video codec on Eliza, allowing Eliza to
use hardware-accelerated video encoding and decoding.
The Iris codec on Eliza is based on the VPU3.3 hardware, sharing the
Compared to SM8650, Eliza has:
- 2 VPP pipes instead of 4, limiting the maximum supported resolution
to 4K.
fluster result:
H.264:
Ran 76/135 tests successfully
H.265:
Ran 138/147 tests successfully
VP9:
Ran 225/305 tests successfully
Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
---
Wangao Wang (4):
dt-bindings: media: qcom,sm8550-iris: Document Eliza IRIS accelerator
media: iris: Add support for Eliza
arm64: dts: qcom: eliza: Add iris video codec node
arm64: dts: qcom: eliza-mtp: Enable iris video codec
.../bindings/media/qcom,sm8550-iris.yaml | 2 +
arch/arm64/boot/dts/qcom/eliza-mtp.dts | 4 +
arch/arm64/boot/dts/qcom/eliza.dtsi | 98 ++++++++++++++++++++++
.../platform/qcom/iris/iris_platform_common.h | 1 +
.../media/platform/qcom/iris/iris_platform_vpu3x.c | 45 ++++++++++
drivers/media/platform/qcom/iris/iris_probe.c | 4 +
6 files changed, 154 insertions(+)
---
base-commit: 68142f986ff04b2b70b31db00f719bf690f64a9a
change-id: 20260914-add_iris_for_eliza-cfa43039a976
prerequisite-message-id: 20260914-vpu_iommu_iova_handling-v4-0-9b9074a73c41@oss.qualcomm.com
prerequisite-patch-id: e1330b5a848460d14cd6574877fcf607d269d9a1
prerequisite-patch-id: 20d099e89443a097b9ec5b297f0129d9874ca54b
prerequisite-patch-id: 2a36ab03d78d8e9c19c900e203b05739a9fd1123
prerequisite-patch-id: 9e326a273e052af2b63300dd20f2fd6cc78dd5ac
prerequisite-patch-id: bb9ca73889bfca249029efb854fb1634a4360b5c
prerequisite-patch-id: 9e71460e2d5f1e4e2993819f4d9fa27c076946f1
prerequisite-patch-id: a2b127d41c7133ea30721a72eca01333334844f7
prerequisite-patch-id: e34741f76b6919db19236ead27c966b789736e66
prerequisite-patch-id: 359d24229ad496633892e70b1cf88c2d88dfad24
prerequisite-patch-id: 6e2e9069cb620143aa305b7b29b8b1982dd0648b
prerequisite-patch-id: 3e5fe6ef2271be5263a4bf7ffbd77b0996037b27
prerequisite-patch-id: e051524017c9f39f8593fb9d2e982e6a4c39fb35
prerequisite-patch-id: 1b4863f7a7f3a8390c825d76805e8e99de97a2a7
Best regards,
--
Wangao Wang <wangao.wang@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/4] dt-bindings: media: qcom,sm8550-iris: Document Eliza IRIS accelerator
2026-09-14 9:54 [PATCH 0/4] media: iris: Enable Iris video codec on Eliza Wangao Wang
@ 2026-09-14 9:54 ` Wangao Wang
2026-09-15 7:10 ` Krzysztof Kozlowski
2026-09-14 9:54 ` [PATCH 2/4] media: iris: Add support for Eliza Wangao Wang
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Wangao Wang @ 2026-09-14 9:54 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel, Wangao Wang
Add the qcom,eliza-iris compatible for the IRIS video decoder/encoder
accelerator found on the Eliza platform.
Eliza belongs to the same IRIS v3 family as SM8550 and SM8650, and uses
VPU3.3 with an SM8650-compatible clock and reset configuration. Like
SM8650, it requires the bus, xo, and core resets, so include it in the
existing allOf constraint that enforces resets minItems: 3.
Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
---
Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml b/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
index 6ee9d23554cffb30c92017ef99de15c2493455ac..b97f50bf16f6634bef0e0dc598f9268a654c75d5 100644
--- a/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
+++ b/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
@@ -23,6 +23,7 @@ properties:
- qcom,x1e80100-iris
- const: qcom,sm8550-iris
- enum:
+ - qcom,eliza-iris
- qcom,qcs8300-iris
- qcom,sm8550-iris
- qcom,sm8650-iris
@@ -106,6 +107,7 @@ allOf:
properties:
compatible:
enum:
+ - qcom,eliza-iris
- qcom,sm8650-iris
then:
properties:
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/4] media: iris: Add support for Eliza
2026-09-14 9:54 [PATCH 0/4] media: iris: Enable Iris video codec on Eliza Wangao Wang
2026-09-14 9:54 ` [PATCH 1/4] dt-bindings: media: qcom,sm8550-iris: Document Eliza IRIS accelerator Wangao Wang
@ 2026-09-14 9:54 ` Wangao Wang
2026-09-14 9:54 ` [PATCH 3/4] arm64: dts: qcom: eliza: Add iris video codec node Wangao Wang
2026-09-14 9:54 ` [PATCH 4/4] arm64: dts: qcom: eliza-mtp: Enable iris video codec Wangao Wang
3 siblings, 0 replies; 9+ messages in thread
From: Wangao Wang @ 2026-09-14 9:54 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel, Wangao Wang
Add support for the Eliza Iris video codec. Eliza uses the VPU3.3 hardware
with a dedicated vpu33_p2_s7 firmware variant and SM8650-compatible
clock/reset tables. Key differences from SM8550:
- firmware_desc_gen2: vpu33_p2_s7 (SM8550 uses vpu30_p4)
- vpu_ops: iris_vpu33_ops
- clk_rst_tbl: sm8650_clk_reset_table
- controller_rst_tbl: sm8650_controller_reset_table
- inst_caps: platform_inst_cap_qcs8300 (4K capable, 2 VPP pipes)
Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
---
.../platform/qcom/iris/iris_platform_common.h | 1 +
.../media/platform/qcom/iris/iris_platform_vpu3x.c | 45 ++++++++++++++++++++++
drivers/media/platform/qcom/iris/iris_probe.c | 4 ++
3 files changed, 50 insertions(+)
diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
index 9748095091461ba13443c63955a42906fa4f050c..69c239c60b9d763e5e2fd0c16de0e95482414b58 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_common.h
+++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
@@ -54,6 +54,7 @@ extern const struct iris_firmware_data iris_hfi_gen1_data;
extern const struct iris_firmware_data iris_hfi_gen2_data;
extern const struct iris_firmware_data iris_hfi_milos_data;
+extern const struct iris_platform_data eliza_data;
extern const struct iris_platform_data milos_data;
extern const struct iris_platform_data qcs8300_data;
extern const struct iris_platform_data sc7280_data;
diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c
index 74626b35d9cb35cef91ba4d0608bd1eb58ba7194..4c6d565bfa6c7e176aa41aabf27ade8c95be2fa7 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c
+++ b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c
@@ -42,6 +42,12 @@ static const struct iris_firmware_desc iris_vpu33_p4_gen2_desc = {
.fwname = "qcom/vpu/vpu33_p4.mbn",
};
+static const struct iris_firmware_desc iris_vpu33_p2_s7_gen2_desc = {
+ .firmware_data = &iris_hfi_gen2_data,
+ .get_vpu_buffer_size = iris_vpu33_buf_size,
+ .fwname = "qcom/vpu/vpu33_p2_s7.mbn",
+};
+
static const struct iris_firmware_desc iris_vpu35_p4_gen2_desc = {
.firmware_data = &iris_hfi_gen2_data,
.get_vpu_buffer_size = iris_vpu33_buf_size,
@@ -85,6 +91,45 @@ static const struct tz_cp_config tz_cp_config_vpu3[] = {
},
};
+/*
+ * Shares most of SM8550 data except:
+ * - firmware_desc_gen2 to iris_vpu33_p2_s7_gen2_desc
+ * - vpu_ops to iris_vpu33_ops
+ * - clk_rst_tbl to sm8650_clk_reset_table
+ * - controller_rst_tbl to sm8650_controller_reset_table
+ * - inst_caps to platform_inst_cap_qcs8300 (4K capable, 2 VPP pipes)
+ */
+const struct iris_platform_data eliza_data = {
+ .firmware_desc_gen2 = &iris_vpu33_p2_s7_gen2_desc,
+ .vpu_ops = &iris_vpu33_ops,
+ .icc_tbl = iris_icc_info_vpu3x,
+ .icc_tbl_size = ARRAY_SIZE(iris_icc_info_vpu3x),
+ .clk_rst_tbl = sm8650_clk_reset_table,
+ .clk_rst_tbl_size = ARRAY_SIZE(sm8650_clk_reset_table),
+ .controller_rst_tbl = sm8650_controller_reset_table,
+ .controller_rst_tbl_size = ARRAY_SIZE(sm8650_controller_reset_table),
+ .bw_tbl_dec = iris_bw_table_dec_vpu3x,
+ .bw_tbl_dec_size = ARRAY_SIZE(iris_bw_table_dec_vpu3x),
+ .pmdomain_tbl = iris_pmdomain_table_vpu3x,
+ .pmdomain_tbl_size = ARRAY_SIZE(iris_pmdomain_table_vpu3x),
+ .opp_pd_tbl = iris_opp_pd_table_vpu3x,
+ .opp_pd_tbl_size = ARRAY_SIZE(iris_opp_pd_table_vpu3x),
+ .clk_tbl = sm8550_clk_table,
+ .clk_tbl_size = ARRAY_SIZE(sm8550_clk_table),
+ .opp_clk_tbl = iris_opp_clk_table_vpu3x,
+ /* Upper bound of DMA address range */
+ .dma_mask = 0xe0000000 - 1,
+ .inst_iris_fmts = iris_fmts_vpu3x_dec,
+ .inst_iris_fmts_size = ARRAY_SIZE(iris_fmts_vpu3x_dec),
+ .inst_caps = &platform_inst_cap_qcs8300,
+ .tz_cp_config_data = tz_cp_config_vpu3,
+ .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_vpu3),
+ .num_vpp_pipe = 2,
+ .max_session_count = 16,
+ .max_core_mbpf = NUM_MBS_4K * 2,
+ .max_core_mbps = NUM_MBS_4K * 60,
+};
+
/*
* Shares most of SM8550 data except:
* - inst_caps to platform_inst_cap_qcs8300
diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/platform/qcom/iris/iris_probe.c
index 4bdb078d83b5c331869dab2409bc4d10ab302737..9e601ee802097ec31531fcae85d0b17a7944686d 100644
--- a/drivers/media/platform/qcom/iris/iris_probe.c
+++ b/drivers/media/platform/qcom/iris/iris_probe.c
@@ -427,6 +427,10 @@ static const struct dev_pm_ops iris_pm_ops = {
};
static const struct of_device_id iris_dt_match[] = {
+ {
+ .compatible = "qcom,eliza-iris",
+ .data = &eliza_data,
+ },
{
.compatible = "qcom,milos-iris",
.data = &milos_data,
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/4] arm64: dts: qcom: eliza: Add iris video codec node
2026-09-14 9:54 [PATCH 0/4] media: iris: Enable Iris video codec on Eliza Wangao Wang
2026-09-14 9:54 ` [PATCH 1/4] dt-bindings: media: qcom,sm8550-iris: Document Eliza IRIS accelerator Wangao Wang
2026-09-14 9:54 ` [PATCH 2/4] media: iris: Add support for Eliza Wangao Wang
@ 2026-09-14 9:54 ` Wangao Wang
2026-09-14 10:09 ` sashiko-bot
2026-09-14 9:54 ` [PATCH 4/4] arm64: dts: qcom: eliza-mtp: Enable iris video codec Wangao Wang
3 siblings, 1 reply; 9+ messages in thread
From: Wangao Wang @ 2026-09-14 9:54 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel, Wangao Wang
Describe the Iris video codec hardware found in the Eliza SoC. The iris
node is placed at 0xaa00000 with VPU3.3 hardware capabilities. It uses
GCC_VIDEO_AXI0 for bus interface, and VIDEO_CC_MVS0C/MVS0 for core and
codec clocks respectively, along with SM8650-like AXI bus/XO/core reset
support.
Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/eliza.dtsi | 98 +++++++++++++++++++++++++++++++++++++
1 file changed, 98 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/eliza.dtsi b/arch/arm64/boot/dts/qcom/eliza.dtsi
index a8042291bd075893304a9ab7bbde84eee5547491..5ebd2aa0a520a7c3e08eaff03e3220469cb64f23 100644
--- a/arch/arm64/boot/dts/qcom/eliza.dtsi
+++ b/arch/arm64/boot/dts/qcom/eliza.dtsi
@@ -3357,6 +3357,104 @@ gpucc: clock-controller@3d90000 {
#power-domain-cells = <1>;
};
+ iris: video-codec@aa00000 {
+ compatible = "qcom,eliza-iris";
+ reg = <0 0xaa00000 0 0xf0000>;
+
+ interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+
+ power-domains = <&videocc VIDEO_CC_MVS0C_GDSC>,
+ <&videocc VIDEO_CC_MVS0_GDSC>,
+ <&rpmhpd RPMHPD_MX>,
+ <&rpmhpd RPMHPD_CX>;
+ power-domain-names = "venus",
+ "vcodec0",
+ "mxc",
+ "mmcx";
+
+ operating-points-v2 = <&iris_opp_table>;
+
+ clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
+ <&videocc VIDEO_CC_MVS0C_CLK>,
+ <&videocc VIDEO_CC_MVS0_CLK>;
+ clock-names = "iface",
+ "core",
+ "vcodec0_core";
+
+ interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+ &config_noc SLAVE_VENUS_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
+ <&mmss_noc MASTER_VIDEO_MVP QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "cpu-cfg",
+ "video-mem";
+
+ memory-region = <&video_mem>;
+
+ resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>,
+ <&videocc VIDEO_CC_XO_CLK_ARES>,
+ <&videocc VIDEO_CC_MVS0C_CLK_ARES>;
+ reset-names = "bus",
+ "xo",
+ "core";
+
+ dma-coherent;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+ dma-ranges = <0x0 0x0 0x0 0xe0000000>;
+
+ status = "disabled";
+
+ non-pixel {
+ iommus = <&apps_smmu 0x1940 0x0>;
+ iommu-ranges = <0x25800000 0xba800000>;
+ };
+
+ pixel {
+ iommus = <&apps_smmu 0x1947 0x0>;
+ };
+
+ iris_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-192000000 {
+ opp-hz = /bits/ 64 <192000000>;
+ required-opps = <&rpmhpd_opp_low_svs_d1>,
+ <&rpmhpd_opp_low_svs_d1>;
+ };
+
+ opp-240000000 {
+ opp-hz = /bits/ 64 <240000000>;
+ required-opps = <&rpmhpd_opp_low_svs>,
+ <&rpmhpd_opp_svs>;
+ };
+
+ opp-338000000 {
+ opp-hz = /bits/ 64 <338000000>;
+ required-opps = <&rpmhpd_opp_svs>,
+ <&rpmhpd_opp_svs>;
+ };
+
+ opp-366000000 {
+ opp-hz = /bits/ 64 <366000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>,
+ <&rpmhpd_opp_svs>;
+ };
+
+ opp-444000000 {
+ opp-hz = /bits/ 64 <444000000>;
+ required-opps = <&rpmhpd_opp_nom>,
+ <&rpmhpd_opp_svs_l1>;
+ };
+
+ opp-533333333 {
+ opp-hz = /bits/ 64 <533333333>;
+ required-opps = <&rpmhpd_opp_turbo>,
+ <&rpmhpd_opp_svs_l1>;
+ };
+ };
+ };
+
videocc: clock-controller@aaf0000 {
compatible = "qcom,eliza-videocc";
reg = <0x0 0xaaf0000 0x0 0x10000>;
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/4] arm64: dts: qcom: eliza-mtp: Enable iris video codec
2026-09-14 9:54 [PATCH 0/4] media: iris: Enable Iris video codec on Eliza Wangao Wang
` (2 preceding siblings ...)
2026-09-14 9:54 ` [PATCH 3/4] arm64: dts: qcom: eliza: Add iris video codec node Wangao Wang
@ 2026-09-14 9:54 ` Wangao Wang
2026-09-14 10:10 ` sashiko-bot
2026-09-14 11:27 ` Abel Vesa
3 siblings, 2 replies; 9+ messages in thread
From: Wangao Wang @ 2026-09-14 9:54 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel, Wangao Wang
The Eliza MTP includes the Iris video codec, but the device tree leaves
the node disabled. Mark it as okay so the video codec driver can probe
on this board.
Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/eliza-mtp.dts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/eliza-mtp.dts b/arch/arm64/boot/dts/qcom/eliza-mtp.dts
index ee05192adcfb9f79cba59f11001b640a8572cc91..e5a698602dfc7a2d3ad00eade40d4f91a0cee57d 100644
--- a/arch/arm64/boot/dts/qcom/eliza-mtp.dts
+++ b/arch/arm64/boot/dts/qcom/eliza-mtp.dts
@@ -430,6 +430,10 @@ &gpu_zap_shader {
firmware-name = "qcom/eliza/gen71700_zap.mbn";
};
+&iris {
+ status = "okay";
+};
+
&mdss {
status = "okay";
};
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: eliza: Add iris video codec node
2026-09-14 9:54 ` [PATCH 3/4] arm64: dts: qcom: eliza: Add iris video codec node Wangao Wang
@ 2026-09-14 10:09 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-09-14 10:09 UTC (permalink / raw)
To: Wangao Wang; +Cc: devicetree, media-ci, conor+dt, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] The `video-codec` node is missing the required `iommus` property in its main device node, instead hiding it in unsupported downstream-specific subnodes (`non-pixel` and `pixel`). This prevents the Linux driver core from configuring the IOMMU for the device.
--
commit a274945dd4b8c18268a9d385de4b677773a6b70a
Author: Wangao Wang <wangao.wang@oss.qualcomm.com>
arm64: dts: qcom: eliza: Add iris video codec node
This commit describes the Iris video codec hardware found in the Eliza SoC.
It places the iris node at 0xaa00000 with VPU3.3 capabilities and configures
its clocks, interconnects, memory regions, and resets.
> diff --git a/arch/arm64/boot/dts/qcom/eliza.dtsi b/arch/arm64/boot/dts/qcom/eliza.dtsi
> index a8042291bd075..5ebd2aa0a520a 100644
> --- a/arch/arm64/boot/dts/qcom/eliza.dtsi
> +++ b/arch/arm64/boot/dts/qcom/eliza.dtsi
[ ... ]
> + iris: video-codec@aa00000 {
> + compatible = "qcom,eliza-iris";
> + reg = <0 0xaa00000 0 0xf0000>;
[ ... ]
> + dma-coherent;
> +
> + #address-cells = <1>;
> + #size-cells = <1>;
> + dma-ranges = <0x0 0x0 0x0 0xe0000000>;
[Severity: High]
Are these address, size, and DMA ranges properties necessary here? Since the
upstream driver bindings for the video codec do not parse child devices for
these properties, they appear to be unused dead code that will fail dtbs_check
validation.
> +
> + status = "disabled";
> +
> + non-pixel {
> + iommus = <&apps_smmu 0x1940 0x0>;
> + iommu-ranges = <0x25800000 0xba800000>;
> + };
> +
> + pixel {
> + iommus = <&apps_smmu 0x1947 0x0>;
> + };
[Severity: High]
Does hiding the iommus property inside these downstream-specific subnodes
prevent the driver core from configuring the IOMMU for the device?
During probe, of_iommu_configure() attempts to set up the IOMMU translation
based on the iommus property in the main device node. Because this property
is omitted from the parent node and hidden in unparsed child nodes, no IOMMU
context is configured, which will lead to fatal SMMU translation faults during
video codec DMA operations.
Will this also trigger dtbs_check validation failures due to undocumented
subnodes missing compatible strings and downstream vendor properties like
iommu-ranges?
> +
> + iris_opp_table: opp-table {
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260914-add_iris_for_eliza-v1-0-e8ccd9b8cf7a@oss.qualcomm.com?part=3
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] arm64: dts: qcom: eliza-mtp: Enable iris video codec
2026-09-14 9:54 ` [PATCH 4/4] arm64: dts: qcom: eliza-mtp: Enable iris video codec Wangao Wang
@ 2026-09-14 10:10 ` sashiko-bot
2026-09-14 11:27 ` Abel Vesa
1 sibling, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-09-14 10:10 UTC (permalink / raw)
To: Wangao Wang; +Cc: robh, devicetree, media-ci, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] The `iommus` property is incorrectly placed inside `non-pixel` and `pixel` subnodes instead of the main `iris` node.
--
commit f75c3762943bc77bc910383ace15428dcbdec236
Author: Wangao Wang <wangao.wang@oss.qualcomm.com>
arm64: dts: qcom: eliza-mtp: Enable iris video codec
The Eliza MTP includes the Iris video codec, but the device tree leaves
the node disabled. Mark it as okay so the video codec driver can probe
on this board.
> diff --git a/arch/arm64/boot/dts/qcom/eliza-mtp.dts b/arch/arm64/boot/dts/qcom/eliza-mtp.dts
> index ee05192adcfb9..e5a698602dfc7 100644
> --- a/arch/arm64/boot/dts/qcom/eliza-mtp.dts
> +++ b/arch/arm64/boot/dts/qcom/eliza-mtp.dts
[ ... ]
> @@ -430,6 +430,10 @@ &gpu_zap_shader {
> firmware-name = "qcom/eliza/gen71700_zap.mbn";
> };
>
> +&iris {
> + status = "okay";
> +};
[Severity: High]
Does enabling the iris node here expose an issue with how its IOMMU
configuration is defined in the base dtsi?
In arch/arm64/boot/dts/qcom/eliza.dtsi, the iommus property is placed inside
legacy non-pixel and pixel subnodes:
non-pixel {
iommus = <&apps_smmu 0x1940 0x0>;
iommu-ranges = <0x25800000 0xba800000>;
};
pixel {
iommus = <&apps_smmu 0x1947 0x0>;
};
The generic IOMMU framework (of_iommu_configure() in drivers/iommu/of_iommu.c)
only looks for the iommus property directly on the device node (dev->of_node)
and ignores arbitrary subnodes.
Because of this misplacement, the platform device will fail to attach to its
designated SMMU domain, causing DMA operations to use raw physical addresses
and trigger SMMU translation faults.
Furthermore, the qcom,sm8550-iris.yaml binding explicitly requires the iommus
property on the main node and strictly forbids unlisted subnodes via
unevaluatedProperties: false, which triggers dtbs_check validation errors.
Should the iommus property be moved to the main iris node before enabling it?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260914-add_iris_for_eliza-v1-0-e8ccd9b8cf7a@oss.qualcomm.com?part=4
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] arm64: dts: qcom: eliza-mtp: Enable iris video codec
2026-09-14 9:54 ` [PATCH 4/4] arm64: dts: qcom: eliza-mtp: Enable iris video codec Wangao Wang
2026-09-14 10:10 ` sashiko-bot
@ 2026-09-14 11:27 ` Abel Vesa
1 sibling, 0 replies; 9+ messages in thread
From: Abel Vesa @ 2026-09-14 11:27 UTC (permalink / raw)
To: Wangao Wang
Cc: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa, linux-arm-msm, linux-media, devicetree, linux-kernel
On 26-09-14 17:54:26, Wangao Wang wrote:
> The Eliza MTP includes the Iris video codec, but the device tree leaves
> the node disabled. Mark it as okay so the video codec driver can probe
> on this board.
>
> Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
Can you send this for EVK as well?
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/4] dt-bindings: media: qcom,sm8550-iris: Document Eliza IRIS accelerator
2026-09-14 9:54 ` [PATCH 1/4] dt-bindings: media: qcom,sm8550-iris: Document Eliza IRIS accelerator Wangao Wang
@ 2026-09-15 7:10 ` Krzysztof Kozlowski
0 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-15 7:10 UTC (permalink / raw)
To: Wangao Wang
Cc: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa, linux-arm-msm, linux-media, devicetree, linux-kernel
On Mon, Sep 14, 2026 at 05:54:23PM +0800, Wangao Wang wrote:
> Add the qcom,eliza-iris compatible for the IRIS video decoder/encoder
> accelerator found on the Eliza platform.
>
> Eliza belongs to the same IRIS v3 family as SM8550 and SM8650, and uses
> VPU3.3 with an SM8650-compatible clock and reset configuration. Like
> SM8650, it requires the bus, xo, and core resets, so include it in the
> existing allOf constraint that enforces resets minItems: 3.
>
> Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml | 2 ++
> 1 file changed, 2 insertions(+)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-09-15 7:10 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-14 9:54 [PATCH 0/4] media: iris: Enable Iris video codec on Eliza Wangao Wang
2026-09-14 9:54 ` [PATCH 1/4] dt-bindings: media: qcom,sm8550-iris: Document Eliza IRIS accelerator Wangao Wang
2026-09-15 7:10 ` Krzysztof Kozlowski
2026-09-14 9:54 ` [PATCH 2/4] media: iris: Add support for Eliza Wangao Wang
2026-09-14 9:54 ` [PATCH 3/4] arm64: dts: qcom: eliza: Add iris video codec node Wangao Wang
2026-09-14 10:09 ` sashiko-bot
2026-09-14 9:54 ` [PATCH 4/4] arm64: dts: qcom: eliza-mtp: Enable iris video codec Wangao Wang
2026-09-14 10:10 ` sashiko-bot
2026-09-14 11:27 ` Abel Vesa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).