* [PATCH v8 1/5] dt-bindings: media: qcom,sm8550-iris: Add X1P42100 compatible
2026-05-29 7:34 ` [PATCH v8 0/5] media: iris: add support for purwa platform Wangao Wang
@ 2026-05-29 7:34 ` Wangao Wang
2026-05-29 7:34 ` [PATCH v8 2/5] media: iris: Add hardware power on/off ops for X1P42100 Wangao Wang
` (6 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Wangao Wang @ 2026-05-29 7:34 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Wangao Wang, Bryan O'Donoghue, Krzysztof Kozlowski
Document the new compatible string "qcom,x1p42100-iris".
Unlike SM8550 where the BSE (Bitstream Engine) is clocked implicitly
via vcodec0_core, x1p42100 exposes a dedicated BSE clock vcodec0_bse
that requires explicit enable/disable and frequency configuration.
The SM8550 driver has no knowledge of this clock and therefore cannot
operate x1p42100 hardware correctly.
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
---
.../bindings/media/qcom,sm8550-iris.yaml | 23 +++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml b/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
index 9c4b760508b50251ac467ad44a366689260bfc0d..0400ca1bff05dcef6b742c3fbf77e38adca9f280 100644
--- a/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
+++ b/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
@@ -26,6 +26,7 @@ properties:
- qcom,qcs8300-iris
- qcom,sm8550-iris
- qcom,sm8650-iris
+ - qcom,x1p42100-iris
reg:
maxItems: 1
@@ -41,13 +42,16 @@ properties:
- const: mmcx
clocks:
- maxItems: 3
+ minItems: 3
+ maxItems: 4
clock-names:
+ minItems: 3
items:
- const: iface
- const: core
- const: vcodec0_core
+ - const: vcodec0_bse
firmware-name:
maxItems: 1
@@ -115,6 +119,23 @@ allOf:
maxItems: 1
reset-names:
maxItems: 1
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,x1p42100-iris
+ then:
+ properties:
+ clocks:
+ minItems: 4
+ clock-names:
+ minItems: 4
+ else:
+ properties:
+ clocks:
+ maxItems: 3
+ clock-names:
+ maxItems: 3
unevaluatedProperties: false
--
2.43.0
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v8 2/5] media: iris: Add hardware power on/off ops for X1P42100
2026-05-29 7:34 ` [PATCH v8 0/5] media: iris: add support for purwa platform Wangao Wang
2026-05-29 7:34 ` [PATCH v8 1/5] dt-bindings: media: qcom,sm8550-iris: Add X1P42100 compatible Wangao Wang
@ 2026-05-29 7:34 ` Wangao Wang
2026-05-29 7:35 ` [PATCH v8 3/5] media: iris: Add platform data " Wangao Wang
` (5 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Wangao Wang @ 2026-05-29 7:34 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Wangao Wang, Bryan O'Donoghue
On X1P42100 the Iris block has an extra BSE clock. Wire this clock into
the power on/off sequence.
The BSE clock is used to drive the Bin Stream Engine, which is a sub-block
of the video codec hardware responsible for bitstream-level processing. It
is required to be enabled separately from the core clock to ensure proper
codec operation.
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
---
drivers/media/platform/qcom/iris/iris_vpu_common.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/media/platform/qcom/iris/iris_vpu_common.c
index 3872c4f37987ebbddbb040722adaa252faa40a73..5a85568c5ee1c5b656131607e7aef1b8a75e020d 100644
--- a/drivers/media/platform/qcom/iris/iris_vpu_common.c
+++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c
@@ -224,6 +224,7 @@ void iris_vpu_power_off_hw(struct iris_core *core)
{
dev_pm_genpd_set_hwmode(core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN], false);
iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN]);
+ iris_disable_unprepare_clock(core, IRIS_BSE_HW_CLK);
iris_disable_unprepare_clock(core, IRIS_HW_AHB_CLK);
iris_disable_unprepare_clock(core, IRIS_HW_CLK);
}
@@ -292,12 +293,18 @@ int iris_vpu_power_on_hw(struct iris_core *core)
if (ret && ret != -ENOENT)
goto err_disable_hw_clock;
+ ret = iris_prepare_enable_clock(core, IRIS_BSE_HW_CLK);
+ if (ret && ret != -ENOENT)
+ goto err_disable_hw_ahb_clock;
+
ret = dev_pm_genpd_set_hwmode(core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN], true);
if (ret)
- goto err_disable_hw_ahb_clock;
+ goto err_disable_bse_hw_clock;
return 0;
+err_disable_bse_hw_clock:
+ iris_disable_unprepare_clock(core, IRIS_BSE_HW_CLK);
err_disable_hw_ahb_clock:
iris_disable_unprepare_clock(core, IRIS_HW_AHB_CLK);
err_disable_hw_clock:
--
2.43.0
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v8 3/5] media: iris: Add platform data for X1P42100
2026-05-29 7:34 ` [PATCH v8 0/5] media: iris: add support for purwa platform Wangao Wang
2026-05-29 7:34 ` [PATCH v8 1/5] dt-bindings: media: qcom,sm8550-iris: Add X1P42100 compatible Wangao Wang
2026-05-29 7:34 ` [PATCH v8 2/5] media: iris: Add hardware power on/off ops for X1P42100 Wangao Wang
@ 2026-05-29 7:35 ` Wangao Wang
2026-05-29 7:35 ` [PATCH v8 4/5] arm64: dts: qcom: purwa: Override Iris clocks and operating points Wangao Wang
` (4 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Wangao Wang @ 2026-05-29 7:35 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel, Wangao Wang
Introduce platform data for X1P42100, derived from SM8550 but using a
different clock configuration and a dedicated OPP setup.
Reviewed-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>
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 | 42 ++++++++++++++++++++++
.../platform/qcom/iris/iris_platform_x1p42100.h | 22 ++++++++++++
drivers/media/platform/qcom/iris/iris_probe.c | 4 +++
4 files changed, 69 insertions(+)
diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
index 972fd4dd021cda6359cc84c444e2a77f41ab7ddb..8201c4723ed16c6440eb95c6ea623ae9af4e3cc5 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_common.h
+++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
@@ -59,6 +59,7 @@ extern const struct iris_platform_data sm8250_data;
extern const struct iris_platform_data sm8550_data;
extern const struct iris_platform_data sm8650_data;
extern const struct iris_platform_data sm8750_data;
+extern const struct iris_platform_data x1p42100_data;
enum platform_clk_type {
IRIS_AXI_CLK, /* AXI0 in case of platforms with multiple AXI clocks */
diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c
index c249ff8275414a355339ec8edb6856f292b5cff2..541ddc40e3aeef349f1ae68e216d398b3b4fba78 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c
+++ b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c
@@ -16,6 +16,7 @@
#include "iris_platform_sm8550.h"
#include "iris_platform_sm8650.h"
#include "iris_platform_sm8750.h"
+#include "iris_platform_x1p42100.h"
static const struct iris_firmware_desc iris_vpu30_p4_s6_gen2_desc = {
.firmware_data = &iris_hfi_gen2_data,
@@ -29,6 +30,12 @@ static const struct iris_firmware_desc iris_vpu30_p4_gen2_desc = {
.fwname = "qcom/vpu/vpu30_p4.mbn",
};
+static const struct iris_firmware_desc iris_vpu30_p1_gen2_desc = {
+ .firmware_data = &iris_hfi_gen2_data,
+ .get_vpu_buffer_size = iris_vpu_buf_size,
+ .fwname = "qcom/vpu/vpu30_p1_s7.mbn",
+};
+
static const struct iris_firmware_desc iris_vpu33_p4_gen2_desc = {
.firmware_data = &iris_hfi_gen2_data,
.get_vpu_buffer_size = iris_vpu33_buf_size,
@@ -217,3 +224,38 @@ const struct iris_platform_data sm8750_data = {
.max_core_mbpf = NUM_MBS_8K * 2,
.max_core_mbps = ((7680 * 4320) / 256) * 60,
};
+
+/*
+ * Shares most of SM8550 data except:
+ * - clk_tbl and opp_clk_tbl for x1p42100
+ * - different firmware
+ * - different num_vpp_pipe
+ */
+const struct iris_platform_data x1p42100_data = {
+ .firmware_desc = &iris_vpu30_p1_gen2_desc,
+ .vpu_ops = &iris_vpu3_ops,
+ .icc_tbl = iris_icc_info_vpu3x,
+ .icc_tbl_size = ARRAY_SIZE(iris_icc_info_vpu3x),
+ .clk_rst_tbl = sm8550_clk_reset_table,
+ .clk_rst_tbl_size = ARRAY_SIZE(sm8550_clk_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 = x1p42100_clk_table,
+ .clk_tbl_size = ARRAY_SIZE(x1p42100_clk_table),
+ .opp_clk_tbl = x1p42100_opp_clk_table,
+ /* 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_sm8550,
+ .tz_cp_config_data = tz_cp_config_vpu3,
+ .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_vpu3),
+ .num_vpp_pipe = 1,
+ .max_session_count = 16,
+ .max_core_mbpf = NUM_MBS_8K * 2,
+ .max_core_mbps = ((7680 * 4320) / 256) * 60,
+};
diff --git a/drivers/media/platform/qcom/iris/iris_platform_x1p42100.h b/drivers/media/platform/qcom/iris/iris_platform_x1p42100.h
new file mode 100644
index 0000000000000000000000000000000000000000..d89acfbc1233dad0692f6c13c3fc22b10e5bdd80
--- /dev/null
+++ b/drivers/media/platform/qcom/iris/iris_platform_x1p42100.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef __IRIS_PLATFORM_X1P42100_H__
+#define __IRIS_PLATFORM_X1P42100_H__
+
+static const struct platform_clk_data x1p42100_clk_table[] = {
+ {IRIS_AXI_CLK, "iface" },
+ {IRIS_CTRL_CLK, "core" },
+ {IRIS_HW_CLK, "vcodec0_core" },
+ {IRIS_BSE_HW_CLK, "vcodec0_bse" },
+};
+
+static const char *const x1p42100_opp_clk_table[] = {
+ "vcodec0_core",
+ "vcodec0_bse",
+ NULL,
+};
+
+#endif
diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/platform/qcom/iris/iris_probe.c
index d36f0c0e785b7de0e3527e0a824942db0fb79133..9f8113ec7a508a5a26cf275408165d34684d3e0b 100644
--- a/drivers/media/platform/qcom/iris/iris_probe.c
+++ b/drivers/media/platform/qcom/iris/iris_probe.c
@@ -385,6 +385,10 @@ static const struct of_device_id iris_dt_match[] = {
.compatible = "qcom,sm8750-iris",
.data = &sm8750_data,
},
+ {
+ .compatible = "qcom,x1p42100-iris",
+ .data = &x1p42100_data,
+ },
{ },
};
MODULE_DEVICE_TABLE(of, iris_dt_match);
--
2.43.0
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v8 4/5] arm64: dts: qcom: purwa: Override Iris clocks and operating points
2026-05-29 7:34 ` [PATCH v8 0/5] media: iris: add support for purwa platform Wangao Wang
` (2 preceding siblings ...)
2026-05-29 7:35 ` [PATCH v8 3/5] media: iris: Add platform data " Wangao Wang
@ 2026-05-29 7:35 ` Wangao Wang
2026-05-29 7:35 ` [PATCH v8 5/5] arm64: dts: qcom: purwa-iot-som: enable video Wangao Wang
` (3 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Wangao Wang @ 2026-05-29 7:35 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Wangao Wang, Konrad Dybcio, Dmitry Baryshkov
The Iris block on X1P differs from SM8550/X1E in its clock configuration
and requires a dedicated OPP table. The node inherited from the X1E cannot
be reused directly, and the fallback compatible "qcom,sm8550-iris" cannot
be applied.
Override the inherited clocks, clock-names, and operating points, and
replaces them with the X1P42100-specific definitions. A new OPP table
is provided to support the correct performance levels on this platform.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/purwa.dtsi | 50 +++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/purwa.dtsi b/arch/arm64/boot/dts/qcom/purwa.dtsi
index ea65b8448836ead83f837e973ed536e8ea0ed8ef..a503deec97d75dcfb6792b007e0b74e517404cfc 100644
--- a/arch/arm64/boot/dts/qcom/purwa.dtsi
+++ b/arch/arm64/boot/dts/qcom/purwa.dtsi
@@ -21,6 +21,7 @@
/delete-node/ &cpu_pd11;
/delete-node/ &gpu_opp_table;
/delete-node/ &gpu_speed_bin;
+/delete-node/ &iris_opp_table;
/delete-node/ &pcie3_phy;
/delete-node/ &thermal_aoss3;
/delete-node/ &thermal_cpu2_0_btm;
@@ -167,6 +168,55 @@ &gpucc {
compatible = "qcom,x1p42100-gpucc";
};
+&iris {
+ compatible = "qcom,x1p42100-iris";
+
+ clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
+ <&videocc VIDEO_CC_MVS0C_CLK>,
+ <&videocc VIDEO_CC_MVS0_CLK>,
+ <&videocc VIDEO_CC_MVS0_BSE_CLK>;
+ clock-names = "iface",
+ "core",
+ "vcodec0_core",
+ "vcodec0_bse";
+
+ operating-points-v2 = <&iris_opp_table_x1p42100>;
+
+ iris_opp_table_x1p42100: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-210000000 {
+ opp-hz = /bits/ 64 <210000000 105000000>;
+ required-opps = <&rpmhpd_opp_low_svs_d1>,
+ <&rpmhpd_opp_low_svs>;
+ };
+
+ opp-300000000 {
+ opp-hz = /bits/ 64 <300000000 150000000>;
+ required-opps = <&rpmhpd_opp_low_svs_d1>,
+ <&rpmhpd_opp_svs>;
+ };
+
+ opp-335000000 {
+ opp-hz = /bits/ 64 <335000000 167500000>;
+ required-opps = <&rpmhpd_opp_svs>,
+ <&rpmhpd_opp_svs_l1>;
+ };
+
+ opp-424000000 {
+ opp-hz = /bits/ 64 <424000000 212000000>;
+ required-opps = <&rpmhpd_opp_svs>,
+ <&rpmhpd_opp_nom>;
+ };
+
+ opp-500000000 {
+ opp-hz = /bits/ 64 <500000000 250000000>;
+ required-opps = <&rpmhpd_opp_svs>,
+ <&rpmhpd_opp_turbo>;
+ };
+ };
+};
+
/* PCIe3 has half the lanes compared to X1E80100 */
&pcie3 {
num-lanes = <4>;
--
2.43.0
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v8 5/5] arm64: dts: qcom: purwa-iot-som: enable video
2026-05-29 7:34 ` [PATCH v8 0/5] media: iris: add support for purwa platform Wangao Wang
` (3 preceding siblings ...)
2026-05-29 7:35 ` [PATCH v8 4/5] arm64: dts: qcom: purwa: Override Iris clocks and operating points Wangao Wang
@ 2026-05-29 7:35 ` Wangao Wang
2026-05-29 8:46 ` [PATCH v8 0/5] media: iris: add support for purwa platform Jie Gan
` (2 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Wangao Wang @ 2026-05-29 7:35 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Wangao Wang, Dmitry Baryshkov, Konrad Dybcio,
Krzysztof Kozlowski
Enable video nodes on the purwa-iot-som board.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/purwa-iot-som.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/purwa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/purwa-iot-som.dtsi
index 394e65518ac5037e5c7c50583acefc0dbc8ebb47..ff8621f8750584636ad781467f9c35ace2354e4c 100644
--- a/arch/arm64/boot/dts/qcom/purwa-iot-som.dtsi
+++ b/arch/arm64/boot/dts/qcom/purwa-iot-som.dtsi
@@ -389,6 +389,10 @@ &gpu_zap_shader {
firmware-name = "qcom/x1p42100/gen71500_zap.mbn";
};
+&iris {
+ status = "okay";
+};
+
&pcie3 {
pinctrl-0 = <&pcie3_default>;
pinctrl-names = "default";
--
2.43.0
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [PATCH v8 0/5] media: iris: add support for purwa platform
2026-05-29 7:34 ` [PATCH v8 0/5] media: iris: add support for purwa platform Wangao Wang
` (4 preceding siblings ...)
2026-05-29 7:35 ` [PATCH v8 5/5] arm64: dts: qcom: purwa-iot-som: enable video Wangao Wang
@ 2026-05-29 8:46 ` Jie Gan
2026-05-29 9:13 ` Bryan O'Donoghue
2026-05-29 9:15 ` Bryan O'Donoghue
2026-06-04 6:48 ` Vikash Garodia
7 siblings, 1 reply; 13+ messages in thread
From: Jie Gan @ 2026-05-29 8:46 UTC (permalink / raw)
To: Wangao Wang, Bryan O'Donoghue, Vikash Garodia,
Dikshita Agarwal, Abhinav Kumar, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Bryan O'Donoghue, Krzysztof Kozlowski, Konrad Dybcio,
Dmitry Baryshkov
On 5/29/2026 3:34 PM, Wangao Wang wrote:
> This series enables the Iris video codec on purwa, allowing purwa to
> use hardware‑accelerated video encoding and decoding.
>
> The Iris codec on purwa is nearly identical to the one on hamoa(X1E),
> except that it requires one additional clock and uses a different OPP
> table.
>
> Therefore, purwa can reuse the Iris node from hamoa, but the clocks
> and OPP table need to be redefined.
>
> All patches have been tested with v4l2-compliance and v4l2-ctl on
> purwa. And it does not affect existing targets.
>
Please rebase on the latest linux-next tag, saw conflict with the commit:
95a337f92f0a media: iris: switch to hardware mode after firmware boot
Thanks,
Jie
> Dependencies:
> https://lore.kernel.org/all/20260409-purwa-videocc-camcc-v4-0-5a8e5f2dd4b2@oss.qualcomm.com/
>
> The result of v4l2-compliance on purwa:
> v4l2-compliance 1.31.0-5379, 64 bits, 64-bit time_t
> v4l2-compliance SHA: 14c988631ad4 2025-11-11 11:19:35
>
> Compliance test for iris_driver device /dev/video0:
>
> Driver Info:
> Driver name : iris_driver
> Card type : Iris Decoder
> Bus info : platform:aa00000.video-codec
> Driver version : 6.19.0
> Capabilities : 0x84204000
> Video Memory-to-Memory Multiplanar
> Streaming
> Extended Pix Format
> Device Capabilities
> Device Caps : 0x04204000
> Video Memory-to-Memory Multiplanar
> Streaming
> Extended Pix Format
> Detected Stateful Decoder
>
> Required ioctls:
> test VIDIOC_QUERYCAP: OK
> test invalid ioctls: OK
>
> Allow for multiple opens:
> test second /dev/video0 open: OK
> test VIDIOC_QUERYCAP: OK
> test VIDIOC_G/S_PRIORITY: OK
> test for unlimited opens: OK
>
> Debug ioctls:
> test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
> test VIDIOC_LOG_STATUS: OK (Not Supported)
>
> Input ioctls:
> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
> test VIDIOC_ENUMAUDIO: OK (Not Supported)
> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
> test VIDIOC_G/S_AUDIO: OK (Not Supported)
> Inputs: 0 Audio Inputs: 0 Tuners: 0
>
> Output ioctls:
> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
> Outputs: 0 Audio Outputs: 0 Modulators: 0
>
> Input/Output configuration ioctls:
> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
> test VIDIOC_G/S_EDID: OK (Not Supported)
>
> Control ioctls:
> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
> test VIDIOC_QUERYCTRL: OK
> test VIDIOC_G/S_CTRL: OK
> test VIDIOC_G/S/TRY_EXT_CTRLS: OK
> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
> Standard Controls: 10 Private Controls: 0
>
> Format ioctls:
> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
> test VIDIOC_G/S_PARM: OK (Not Supported)
> test VIDIOC_G_FBUF: OK (Not Supported)
> test VIDIOC_G_FMT: OK
> test VIDIOC_TRY_FMT: OK
> test VIDIOC_S_FMT: OK
> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
> test Cropping: OK
> test Composing: OK
> test Scaling: OK (Not Supported)
>
> Codec ioctls:
> test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
> test VIDIOC_(TRY_)DECODER_CMD: OK
>
> Buffer ioctls:
> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
> test CREATE_BUFS maximum buffers: OK
> test VIDIOC_REMOVE_BUFS: OK
> test VIDIOC_EXPBUF: OK
> test Requests: OK (Not Supported)
> test blocking wait: OK
>
> Test input 0:
>
> Streaming ioctls:
> test read/write: OK (Not Supported)
> the input file is smaller than 7077888 bytes
> Video Capture Multiplanar: Captured 65 buffers
> test MMAP (select, REQBUFS): OK
> the input file is smaller than 7077888 bytes
> Video Capture Multiplanar: Captured 65 buffers
> test MMAP (epoll, REQBUFS): OK
> the input file is smaller than 7077888 bytes
> Video Capture Multiplanar: Captured 65 buffers
> test MMAP (select, CREATE_BUFS): OK
> the input file is smaller than 7077888 bytes
> Video Capture Multiplanar: Captured 65 buffers
> test MMAP (epoll, CREATE_BUFS): OK
> test USERPTR (select): OK (Not Supported)
> test DMABUF: Cannot test, specify --expbuf-device
>
> Total for iris_driver device /dev/video0: 54, Succeeded: 54, Failed: 0, Warnings: 0
> root@localhost:/lib/video_test# ./v4l2-compliance -d /dev/video1 -s
> v4l2-compliance 1.31.0-5379, 64 bits, 64-bit time_t
> v4l2-compliance SHA: 14c988631ad4 2025-11-11 11:19:35
>
> Compliance test for iris_driver device /dev/video1:
>
> Driver Info:
> Driver name : iris_driver
> Card type : Iris Encoder
> Bus info : platform:aa00000.video-codec
> Driver version : 6.19.0
> Capabilities : 0x84204000
> Video Memory-to-Memory Multiplanar
> Streaming
> Extended Pix Format
> Device Capabilities
> Device Caps : 0x04204000
> Video Memory-to-Memory Multiplanar
> Streaming
> Extended Pix Format
> Detected Stateful Encoder
>
> Required ioctls:
> test VIDIOC_QUERYCAP: OK
> test invalid ioctls: OK
>
> Allow for multiple opens:
> test second /dev/video1 open: OK
> test VIDIOC_QUERYCAP: OK
> test VIDIOC_G/S_PRIORITY: OK
> test for unlimited opens: OK
>
> Debug ioctls:
> test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
> test VIDIOC_LOG_STATUS: OK (Not Supported)
>
> Input ioctls:
> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
> test VIDIOC_ENUMAUDIO: OK (Not Supported)
> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
> test VIDIOC_G/S_AUDIO: OK (Not Supported)
> Inputs: 0 Audio Inputs: 0 Tuners: 0
>
> Output ioctls:
> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
> Outputs: 0 Audio Outputs: 0 Modulators: 0
>
> Input/Output configuration ioctls:
> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
> test VIDIOC_G/S_EDID: OK (Not Supported)
>
> Control ioctls:
> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
> test VIDIOC_QUERYCTRL: OK
> test VIDIOC_G/S_CTRL: OK
> test VIDIOC_G/S/TRY_EXT_CTRLS: OK
> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
> Standard Controls: 38 Private Controls: 0
>
> Format ioctls:
> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
> test VIDIOC_G/S_PARM: OK
> test VIDIOC_G_FBUF: OK (Not Supported)
> test VIDIOC_G_FMT: OK
> test VIDIOC_TRY_FMT: OK
> test VIDIOC_S_FMT: OK
> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
> test Cropping: OK
> test Composing: OK (Not Supported)
> test Scaling: OK (Not Supported)
>
> Codec ioctls:
> test VIDIOC_(TRY_)ENCODER_CMD: OK
> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
> test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>
> Buffer ioctls:
> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
> test CREATE_BUFS maximum buffers: OK
> test VIDIOC_REMOVE_BUFS: OK
> test VIDIOC_EXPBUF: OK
> test Requests: OK (Not Supported)
> test blocking wait: OK
>
> Test input 0:
>
> Streaming ioctls:
> test read/write: OK (Not Supported)
> Video Capture Multiplanar: Captured 61 buffers
> test MMAP (select, REQBUFS): OK
> Video Capture Multiplanar: Captured 61 buffers
> test MMAP (epoll, REQBUFS): OK
> Video Capture Multiplanar: Captured 61 buffers
> test MMAP (select, CREATE_BUFS): OK
> Video Capture Multiplanar: Captured 61 buffers
> test MMAP (epoll, CREATE_BUFS): OK
> test USERPTR (select): OK (Not Supported)
> test DMABUF: Cannot test, specify --expbuf-device
>
> Total for iris_driver device /dev/video1: 54, Succeeded: 54, Failed: 0, Warnings: 0
>
> fluster result:
> H.264:
> Ran 77/135 tests successfully
>
> H.265:
> Ran 131/147 tests successfully
>
> VP9:
> Ran 235/305 tests successfully
>
> Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
> ---
> Changes in v8:
> - Rebase onto the media-committers venus-iris-next branch.
> - Link to v7: https://lore.kernel.org/r/20260514-enable_iris_on_purwa-v7-0-47aa5b026f1a@oss.qualcomm.com
>
> Changes in v7:
> - Rebase onto the media-committers next+fixes branch.
> - Correct the firmware name.
> - Link to v6: https://lore.kernel.org/r/20260507-enable_iris_on_purwa-v6-0-48da505e23bf@oss.qualcomm.com
>
> Changes in v6:
> - Correct the firmware being used.(Dikshita)
> - Add comments to platform data.(Dikshita)
> - Link to v5: https://lore.kernel.org/r/20260429-enable_iris_on_purwa-v5-0-438fa96da248@oss.qualcomm.com
>
> Changes in v5:
> - Modify the dt-binding description.(Krzysztof)
> - Move the BSE clock on/off handling into the vpu3 code.(Krzysztof)
> - Link to v4: https://lore.kernel.org/r/20260401-enable_iris_on_purwa-v4-0-ca784552a3e9@oss.qualcomm.com
>
> Changes in v4:
> - Correct the dt-binding description.(Krzysztof)
> - Fix incorrect required-opps.(Dmitry)
> - Reuse the vpu3 power off hardware api.
> - Link to v3: https://lore.kernel.org/r/20260319-enable_iris_on_purwa-v3-0-bf8f3e9a8c9c@oss.qualcomm.com
>
> Changes in v3:
> - Correct the dt-binding description.(Krzysztof)
> - Fix warnings reported in the patch.(Krzysztof)
> - Add separate power on/off hooks for Purwa.(Dmitry)
> - Link to v2: https://lore.kernel.org/r/20260306-enable_iris_on_purwa-v2-0-75fa80a0a9e3@oss.qualcomm.com
>
> Changes in v2:
> - Improve the dt-binding description.(Krzysztof)
> - Move the BSE clock on/off handling into the vpu3 code.(Dmitry)
> - Add the required members to the platform data for Purwa.(Dikshita)
> - Link to v1: https://lore.kernel.org/r/20260209-enable_iris_on_purwa-v1-0-537c410f604f@oss.qualcomm.com
>
> ---
> Wangao Wang (5):
> dt-bindings: media: qcom,sm8550-iris: Add X1P42100 compatible
> media: iris: Add hardware power on/off ops for X1P42100
> media: iris: Add platform data for X1P42100
> arm64: dts: qcom: purwa: Override Iris clocks and operating points
> arm64: dts: qcom: purwa-iot-som: enable video
>
> .../bindings/media/qcom,sm8550-iris.yaml | 23 +++++++++-
> arch/arm64/boot/dts/qcom/purwa-iot-som.dtsi | 4 ++
> arch/arm64/boot/dts/qcom/purwa.dtsi | 50 ++++++++++++++++++++++
> .../platform/qcom/iris/iris_platform_common.h | 1 +
> .../media/platform/qcom/iris/iris_platform_vpu3x.c | 42 ++++++++++++++++++
> .../platform/qcom/iris/iris_platform_x1p42100.h | 22 ++++++++++
> drivers/media/platform/qcom/iris/iris_probe.c | 4 ++
> drivers/media/platform/qcom/iris/iris_vpu_common.c | 9 +++-
> 8 files changed, 153 insertions(+), 2 deletions(-)
> ---
> base-commit: 735d2f48cadaa9a87e7c7601667878de70c771c5
> change-id: 20260209-enable_iris_on_purwa-a000527a098d
> prerequisite-change-id: 20260331-purwa-videocc-camcc-d9700d0f797d:v4
> prerequisite-patch-id: 61bdb45446193b72dd8a4b093e4ab2f78db2f066
> prerequisite-patch-id: b5be9dcbb612a14108f890b2782860847edfcbe4
> prerequisite-patch-id: 2f4d4c5c118e057c76e6d2785479df01d5bc1c7b
> prerequisite-patch-id: 026db5dd71d5b0472225ba72c8ba2781334143a9
> prerequisite-patch-id: 615e6f38e528de35dc206f1c7f3eaf78ff04afe2
> prerequisite-patch-id: 66096b909debe4d942eee972948d5a138a5be427
> prerequisite-patch-id: ee26e00cdde21ddb070af713230082ad3454422c
>
> Best regards,
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [PATCH v8 0/5] media: iris: add support for purwa platform
2026-05-29 8:46 ` [PATCH v8 0/5] media: iris: add support for purwa platform Jie Gan
@ 2026-05-29 9:13 ` Bryan O'Donoghue
0 siblings, 0 replies; 13+ messages in thread
From: Bryan O'Donoghue @ 2026-05-29 9:13 UTC (permalink / raw)
To: Jie Gan, Wangao Wang, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Bryan O'Donoghue, Krzysztof Kozlowski, Konrad Dybcio,
Dmitry Baryshkov
On 29/05/2026 09:46, Jie Gan wrote:
>> All patches have been tested with v4l2-compliance and v4l2-ctl on
>> purwa. And it does not affect existing targets.
>>
> Please rebase on the latest linux-next tag, saw conflict with the commit:
> 95a337f92f0a media: iris: switch to hardware mode after firmware boot
>
> Thanks,
> Jie
That's a -stable commit.
Base patches off of media-committers/next.
media-committers
git@ssh.gitlab.freedesktop.org:linux-media/media-committers.git (fetch)
media-committers
git@ssh.gitlab.freedesktop.org:linux-media/media-committers.git (push)
---
bod
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v8 0/5] media: iris: add support for purwa platform
2026-05-29 7:34 ` [PATCH v8 0/5] media: iris: add support for purwa platform Wangao Wang
` (5 preceding siblings ...)
2026-05-29 8:46 ` [PATCH v8 0/5] media: iris: add support for purwa platform Jie Gan
@ 2026-05-29 9:15 ` Bryan O'Donoghue
2026-05-29 9:45 ` Wangao Wang
2026-06-04 6:48 ` Vikash Garodia
7 siblings, 1 reply; 13+ messages in thread
From: Bryan O'Donoghue @ 2026-05-29 9:15 UTC (permalink / raw)
To: Wangao Wang, Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Bryan O'Donoghue, Krzysztof Kozlowski, Konrad Dybcio,
Dmitry Baryshkov
On 29/05/2026 08:34, Wangao Wang wrote:
> This series enables the Iris video codec on purwa, allowing purwa to
> use hardware‑accelerated video encoding and decoding.
>
> The Iris codec on purwa is nearly identical to the one on hamoa(X1E),
> except that it requires one additional clock and uses a different OPP
> table.
>
> Therefore, purwa can reuse the Iris node from hamoa, but the clocks
> and OPP table need to be redefined.
>
> All patches have been tested with v4l2-compliance and v4l2-ctl on
> purwa. And it does not affect existing targets.
>
> Dependencies:
> https://lore.kernel.org/all/20260409-purwa-videocc-camcc-v4-0-5a8e5f2dd4b2@oss.qualcomm.com/
>
> The result of v4l2-compliance on purwa:
> v4l2-compliance 1.31.0-5379, 64 bits, 64-bit time_t
> v4l2-compliance SHA: 14c988631ad4 2025-11-11 11:19:35
>
> Compliance test for iris_driver device /dev/video0:
>
> Driver Info:
> Driver name : iris_driver
> Card type : Iris Decoder
> Bus info : platform:aa00000.video-codec
> Driver version : 6.19.0
> Capabilities : 0x84204000
> Video Memory-to-Memory Multiplanar
> Streaming
> Extended Pix Format
> Device Capabilities
> Device Caps : 0x04204000
> Video Memory-to-Memory Multiplanar
> Streaming
> Extended Pix Format
> Detected Stateful Decoder
>
> Required ioctls:
> test VIDIOC_QUERYCAP: OK
> test invalid ioctls: OK
>
> Allow for multiple opens:
> test second /dev/video0 open: OK
> test VIDIOC_QUERYCAP: OK
> test VIDIOC_G/S_PRIORITY: OK
> test for unlimited opens: OK
>
> Debug ioctls:
> test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
> test VIDIOC_LOG_STATUS: OK (Not Supported)
>
> Input ioctls:
> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
> test VIDIOC_ENUMAUDIO: OK (Not Supported)
> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
> test VIDIOC_G/S_AUDIO: OK (Not Supported)
> Inputs: 0 Audio Inputs: 0 Tuners: 0
>
> Output ioctls:
> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
> Outputs: 0 Audio Outputs: 0 Modulators: 0
>
> Input/Output configuration ioctls:
> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
> test VIDIOC_G/S_EDID: OK (Not Supported)
>
> Control ioctls:
> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
> test VIDIOC_QUERYCTRL: OK
> test VIDIOC_G/S_CTRL: OK
> test VIDIOC_G/S/TRY_EXT_CTRLS: OK
> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
> Standard Controls: 10 Private Controls: 0
>
> Format ioctls:
> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
> test VIDIOC_G/S_PARM: OK (Not Supported)
> test VIDIOC_G_FBUF: OK (Not Supported)
> test VIDIOC_G_FMT: OK
> test VIDIOC_TRY_FMT: OK
> test VIDIOC_S_FMT: OK
> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
> test Cropping: OK
> test Composing: OK
> test Scaling: OK (Not Supported)
>
> Codec ioctls:
> test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
> test VIDIOC_(TRY_)DECODER_CMD: OK
>
> Buffer ioctls:
> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
> test CREATE_BUFS maximum buffers: OK
> test VIDIOC_REMOVE_BUFS: OK
> test VIDIOC_EXPBUF: OK
> test Requests: OK (Not Supported)
> test blocking wait: OK
>
> Test input 0:
>
> Streaming ioctls:
> test read/write: OK (Not Supported)
> the input file is smaller than 7077888 bytes
> Video Capture Multiplanar: Captured 65 buffers
> test MMAP (select, REQBUFS): OK
> the input file is smaller than 7077888 bytes
> Video Capture Multiplanar: Captured 65 buffers
> test MMAP (epoll, REQBUFS): OK
> the input file is smaller than 7077888 bytes
> Video Capture Multiplanar: Captured 65 buffers
> test MMAP (select, CREATE_BUFS): OK
> the input file is smaller than 7077888 bytes
> Video Capture Multiplanar: Captured 65 buffers
> test MMAP (epoll, CREATE_BUFS): OK
> test USERPTR (select): OK (Not Supported)
> test DMABUF: Cannot test, specify --expbuf-device
>
> Total for iris_driver device /dev/video0: 54, Succeeded: 54, Failed: 0, Warnings: 0
> root@localhost:/lib/video_test# ./v4l2-compliance -d /dev/video1 -s
> v4l2-compliance 1.31.0-5379, 64 bits, 64-bit time_t
> v4l2-compliance SHA: 14c988631ad4 2025-11-11 11:19:35
>
> Compliance test for iris_driver device /dev/video1:
>
> Driver Info:
> Driver name : iris_driver
> Card type : Iris Encoder
> Bus info : platform:aa00000.video-codec
> Driver version : 6.19.0
> Capabilities : 0x84204000
> Video Memory-to-Memory Multiplanar
> Streaming
> Extended Pix Format
> Device Capabilities
> Device Caps : 0x04204000
> Video Memory-to-Memory Multiplanar
> Streaming
> Extended Pix Format
> Detected Stateful Encoder
>
> Required ioctls:
> test VIDIOC_QUERYCAP: OK
> test invalid ioctls: OK
>
> Allow for multiple opens:
> test second /dev/video1 open: OK
> test VIDIOC_QUERYCAP: OK
> test VIDIOC_G/S_PRIORITY: OK
> test for unlimited opens: OK
>
> Debug ioctls:
> test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
> test VIDIOC_LOG_STATUS: OK (Not Supported)
>
> Input ioctls:
> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
> test VIDIOC_ENUMAUDIO: OK (Not Supported)
> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
> test VIDIOC_G/S_AUDIO: OK (Not Supported)
> Inputs: 0 Audio Inputs: 0 Tuners: 0
>
> Output ioctls:
> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
> Outputs: 0 Audio Outputs: 0 Modulators: 0
>
> Input/Output configuration ioctls:
> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
> test VIDIOC_G/S_EDID: OK (Not Supported)
>
> Control ioctls:
> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
> test VIDIOC_QUERYCTRL: OK
> test VIDIOC_G/S_CTRL: OK
> test VIDIOC_G/S/TRY_EXT_CTRLS: OK
> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
> Standard Controls: 38 Private Controls: 0
>
> Format ioctls:
> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
> test VIDIOC_G/S_PARM: OK
> test VIDIOC_G_FBUF: OK (Not Supported)
> test VIDIOC_G_FMT: OK
> test VIDIOC_TRY_FMT: OK
> test VIDIOC_S_FMT: OK
> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
> test Cropping: OK
> test Composing: OK (Not Supported)
> test Scaling: OK (Not Supported)
>
> Codec ioctls:
> test VIDIOC_(TRY_)ENCODER_CMD: OK
> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
> test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>
> Buffer ioctls:
> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
> test CREATE_BUFS maximum buffers: OK
> test VIDIOC_REMOVE_BUFS: OK
> test VIDIOC_EXPBUF: OK
> test Requests: OK (Not Supported)
> test blocking wait: OK
>
> Test input 0:
>
> Streaming ioctls:
> test read/write: OK (Not Supported)
> Video Capture Multiplanar: Captured 61 buffers
> test MMAP (select, REQBUFS): OK
> Video Capture Multiplanar: Captured 61 buffers
> test MMAP (epoll, REQBUFS): OK
> Video Capture Multiplanar: Captured 61 buffers
> test MMAP (select, CREATE_BUFS): OK
> Video Capture Multiplanar: Captured 61 buffers
> test MMAP (epoll, CREATE_BUFS): OK
> test USERPTR (select): OK (Not Supported)
> test DMABUF: Cannot test, specify --expbuf-device
>
> Total for iris_driver device /dev/video1: 54, Succeeded: 54, Failed: 0, Warnings: 0
>
> fluster result:
> H.264:
> Ran 77/135 tests successfully
>
> H.265:
> Ran 131/147 tests successfully
>
> VP9:
> Ran 235/305 tests successfully
>
> Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
> ---
> Changes in v8:
> - Rebase onto the media-committers venus-iris-next branch.
> - Link to v7: https://lore.kernel.org/r/20260514-enable_iris_on_purwa-v7-0-47aa5b026f1a@oss.qualcomm.com
>
> Changes in v7:
> - Rebase onto the media-committers next+fixes branch.
> - Correct the firmware name.
> - Link to v6: https://lore.kernel.org/r/20260507-enable_iris_on_purwa-v6-0-48da505e23bf@oss.qualcomm.com
>
> Changes in v6:
> - Correct the firmware being used.(Dikshita)
> - Add comments to platform data.(Dikshita)
> - Link to v5: https://lore.kernel.org/r/20260429-enable_iris_on_purwa-v5-0-438fa96da248@oss.qualcomm.com
>
> Changes in v5:
> - Modify the dt-binding description.(Krzysztof)
> - Move the BSE clock on/off handling into the vpu3 code.(Krzysztof)
> - Link to v4: https://lore.kernel.org/r/20260401-enable_iris_on_purwa-v4-0-ca784552a3e9@oss.qualcomm.com
>
> Changes in v4:
> - Correct the dt-binding description.(Krzysztof)
> - Fix incorrect required-opps.(Dmitry)
> - Reuse the vpu3 power off hardware api.
> - Link to v3: https://lore.kernel.org/r/20260319-enable_iris_on_purwa-v3-0-bf8f3e9a8c9c@oss.qualcomm.com
>
> Changes in v3:
> - Correct the dt-binding description.(Krzysztof)
> - Fix warnings reported in the patch.(Krzysztof)
> - Add separate power on/off hooks for Purwa.(Dmitry)
> - Link to v2: https://lore.kernel.org/r/20260306-enable_iris_on_purwa-v2-0-75fa80a0a9e3@oss.qualcomm.com
>
> Changes in v2:
> - Improve the dt-binding description.(Krzysztof)
> - Move the BSE clock on/off handling into the vpu3 code.(Dmitry)
> - Add the required members to the platform data for Purwa.(Dikshita)
> - Link to v1: https://lore.kernel.org/r/20260209-enable_iris_on_purwa-v1-0-537c410f604f@oss.qualcomm.com
>
> ---
> Wangao Wang (5):
> dt-bindings: media: qcom,sm8550-iris: Add X1P42100 compatible
> media: iris: Add hardware power on/off ops for X1P42100
> media: iris: Add platform data for X1P42100
> arm64: dts: qcom: purwa: Override Iris clocks and operating points
> arm64: dts: qcom: purwa-iot-som: enable video
>
> .../bindings/media/qcom,sm8550-iris.yaml | 23 +++++++++-
> arch/arm64/boot/dts/qcom/purwa-iot-som.dtsi | 4 ++
> arch/arm64/boot/dts/qcom/purwa.dtsi | 50 ++++++++++++++++++++++
> .../platform/qcom/iris/iris_platform_common.h | 1 +
> .../media/platform/qcom/iris/iris_platform_vpu3x.c | 42 ++++++++++++++++++
> .../platform/qcom/iris/iris_platform_x1p42100.h | 22 ++++++++++
> drivers/media/platform/qcom/iris/iris_probe.c | 4 ++
> drivers/media/platform/qcom/iris/iris_vpu_common.c | 9 +++-
> 8 files changed, 153 insertions(+), 2 deletions(-)
> ---
> base-commit: 735d2f48cadaa9a87e7c7601667878de70c771c5
> change-id: 20260209-enable_iris_on_purwa-a000527a098d
> prerequisite-change-id: 20260331-purwa-videocc-camcc-d9700d0f797d:v4
> prerequisite-patch-id: 61bdb45446193b72dd8a4b093e4ab2f78db2f066
> prerequisite-patch-id: b5be9dcbb612a14108f890b2782860847edfcbe4
> prerequisite-patch-id: 2f4d4c5c118e057c76e6d2785479df01d5bc1c7b
> prerequisite-patch-id: 026db5dd71d5b0472225ba72c8ba2781334143a9
> prerequisite-patch-id: 615e6f38e528de35dc206f1c7f3eaf78ff04afe2
> prerequisite-patch-id: 66096b909debe4d942eee972948d5a138a5be427
> prerequisite-patch-id: ee26e00cdde21ddb070af713230082ad3454422c
>
> Best regards,
> --
> Wangao Wang <wangao.wang@oss.qualcomm.com>
>
Ehy why are camcc patches prerequisites for vidc ?
I'll drop all of that stuff since you don't depend on it and and you
don't actually want to be gated by it.
---
bod
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [PATCH v8 0/5] media: iris: add support for purwa platform
2026-05-29 9:15 ` Bryan O'Donoghue
@ 2026-05-29 9:45 ` Wangao Wang
0 siblings, 0 replies; 13+ messages in thread
From: Wangao Wang @ 2026-05-29 9:45 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: wangao.wang, linux-media, linux-arm-msm, devicetree,
linux-kernel, Bryan O'Donoghue, Krzysztof Kozlowski,
Konrad Dybcio, Dmitry Baryshkov
On 2026/5/29 17:15, Bryan O'Donoghue wrote:
>
> Ehy why are camcc patches prerequisites for vidc ?
>
> I'll drop all of that stuff since you don't depend on it and and you
> don't actually want to be gated by it.
>
> ---
> bod
Only the last two patches of this series, which are the DT patches,
depend on videocc. Please drop them. The driver is good to go.
--
Best Regards,
Wangao
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v8 0/5] media: iris: add support for purwa platform
2026-05-29 7:34 ` [PATCH v8 0/5] media: iris: add support for purwa platform Wangao Wang
` (6 preceding siblings ...)
2026-05-29 9:15 ` Bryan O'Donoghue
@ 2026-06-04 6:48 ` Vikash Garodia
2026-06-23 6:15 ` Wangao Wang
7 siblings, 1 reply; 13+ messages in thread
From: Vikash Garodia @ 2026-06-04 6:48 UTC (permalink / raw)
To: Wangao Wang, Bryan O'Donoghue, Dikshita Agarwal,
Abhinav Kumar, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Bryan O'Donoghue, Krzysztof Kozlowski, Konrad Dybcio,
Dmitry Baryshkov
Hi Bjorn,
On 5/29/2026 1:04 PM, Wangao Wang wrote:
> This series enables the Iris video codec on purwa, allowing purwa to
> use hardware‑accelerated video encoding and decoding.
>
> The Iris codec on purwa is nearly identical to the one on hamoa(X1E),
> except that it requires one additional clock and uses a different OPP
> table.
>
> Therefore, purwa can reuse the Iris node from hamoa, but the clocks
> and OPP table need to be redefined.
>
> All patches have been tested with v4l2-compliance and v4l2-ctl on
> purwa. And it does not affect existing targets.
>
> Dependencies:
> https://lore.kernel.org/all/20260409-purwa-videocc-camcc-v4-0-5a8e5f2dd4b2@oss.qualcomm.com/
>
<snip>
>
> ---
> Wangao Wang (5):
> dt-bindings: media: qcom,sm8550-iris: Add X1P42100 compatible
> media: iris: Add hardware power on/off ops for X1P42100
> media: iris: Add platform data for X1P42100
> arm64: dts: qcom: purwa: Override Iris clocks and operating points
> arm64: dts: qcom: purwa-iot-som: enable video
>
Media patches in this series are now applied. Do you plan to apply the
DTS ones ?
Regards,
Vikash
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [PATCH v8 0/5] media: iris: add support for purwa platform
2026-06-04 6:48 ` Vikash Garodia
@ 2026-06-23 6:15 ` Wangao Wang
2026-06-23 7:11 ` Krzysztof Kozlowski
0 siblings, 1 reply; 13+ messages in thread
From: Wangao Wang @ 2026-06-23 6:15 UTC (permalink / raw)
To: Vikash Garodia, Bryan O'Donoghue, Dikshita Agarwal,
Abhinav Kumar, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: wangao.wang, linux-media, linux-arm-msm, devicetree,
linux-kernel, Bryan O'Donoghue, Krzysztof Kozlowski,
Konrad Dybcio, Dmitry Baryshkov
On 2026/6/4 14:48, Vikash Garodia wrote:
> Hi Bjorn,
>
> On 5/29/2026 1:04 PM, Wangao Wang wrote:
>> This series enables the Iris video codec on purwa, allowing purwa to
>> use hardware‑accelerated video encoding and decoding.
>>
>> The Iris codec on purwa is nearly identical to the one on hamoa(X1E),
>> except that it requires one additional clock and uses a different OPP
>> table.
>>
>> Therefore, purwa can reuse the Iris node from hamoa, but the clocks
>> and OPP table need to be redefined.
>>
>> All patches have been tested with v4l2-compliance and v4l2-ctl on
>> purwa. And it does not affect existing targets.
>>
>> Dependencies:
>> https://lore.kernel.org/all/20260409-purwa-videocc-camcc-
>> v4-0-5a8e5f2dd4b2@oss.qualcomm.com/
>>
>
> <snip>
>>
>> ---
>> Wangao Wang (5):
>> dt-bindings: media: qcom,sm8550-iris: Add X1P42100 compatible
>> media: iris: Add hardware power on/off ops for X1P42100
>> media: iris: Add platform data for X1P42100
>> arm64: dts: qcom: purwa: Override Iris clocks and operating points
>> arm64: dts: qcom: purwa-iot-som: enable video
>>
>
> Media patches in this series are now applied. Do you plan to apply the
> DTS ones ?
>
> Regards,
> Vikash
>
Hi Bjorn, is everything going well? If you encounter any issues, please
feel free to give us feedback. Thank you.
--
Best Regards,
Wangao
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v8 0/5] media: iris: add support for purwa platform
2026-06-23 6:15 ` Wangao Wang
@ 2026-06-23 7:11 ` Krzysztof Kozlowski
0 siblings, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-23 7:11 UTC (permalink / raw)
To: Wangao Wang, Vikash Garodia, Bryan O'Donoghue,
Dikshita Agarwal, Abhinav Kumar, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Bryan O'Donoghue, Konrad Dybcio, Dmitry Baryshkov
On 23/06/2026 08:15, Wangao Wang wrote:
>
>
> On 2026/6/4 14:48, Vikash Garodia wrote:
>> Hi Bjorn,
>>
>> On 5/29/2026 1:04 PM, Wangao Wang wrote:
>>> This series enables the Iris video codec on purwa, allowing purwa to
>>> use hardware‑accelerated video encoding and decoding.
>>>
>>> The Iris codec on purwa is nearly identical to the one on hamoa(X1E),
>>> except that it requires one additional clock and uses a different OPP
>>> table.
>>>
>>> Therefore, purwa can reuse the Iris node from hamoa, but the clocks
>>> and OPP table need to be redefined.
>>>
>>> All patches have been tested with v4l2-compliance and v4l2-ctl on
>>> purwa. And it does not affect existing targets.
>>>
>>> Dependencies:
>>> https://lore.kernel.org/all/20260409-purwa-videocc-camcc-
>>> v4-0-5a8e5f2dd4b2@oss.qualcomm.com/
>>>
>>
>> <snip>
>>>
>>> ---
>>> Wangao Wang (5):
>>> dt-bindings: media: qcom,sm8550-iris: Add X1P42100 compatible
>>> media: iris: Add hardware power on/off ops for X1P42100
>>> media: iris: Add platform data for X1P42100
>>> arm64: dts: qcom: purwa: Override Iris clocks and operating points
>>> arm64: dts: qcom: purwa-iot-som: enable video
>>>
>>
>> Media patches in this series are now applied. Do you plan to apply the
>> DTS ones ?
>>
>> Regards,
>> Vikash
>>
>
> Hi Bjorn, is everything going well? If you encounter any issues, please
> feel free to give us feedback. Thank you.
Now is merge window, so usually better not to ping - patches won't move
anyway. In case you wonder what is with the patches, I suggest to check
the status in Patchwork.
However that said considering how old is this patchset (1 month) and
after looking at cover letter with:
change-id: 20260209-enable_iris_on_purwa-a000527a098d
prerequisite-change-id: 20260331-purwa-videocc-camcc-d9700d0f797d:v4
prerequisite-patch-id: 61bdb45446193b72dd8a4b093e4ab2f78db2f066
prerequisite-patch-id: b5be9dcbb612a14108f890b2782860847edfcbe4
prerequisite-patch-id: 2f4d4c5c118e057c76e6d2785479df01d5bc1c7b
prerequisite-patch-id: 026db5dd71d5b0472225ba72c8ba2781334143a9
prerequisite-patch-id: 615e6f38e528de35dc206f1c7f3eaf78ff04afe2
prerequisite-patch-id: 66096b909debe4d942eee972948d5a138a5be427
prerequisite-patch-id: ee26e00cdde21ddb070af713230082ad3454422c
the most effective way to move it forward is to send a new version after
rebasing, which will make it obvious and explicit that there are no
dependencies.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 13+ messages in thread