* [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support
@ 2026-01-25 15:32 Dmitry Baryshkov
2026-01-25 15:32 ` [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus Dmitry Baryshkov
` (7 more replies)
0 siblings, 8 replies; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-25 15:32 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold, Bryan O'Donoghue, Konrad Dybcio
In order to enable wider testing of the Iris driver on the HFI Gen1
platforms enable support for Qualcomm SM8350 and SC8280XP platforms.
The driver was very lightly tested on SC8280XP and (due to the lack of
the hw) not tested on SM8350.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Changes in v3:
- Add missing header, sorry.
- Link to v2: https://lore.kernel.org/r/20260125-iris-sc8280xp-v2-0-552cdc3ea691@oss.qualcomm.com
Changes in v2:
- Added missing chunk, including sm8350-videocc.h, lost in rebases.
- Link to v1: https://lore.kernel.org/r/20260125-iris-sc8280xp-v1-0-2c5e69fae76b@oss.qualcomm.com
---
Dmitry Baryshkov (4):
media: iris: introduce SM8350 and SC8280XP support
arm64: dts: qcom: sc8280xp: sort reserved memory regions
arm64: dts: qcom: sm8350: add Venus device
arm64: dts: qcom: sm8350-hdk: enable Venus core
Konrad Dybcio (3):
media: dt-bindings: Document SC8280XP/SM8350 Venus
arm64: dts: qcom: sc8280xp: Add Venus
arm64: dts: qcom: sc8280xp-x13s: Enable Venus
.../bindings/media/qcom,sm8350-venus.yaml | 113 +++++++++++++++++++++
.../dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 6 ++
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 93 ++++++++++++++++-
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 4 +
arch/arm64/boot/dts/qcom/sm8350.dtsi | 73 +++++++++++++
drivers/media/platform/qcom/iris/Makefile | 5 +-
.../platform/qcom/iris/iris_platform_common.h | 2 +
.../media/platform/qcom/iris/iris_platform_gen1.c | 111 ++++++++++++++++++++
.../platform/qcom/iris/iris_platform_sm8350.h | 20 ++++
drivers/media/platform/qcom/iris/iris_probe.c | 10 ++
10 files changed, 431 insertions(+), 6 deletions(-)
---
base-commit: ca3a02fda4da8e2c1cb6baee5d72352e9e2cfaea
change-id: 20260120-iris-sc8280xp-85d13bc60536
Best regards,
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 38+ messages in thread
* [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-01-25 15:32 [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
@ 2026-01-25 15:32 ` Dmitry Baryshkov
2026-01-26 10:00 ` Konrad Dybcio
` (4 more replies)
2026-01-25 15:32 ` [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support Dmitry Baryshkov
` (6 subsequent siblings)
7 siblings, 5 replies; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-25 15:32 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold, Bryan O'Donoghue
From: Konrad Dybcio <konradybcio@kernel.org>
Both of these SoCs implement an IRIS2 block, with SC8280XP being able
to clock it a bit higher and with SM8350 having 4 VPP pipes, while
SC8280XP having just 2.
Document Iris2 cores found on these SoCs.
Signed-off-by: Konrad Dybcio <konradybcio@kernel.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
[ bod: dropped dts video-encoder/video-decoder ]
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
[db: dropped status, dropped extra LLCC interconnect]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
.../bindings/media/qcom,sm8350-venus.yaml | 113 +++++++++++++++++++++
1 file changed, 113 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
new file mode 100644
index 000000000000..d78bdc08d830
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
@@ -0,0 +1,113 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/qcom,sm8350-venus.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SM8350 Venus video encode and decode accelerators
+
+maintainers:
+ - Konrad Dybcio <konradybcio@kernel.org>
+
+description: |
+ The Venus Iris2 IP is a video encode and decode accelerator present
+ on Qualcomm platforms
+
+allOf:
+ - $ref: qcom,venus-common.yaml#
+
+properties:
+ compatible:
+ enum:
+ - qcom,sc8280xp-venus
+ - qcom,sm8350-venus
+
+ clocks:
+ maxItems: 3
+
+ clock-names:
+ items:
+ - const: iface
+ - const: core
+ - const: vcodec0_core
+
+ resets:
+ maxItems: 1
+
+ reset-names:
+ items:
+ - const: core
+
+ power-domains:
+ maxItems: 3
+
+ power-domain-names:
+ items:
+ - const: venus
+ - const: vcodec0
+ - const: mx
+
+ interconnects:
+ maxItems: 2
+
+ interconnect-names:
+ items:
+ - const: cpu-cfg
+ - const: video-mem
+
+ operating-points-v2: true
+ opp-table:
+ type: object
+
+ iommus:
+ maxItems: 1
+
+required:
+ - compatible
+ - power-domain-names
+ - iommus
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/clock/qcom,gcc-sm8350.h>
+ #include <dt-bindings/clock/qcom,sm8350-videocc.h>
+ #include <dt-bindings/interconnect/qcom,icc.h>
+ #include <dt-bindings/interconnect/qcom,sm8350.h>
+ #include <dt-bindings/power/qcom-rpmpd.h>
+
+ venus: video-codec@aa00000 {
+ compatible = "qcom,sm8350-venus";
+ reg = <0x0aa00000 0x100000>;
+ interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+
+ clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
+ <&videocc VIDEO_CC_MVS0C_CLK>,
+ <&videocc VIDEO_CC_MVS0_CLK>;
+ clock-names = "iface",
+ "core",
+ "vcodec0_core";
+
+ resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>;
+ reset-names = "core";
+
+ power-domains = <&videocc MVS0C_GDSC>,
+ <&videocc MVS0_GDSC>,
+ <&rpmhpd SM8350_MX>;
+ power-domain-names = "venus",
+ "vcodec0",
+ "mx";
+
+ 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_P0 QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "cpu-cfg",
+ "video-mem";
+
+ operating-points-v2 = <&venus_opp_table>;
+ iommus = <&apps_smmu 0x2100 0x400>;
+ memory-region = <&pil_video_mem>;
+ };
--
2.47.3
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-01-25 15:32 [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
2026-01-25 15:32 ` [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus Dmitry Baryshkov
@ 2026-01-25 15:32 ` Dmitry Baryshkov
2026-01-26 9:50 ` Konrad Dybcio
` (2 more replies)
2026-01-25 15:33 ` [PATCH v3 3/7] arm64: dts: qcom: sc8280xp: sort reserved memory regions Dmitry Baryshkov
` (5 subsequent siblings)
7 siblings, 3 replies; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-25 15:32 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold
SM8350 and SC8280XP have an updated version of the Iris2 core also
present on the SM8250 and SC7280 platforms. Add necessary platform data
to utilize the core on those two platforms.
The iris_platform_gen1.c is now compiled unconditionally, even if Venus
driver is enabled, but SM8250 and SC7280 are still disabled in
iris_dt_match.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
drivers/media/platform/qcom/iris/Makefile | 5 +-
.../platform/qcom/iris/iris_platform_common.h | 2 +
.../media/platform/qcom/iris/iris_platform_gen1.c | 111 +++++++++++++++++++++
.../platform/qcom/iris/iris_platform_sm8350.h | 20 ++++
drivers/media/platform/qcom/iris/iris_probe.c | 10 ++
5 files changed, 144 insertions(+), 4 deletions(-)
diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/platform/qcom/iris/Makefile
index 2abbd3aeb4af..2fde45f81727 100644
--- a/drivers/media/platform/qcom/iris/Makefile
+++ b/drivers/media/platform/qcom/iris/Makefile
@@ -10,6 +10,7 @@ qcom-iris-objs += iris_buffer.o \
iris_hfi_gen2_packet.o \
iris_hfi_gen2_response.o \
iris_hfi_queue.o \
+ iris_platform_gen1.o \
iris_platform_gen2.o \
iris_power.o \
iris_probe.o \
@@ -26,8 +27,4 @@ qcom-iris-objs += iris_buffer.o \
iris_vpu_buffer.o \
iris_vpu_common.o \
-ifeq ($(CONFIG_VIDEO_QCOM_VENUS),)
-qcom-iris-objs += iris_platform_gen1.o
-endif
-
obj-$(CONFIG_VIDEO_QCOM_IRIS) += qcom-iris.o
diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
index 5a489917580e..49dba0f50988 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_common.h
+++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
@@ -43,7 +43,9 @@ enum pipe_type {
extern const struct iris_platform_data qcs8300_data;
extern const struct iris_platform_data sc7280_data;
+extern const struct iris_platform_data sc8280xp_data;
extern const struct iris_platform_data sm8250_data;
+extern const struct iris_platform_data sm8350_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;
diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen1.c b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
index df8e6bf9430e..c99ff4d4644d 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_gen1.c
+++ b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
@@ -14,6 +14,7 @@
#include "iris_instance.h"
#include "iris_platform_sc7280.h"
+#include "iris_platform_sm8350.h"
#define BITRATE_MIN 32000
#define BITRATE_MAX 160000000
@@ -392,6 +393,61 @@ const struct iris_platform_data sm8250_data = {
.enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
};
+const struct iris_platform_data sm8350_data = {
+ .get_instance = iris_hfi_gen1_get_instance,
+ .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
+ .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
+ .get_vpu_buffer_size = iris_vpu_buf_size,
+ .vpu_ops = &iris_vpu2_ops,
+ .set_preset_registers = iris_set_sm8350_preset_registers,
+ .icc_tbl = sm8250_icc_table,
+ .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
+ .clk_rst_tbl = sm8350_clk_reset_table,
+ .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
+ .bw_tbl_dec = sm8250_bw_table_dec,
+ .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
+ .pmdomain_tbl = sm8250_pmdomain_table,
+ .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
+ .opp_pd_tbl = sm8250_opp_pd_table,
+ .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
+ .clk_tbl = sm8250_clk_table,
+ .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
+ .opp_clk_tbl = sm8250_opp_clk_table,
+ /* Upper bound of DMA address range */
+ .dma_mask = 0xe0000000 - 1,
+ .fwname = "qcom/vpu/vpu20_p4.mbn",
+ .pas_id = IRIS_PAS_ID,
+ .inst_iris_fmts = platform_fmts_sm8250_dec,
+ .inst_iris_fmts_size = ARRAY_SIZE(platform_fmts_sm8250_dec),
+ .inst_caps = &platform_inst_cap_sm8250,
+ .inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
+ .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
+ .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
+ .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
+ .tz_cp_config_data = tz_cp_config_sm8250,
+ .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
+ .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
+ .num_vpp_pipe = 4,
+ .max_session_count = 16,
+ .max_core_mbpf = NUM_MBS_8K,
+ .max_core_mbps = ((7680 * 4320) / 256) * 60,
+ .dec_input_config_params_default =
+ sm8250_vdec_input_config_param_default,
+ .dec_input_config_params_default_size =
+ ARRAY_SIZE(sm8250_vdec_input_config_param_default),
+ .enc_input_config_params = sm8250_venc_input_config_param,
+ .enc_input_config_params_size =
+ ARRAY_SIZE(sm8250_venc_input_config_param),
+
+ .dec_ip_int_buf_tbl = sm8250_dec_ip_int_buf_tbl,
+ .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl),
+ .dec_op_int_buf_tbl = sm8250_dec_op_int_buf_tbl,
+ .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_op_int_buf_tbl),
+
+ .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
+ .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
+};
+
const struct iris_platform_data sc7280_data = {
.get_instance = iris_hfi_gen1_get_instance,
.init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
@@ -446,3 +502,58 @@ const struct iris_platform_data sc7280_data = {
.enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
.enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
};
+
+const struct iris_platform_data sc8280xp_data = {
+ .get_instance = iris_hfi_gen1_get_instance,
+ .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
+ .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
+ .get_vpu_buffer_size = iris_vpu_buf_size,
+ .vpu_ops = &iris_vpu2_ops,
+ .set_preset_registers = iris_set_sm8350_preset_registers,
+ .icc_tbl = sm8250_icc_table,
+ .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
+ .clk_rst_tbl = sm8350_clk_reset_table,
+ .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
+ .bw_tbl_dec = sm8250_bw_table_dec,
+ .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
+ .pmdomain_tbl = sm8250_pmdomain_table,
+ .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
+ .opp_pd_tbl = sm8250_opp_pd_table,
+ .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
+ .clk_tbl = sm8250_clk_table,
+ .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
+ .opp_clk_tbl = sm8250_opp_clk_table,
+ /* Upper bound of DMA address range */
+ .dma_mask = 0xe0000000 - 1,
+ .fwname = "qcom/vpu/vpu20_p2.mbn",
+ .pas_id = IRIS_PAS_ID,
+ .inst_iris_fmts = platform_fmts_sm8250_dec,
+ .inst_iris_fmts_size = ARRAY_SIZE(platform_fmts_sm8250_dec),
+ .inst_caps = &platform_inst_cap_sm8250,
+ .inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
+ .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
+ .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
+ .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
+ .tz_cp_config_data = tz_cp_config_sm8250,
+ .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
+ .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
+ .num_vpp_pipe = 2,
+ .max_session_count = 16,
+ .max_core_mbpf = NUM_MBS_8K,
+ .max_core_mbps = ((7680 * 4320) / 256) * 60,
+ .dec_input_config_params_default =
+ sm8250_vdec_input_config_param_default,
+ .dec_input_config_params_default_size =
+ ARRAY_SIZE(sm8250_vdec_input_config_param_default),
+ .enc_input_config_params = sm8250_venc_input_config_param,
+ .enc_input_config_params_size =
+ ARRAY_SIZE(sm8250_venc_input_config_param),
+
+ .dec_ip_int_buf_tbl = sm8250_dec_ip_int_buf_tbl,
+ .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl),
+ .dec_op_int_buf_tbl = sm8250_dec_op_int_buf_tbl,
+ .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_op_int_buf_tbl),
+
+ .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
+ .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
+};
diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8350.h b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
new file mode 100644
index 000000000000..74cf5ea2359a
--- /dev/null
+++ b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef __IRIS_PLATFORM_SM8350_H__
+#define __IRIS_PLATFORM_SM8350_H__
+
+static void iris_set_sm8350_preset_registers(struct iris_core *core)
+{
+ u32 val;
+
+ val = readl(core->reg_base + 0xb0088);
+ val &= ~0x11;
+ writel(val, core->reg_base + 0xb0088);
+}
+
+static const char * const sm8350_clk_reset_table[] = { "core" };
+
+#endif
diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/platform/qcom/iris/iris_probe.c
index ddaacda523ec..10b00d9808d2 100644
--- a/drivers/media/platform/qcom/iris/iris_probe.c
+++ b/drivers/media/platform/qcom/iris/iris_probe.c
@@ -357,11 +357,21 @@ static const struct of_device_id iris_dt_match[] = {
.compatible = "qcom,sc7280-venus",
.data = &sc7280_data,
},
+#endif
+ {
+ .compatible = "qcom,sc8280xp-venus",
+ .data = &sc8280xp_data,
+ },
+#if (!IS_ENABLED(CONFIG_VIDEO_QCOM_VENUS))
{
.compatible = "qcom,sm8250-venus",
.data = &sm8250_data,
},
#endif
+ {
+ .compatible = "qcom,sm8350-venus",
+ .data = &sm8350_data,
+ },
{
.compatible = "qcom,sm8550-iris",
.data = &sm8550_data,
--
2.47.3
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v3 3/7] arm64: dts: qcom: sc8280xp: sort reserved memory regions
2026-01-25 15:32 [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
2026-01-25 15:32 ` [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus Dmitry Baryshkov
2026-01-25 15:32 ` [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support Dmitry Baryshkov
@ 2026-01-25 15:33 ` Dmitry Baryshkov
2026-01-26 9:51 ` Konrad Dybcio
2026-01-25 15:33 ` [PATCH v3 4/7] arm64: dts: qcom: sc8280xp: Add Venus Dmitry Baryshkov
` (4 subsequent siblings)
7 siblings, 1 reply; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-25 15:33 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold
Move memory region reserved for the GPU to its proper place in DT.
Fixes: 6e9612ced0c9 ("arm64: dts: qcom: sc8280xp: create common zap-shader node")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
index 706eb1309d3f..41c57e7dc433 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
@@ -691,11 +691,6 @@ reserved-region@85b00000 {
no-map;
};
- pil_gpu_mem: gpu-mem@8bf00000 {
- reg = <0 0x8bf00000 0 0x2000>;
- no-map;
- };
-
pil_adsp_mem: adsp-region@86c00000 {
reg = <0 0x86c00000 0 0x2000000>;
no-map;
@@ -711,6 +706,11 @@ pil_nsp0_mem: cdsp0-region@8a100000 {
no-map;
};
+ pil_gpu_mem: gpu-mem@8bf00000 {
+ reg = <0 0x8bf00000 0 0x2000>;
+ no-map;
+ };
+
pil_nsp1_mem: cdsp1-region@8c600000 {
reg = <0 0x8c600000 0 0x1e00000>;
no-map;
--
2.47.3
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v3 4/7] arm64: dts: qcom: sc8280xp: Add Venus
2026-01-25 15:32 [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
` (2 preceding siblings ...)
2026-01-25 15:33 ` [PATCH v3 3/7] arm64: dts: qcom: sc8280xp: sort reserved memory regions Dmitry Baryshkov
@ 2026-01-25 15:33 ` Dmitry Baryshkov
2026-01-26 10:00 ` Konrad Dybcio
2026-01-30 13:09 ` Dikshita Agarwal
2026-01-25 15:33 ` [PATCH v3 5/7] arm64: dts: qcom: sc8280xp-x13s: Enable Venus Dmitry Baryshkov
` (3 subsequent siblings)
7 siblings, 2 replies; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-25 15:33 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold, Bryan O'Donoghue, Konrad Dybcio
From: Konrad Dybcio <konradybcio@kernel.org>
Add the required nodes to enable Venus on sc8280xp.
[ bod: added interconnect tags ]
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
[ johan: use sm8350 videocc defines ]
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
[ bod: dropped video encoder/decoder declarations ]
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
[ db: dropped llcc icc, switched to sc8280xp compat, added more freqs ]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 89 ++++++++++++++++++++++++++++++++++
1 file changed, 89 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
index 41c57e7dc433..66a65ae50f00 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
@@ -10,7 +10,9 @@
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/clock/qcom,sc8280xp-camcc.h>
#include <dt-bindings/clock/qcom,sc8280xp-lpasscc.h>
+#include <dt-bindings/clock/qcom,sm8350-videocc.h>
#include <dt-bindings/dma/qcom-gpi.h>
+#include <dt-bindings/interconnect/qcom,icc.h>
#include <dt-bindings/interconnect/qcom,osm-l3.h>
#include <dt-bindings/interconnect/qcom,sc8280xp.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
@@ -691,6 +693,11 @@ reserved-region@85b00000 {
no-map;
};
+ pil_video_mem: pil_video_region@86700000 {
+ reg = <0 0x86700000 0 0x500000>;
+ no-map;
+ };
+
pil_adsp_mem: adsp-region@86c00000 {
reg = <0 0x86c00000 0 0x2000000>;
no-map;
@@ -4181,6 +4188,88 @@ usb_1_dwc3_ss: endpoint {
};
};
+ venus: video-codec@aa00000 {
+ compatible = "qcom,sc8280xp-venus";
+ reg = <0 0x0aa00000 0 0x100000>;
+ interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+
+ clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
+ <&videocc VIDEO_CC_MVS0C_CLK>,
+ <&videocc VIDEO_CC_MVS0_CLK>;
+ clock-names = "iface",
+ "core",
+ "vcodec0_core";
+ power-domains = <&videocc MVS0C_GDSC>,
+ <&videocc MVS0_GDSC>,
+ <&rpmhpd SC8280XP_MX>;
+ power-domain-names = "venus",
+ "vcodec0",
+ "mx";
+
+ resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>;
+ reset-names = "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_P0 QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "cpu-cfg",
+ "video-mem";
+
+ operating-points-v2 = <&venus_opp_table>;
+ iommus = <&apps_smmu 0x2e00 0x400>;
+ memory-region = <&pil_video_mem>;
+
+ status = "disabled";
+
+ venus_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-720000000 {
+ opp-hz = /bits/ 64 <720000000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ };
+
+ opp-1014000000 {
+ opp-hz = /bits/ 64 <1014000000>;
+ required-opps = <&rpmhpd_opp_svs>;
+ };
+
+ opp-1098000000 {
+ opp-hz = /bits/ 64 <1098000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ };
+
+ opp-1332000000 {
+ opp-hz = /bits/ 64 <1332000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ };
+
+ opp-1599000000 {
+ opp-hz = /bits/ 64 <1599000000>;
+ required-opps = <&rpmhpd_opp_turbo>;
+ };
+
+ opp-1680000000 {
+ opp-hz = /bits/ 64 <1680000000>;
+ required-opps = <&rpmhpd_opp_turbo_l1>;
+ };
+ };
+ };
+
+ videocc: clock-controller@abf0000 {
+ compatible = "qcom,sc8280xp-videocc";
+ reg = <0 0x0abf0000 0 0x10000>;
+ clocks = <&rpmhcc RPMH_CXO_CLK>,
+ <&rpmhcc RPMH_CXO_CLK_A>,
+ <&sleep_clk>;
+ power-domains = <&rpmhpd SC8280XP_MMCX>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ #power-domain-cells = <1>;
+ };
+
cci0: cci@ac4a000 {
compatible = "qcom,sc8280xp-cci", "qcom,msm8996-cci";
reg = <0 0x0ac4a000 0 0x1000>;
--
2.47.3
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v3 5/7] arm64: dts: qcom: sc8280xp-x13s: Enable Venus
2026-01-25 15:32 [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
` (3 preceding siblings ...)
2026-01-25 15:33 ` [PATCH v3 4/7] arm64: dts: qcom: sc8280xp: Add Venus Dmitry Baryshkov
@ 2026-01-25 15:33 ` Dmitry Baryshkov
2026-01-25 15:33 ` [PATCH v3 6/7] arm64: dts: qcom: sm8350: add Venus device Dmitry Baryshkov
` (2 subsequent siblings)
7 siblings, 0 replies; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-25 15:33 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold, Bryan O'Donoghue, Konrad Dybcio
From: Konrad Dybcio <konradybcio@kernel.org>
Enable Venus and point the driver to the correct firmware file.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
index d84ca010ab9d..62f4593958a8 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
@@ -1474,6 +1474,12 @@ &vamacro {
status = "okay";
};
+&venus {
+ firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcvss8280.mbn";
+
+ status = "okay";
+};
+
&wsamacro {
status = "okay";
};
--
2.47.3
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v3 6/7] arm64: dts: qcom: sm8350: add Venus device
2026-01-25 15:32 [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
` (4 preceding siblings ...)
2026-01-25 15:33 ` [PATCH v3 5/7] arm64: dts: qcom: sc8280xp-x13s: Enable Venus Dmitry Baryshkov
@ 2026-01-25 15:33 ` Dmitry Baryshkov
2026-01-25 15:33 ` [PATCH v3 7/7] arm64: dts: qcom: sm8350-hdk: enable Venus core Dmitry Baryshkov
2026-01-30 12:14 ` [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dikshita Agarwal
7 siblings, 0 replies; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-25 15:33 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold
Add Venus and video clock controller devices, describing the Iris2 core
present on this platform.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sm8350.dtsi | 73 ++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8350.dtsi b/arch/arm64/boot/dts/qcom/sm8350.dtsi
index 5c8fe213f5e4..7aa43e3a274f 100644
--- a/arch/arm64/boot/dts/qcom/sm8350.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8350.dtsi
@@ -10,6 +10,7 @@
#include <dt-bindings/clock/qcom,gcc-sm8350.h>
#include <dt-bindings/clock/qcom,gpucc-sm8350.h>
#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,sm8350-videocc.h>
#include <dt-bindings/dma/qcom-gpi.h>
#include <dt-bindings/firmware/qcom,scm.h>
#include <dt-bindings/gpio/gpio.h>
@@ -2745,6 +2746,78 @@ usb_2_dwc3: usb@a800000 {
};
};
+ venus: video-codec@aa00000 {
+ compatible = "qcom,sm8350-venus";
+ reg = <0 0x0aa00000 0 0x100000>;
+ interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+
+ clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
+ <&videocc VIDEO_CC_MVS0C_CLK>,
+ <&videocc VIDEO_CC_MVS0_CLK>;
+ clock-names = "iface",
+ "core",
+ "vcodec0_core";
+ power-domains = <&videocc MVS0C_GDSC>,
+ <&videocc MVS0_GDSC>,
+ <&rpmhpd RPMHPD_MX>;
+ power-domain-names = "venus",
+ "vcodec0",
+ "mx";
+
+ resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>;
+ reset-names = "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_P0 QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "cpu-cfg",
+ "video-mem";
+
+ operating-points-v2 = <&venus_opp_table>;
+ iommus = <&apps_smmu 0x2100 0x400>;
+ memory-region = <&pil_video_mem>;
+
+ status = "disabled";
+
+ venus_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-720000000 {
+ opp-hz = /bits/ 64 <720000000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ };
+
+ opp-1014000000 {
+ opp-hz = /bits/ 64 <1014000000>;
+ required-opps = <&rpmhpd_opp_svs>;
+ };
+
+ opp-1098000000 {
+ opp-hz = /bits/ 64 <1098000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ };
+
+ opp-1332000000 {
+ opp-hz = /bits/ 64 <1332000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ };
+ };
+ };
+
+ videocc: clock-controller@abf0000 {
+ compatible = "qcom,sm8350-videocc";
+ reg = <0 0x0abf0000 0 0x10000>;
+ clocks = <&rpmhcc RPMH_CXO_CLK>,
+ <&rpmhcc RPMH_CXO_CLK_A>,
+ <&sleep_clk>;
+ power-domains = <&rpmhpd RPMHPD_MMCX>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ #power-domain-cells = <1>;
+ };
+
mdss: display-subsystem@ae00000 {
compatible = "qcom,sm8350-mdss";
reg = <0 0x0ae00000 0 0x1000>;
--
2.47.3
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v3 7/7] arm64: dts: qcom: sm8350-hdk: enable Venus core
2026-01-25 15:32 [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
` (5 preceding siblings ...)
2026-01-25 15:33 ` [PATCH v3 6/7] arm64: dts: qcom: sm8350: add Venus device Dmitry Baryshkov
@ 2026-01-25 15:33 ` Dmitry Baryshkov
2026-01-30 13:07 ` Dikshita Agarwal
2026-01-30 12:14 ` [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dikshita Agarwal
7 siblings, 1 reply; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-25 15:33 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold
Enable video en/decoder on the SM8350 HDK board. There is no need to
specify the firmware as the driver will use the default one, provided by
the linux-firmware.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
index 5f975d009465..79f024fd47f9 100644
--- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
@@ -894,6 +894,10 @@ &usb_2_qmpphy {
vdda-pll-supply = <&vreg_l5b_0p88>;
};
+&venus {
+ status = "okay";
+};
+
/* PINCTRL - additions to nodes defined in sm8350.dtsi */
&tlmm {
--
2.47.3
^ permalink raw reply related [flat|nested] 38+ messages in thread
* Re: [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-01-25 15:32 ` [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support Dmitry Baryshkov
@ 2026-01-26 9:50 ` Konrad Dybcio
2026-01-26 10:55 ` Dmitry Baryshkov
2026-01-30 13:16 ` Dikshita Agarwal
2026-02-02 15:28 ` Bryan O'Donoghue
2 siblings, 1 reply; 38+ messages in thread
From: Konrad Dybcio @ 2026-01-26 9:50 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Abhinav Kumar,
Bjorn Andersson, David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Johan Hovold
On 1/25/26 4:32 PM, Dmitry Baryshkov wrote:
> SM8350 and SC8280XP have an updated version of the Iris2 core also
> present on the SM8250 and SC7280 platforms. Add necessary platform data
> to utilize the core on those two platforms.
>
> The iris_platform_gen1.c is now compiled unconditionally, even if Venus
> driver is enabled, but SM8250 and SC7280 are still disabled in
> iris_dt_match.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
[...]
> +static void iris_set_sm8350_preset_registers(struct iris_core *core)
> +{
> + u32 val;
> +
> + val = readl(core->reg_base + 0xb0088);
> + val &= ~0x11;
> + writel(val, core->reg_base + 0xb0088);
Can we "open-source" what this write does?
Konrad
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 3/7] arm64: dts: qcom: sc8280xp: sort reserved memory regions
2026-01-25 15:33 ` [PATCH v3 3/7] arm64: dts: qcom: sc8280xp: sort reserved memory regions Dmitry Baryshkov
@ 2026-01-26 9:51 ` Konrad Dybcio
0 siblings, 0 replies; 38+ messages in thread
From: Konrad Dybcio @ 2026-01-26 9:51 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Abhinav Kumar,
Bjorn Andersson, David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Johan Hovold
On 1/25/26 4:33 PM, Dmitry Baryshkov wrote:
> Move memory region reserved for the GPU to its proper place in DT.
>
> Fixes: 6e9612ced0c9 ("arm64: dts: qcom: sc8280xp: create common zap-shader node")
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 4/7] arm64: dts: qcom: sc8280xp: Add Venus
2026-01-25 15:33 ` [PATCH v3 4/7] arm64: dts: qcom: sc8280xp: Add Venus Dmitry Baryshkov
@ 2026-01-26 10:00 ` Konrad Dybcio
2026-01-26 10:47 ` Dmitry Baryshkov
2026-01-30 13:09 ` Dikshita Agarwal
1 sibling, 1 reply; 38+ messages in thread
From: Konrad Dybcio @ 2026-01-26 10:00 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Abhinav Kumar,
Bjorn Andersson, David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Johan Hovold, Bryan O'Donoghue
On 1/25/26 4:33 PM, Dmitry Baryshkov wrote:
> From: Konrad Dybcio <konradybcio@kernel.org>
>
> Add the required nodes to enable Venus on sc8280xp.
>
> [ bod: added interconnect tags ]
>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> [ johan: use sm8350 videocc defines ]
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> [ bod: dropped video encoder/decoder declarations ]
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> [ db: dropped llcc icc, switched to sc8280xp compat, added more freqs ]
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
[...]
> + venus_opp_table: opp-table {
> + compatible = "operating-points-v2";
> +
> + opp-720000000 {
> + opp-hz = /bits/ 64 <720000000>;
You need to div3 all of these, otherwise this LOW_SVS OPP
will actually apply a more-than-TURBO_L1-requiring frequency..
[...]
> + videocc: clock-controller@abf0000 {
> + compatible = "qcom,sc8280xp-videocc";
> + reg = <0 0x0abf0000 0 0x10000>;
> + clocks = <&rpmhcc RPMH_CXO_CLK>,
> + <&rpmhcc RPMH_CXO_CLK_A>,
> + <&sleep_clk>;
> + power-domains = <&rpmhpd SC8280XP_MMCX>;
> + required-opps = <&rpmhpd_opp_low_svs>;
AFAICS the PLLs will not turn on if *MX* is at < LOWSVS, but they still
need to be scaled 1:1 with MMCX as the freuqency rises, so you need to
wire up 2 power domains to the OPP table
PLL0 supplies core0 (iris) and PLL1 supplies core1 (CVP)
Konrad
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-01-25 15:32 ` [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus Dmitry Baryshkov
@ 2026-01-26 10:00 ` Konrad Dybcio
2026-01-26 10:20 ` Dmitry Baryshkov
2026-01-29 17:24 ` Rob Herring
` (3 subsequent siblings)
4 siblings, 1 reply; 38+ messages in thread
From: Konrad Dybcio @ 2026-01-26 10:00 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Dikshita Agarwal,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Abhinav Kumar,
Bjorn Andersson, David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Johan Hovold, Bryan O'Donoghue
On 1/25/26 4:32 PM, Dmitry Baryshkov wrote:
> From: Konrad Dybcio <konradybcio@kernel.org>
>
> Both of these SoCs implement an IRIS2 block, with SC8280XP being able
> to clock it a bit higher and with SM8350 having 4 VPP pipes, while
> SC8280XP having just 2.
>
> Document Iris2 cores found on these SoCs.
>
> Signed-off-by: Konrad Dybcio <konradybcio@kernel.org>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> [ bod: dropped dts video-encoder/video-decoder ]
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> [db: dropped status, dropped extra LLCC interconnect]
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
[...]
> +description: |
> + The Venus Iris2 IP is a video encode and decode accelerator present
> + on Qualcomm platforms
> +
> +allOf:
> + - $ref: qcom,venus-common.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,sc8280xp-venus
> + - qcom,sm8350-venus
FYI the hardware is actually named "Iris" starting with 8150/8180
Konrad
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-01-26 10:00 ` Konrad Dybcio
@ 2026-01-26 10:20 ` Dmitry Baryshkov
2026-01-30 12:09 ` Dikshita Agarwal
0 siblings, 1 reply; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-26 10:20 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg, linux-media, linux-arm-msm, devicetree,
linux-kernel, Johan Hovold, Bryan O'Donoghue
On Mon, Jan 26, 2026 at 11:00:56AM +0100, Konrad Dybcio wrote:
> On 1/25/26 4:32 PM, Dmitry Baryshkov wrote:
> > From: Konrad Dybcio <konradybcio@kernel.org>
> >
> > Both of these SoCs implement an IRIS2 block, with SC8280XP being able
> > to clock it a bit higher and with SM8350 having 4 VPP pipes, while
> > SC8280XP having just 2.
> >
> > Document Iris2 cores found on these SoCs.
> >
> > Signed-off-by: Konrad Dybcio <konradybcio@kernel.org>
> > Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> > [ bod: dropped dts video-encoder/video-decoder ]
> > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> > [db: dropped status, dropped extra LLCC interconnect]
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
>
> [...]
>
> > +description: |
> > + The Venus Iris2 IP is a video encode and decode accelerator present
> > + on Qualcomm platforms
> > +
> > +allOf:
> > + - $ref: qcom,venus-common.yaml#
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - qcom,sc8280xp-venus
> > + - qcom,sm8350-venus
>
> FYI the hardware is actually named "Iris" starting with 8150/8180
I'd prefer to continue using the name that existed in the earlier
patches and which has been used for other chips in the generation. If
maintainers insist, I'd switch to -iris for the next series.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 4/7] arm64: dts: qcom: sc8280xp: Add Venus
2026-01-26 10:00 ` Konrad Dybcio
@ 2026-01-26 10:47 ` Dmitry Baryshkov
2026-01-26 10:55 ` Konrad Dybcio
0 siblings, 1 reply; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-26 10:47 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg, linux-media, linux-arm-msm, devicetree,
linux-kernel, Johan Hovold, Bryan O'Donoghue
On Mon, Jan 26, 2026 at 11:00:25AM +0100, Konrad Dybcio wrote:
> On 1/25/26 4:33 PM, Dmitry Baryshkov wrote:
> > From: Konrad Dybcio <konradybcio@kernel.org>
> >
> > Add the required nodes to enable Venus on sc8280xp.
> >
> > [ bod: added interconnect tags ]
> >
> > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> > [ johan: use sm8350 videocc defines ]
> > Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> > [ bod: dropped video encoder/decoder declarations ]
> > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> > [ db: dropped llcc icc, switched to sc8280xp compat, added more freqs ]
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
>
> [...]
>
> > + venus_opp_table: opp-table {
> > + compatible = "operating-points-v2";
> > +
> > + opp-720000000 {
> > + opp-hz = /bits/ 64 <720000000>;
>
> You need to div3 all of these, otherwise this LOW_SVS OPP
> will actually apply a more-than-TURBO_L1-requiring frequency..
Hmm, is the OPP table for SM8250 then also incorrect?
I cross-checked SM8250 and Kodiak against, msm-4.19 and msm-5.4
correspondignly, the OPP tables are written in the same way.
>
> [...]
> > + videocc: clock-controller@abf0000 {
> > + compatible = "qcom,sc8280xp-videocc";
> > + reg = <0 0x0abf0000 0 0x10000>;
> > + clocks = <&rpmhcc RPMH_CXO_CLK>,
> > + <&rpmhcc RPMH_CXO_CLK_A>,
> > + <&sleep_clk>;
> > + power-domains = <&rpmhpd SC8280XP_MMCX>;
> > + required-opps = <&rpmhpd_opp_low_svs>;
>
> AFAICS the PLLs will not turn on if *MX* is at < LOWSVS, but they still
> need to be scaled 1:1 with MMCX as the freuqency rises, so you need to
> wire up 2 power domains to the OPP table
I don't see this being done for SM8250, should it also be fixed? On
SM8550 we indeed manage MMCX and MX together. Should SC7280 also scale
both CX and MX together?
>
> PLL0 supplies core0 (iris) and PLL1 supplies core1 (CVP)
--
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 4/7] arm64: dts: qcom: sc8280xp: Add Venus
2026-01-26 10:47 ` Dmitry Baryshkov
@ 2026-01-26 10:55 ` Konrad Dybcio
0 siblings, 0 replies; 38+ messages in thread
From: Konrad Dybcio @ 2026-01-26 10:55 UTC (permalink / raw)
To: Dmitry Baryshkov, Taniya Das, Jagadeesh Kona
Cc: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg, linux-media, linux-arm-msm, devicetree,
linux-kernel, Johan Hovold, Bryan O'Donoghue
On 1/26/26 11:47 AM, Dmitry Baryshkov wrote:
> On Mon, Jan 26, 2026 at 11:00:25AM +0100, Konrad Dybcio wrote:
>> On 1/25/26 4:33 PM, Dmitry Baryshkov wrote:
>>> From: Konrad Dybcio <konradybcio@kernel.org>
>>>
>>> Add the required nodes to enable Venus on sc8280xp.
>>>
>>> [ bod: added interconnect tags ]
>>>
>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>>> [ johan: use sm8350 videocc defines ]
>>> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
>>> [ bod: dropped video encoder/decoder declarations ]
>>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>> [ db: dropped llcc icc, switched to sc8280xp compat, added more freqs ]
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>> ---
>>
>> [...]
>>
>>> + venus_opp_table: opp-table {
>>> + compatible = "operating-points-v2";
>>> +
>>> + opp-720000000 {
>>> + opp-hz = /bits/ 64 <720000000>;
>>
>> You need to div3 all of these, otherwise this LOW_SVS OPP
>> will actually apply a more-than-TURBO_L1-requiring frequency..
>
> Hmm, is the OPP table for SM8250 then also incorrect?
The OPP-set clock is "vcodec0_core"
The DT references VIDEO_CC_MVS0_CLK, which is a branch-child of
video_cc_mvs0_div_clk_src, so that sounds like it makes sense..
And the frequency plan concurs that.
>
> I cross-checked SM8250 and Kodiak against, msm-4.19 and msm-5.4
> correspondignly, the OPP tables are written in the same way.
>
>>
>> [...]
>>> + videocc: clock-controller@abf0000 {
>>> + compatible = "qcom,sc8280xp-videocc";
>>> + reg = <0 0x0abf0000 0 0x10000>;
>>> + clocks = <&rpmhcc RPMH_CXO_CLK>,
>>> + <&rpmhcc RPMH_CXO_CLK_A>,
>>> + <&sleep_clk>;
>>> + power-domains = <&rpmhpd SC8280XP_MMCX>;
>>> + required-opps = <&rpmhpd_opp_low_svs>;
>>
>> AFAICS the PLLs will not turn on if *MX* is at < LOWSVS, but they still
>> need to be scaled 1:1 with MMCX as the freuqency rises, so you need to
>> wire up 2 power domains to the OPP table
>
> I don't see this being done for SM8250, should it also be fixed? On
> SM8550 we indeed manage MMCX and MX together. Should SC7280 also scale
> both CX and MX together?
8250 yes
On kodiak, the docs strangely say that it's *all* powered by CX, maybe
+Taniya or +Jagadeesh could confirm if that's right
Konrad
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-01-26 9:50 ` Konrad Dybcio
@ 2026-01-26 10:55 ` Dmitry Baryshkov
2026-01-30 13:20 ` Dikshita Agarwal
0 siblings, 1 reply; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-26 10:55 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg, linux-media, linux-arm-msm, devicetree,
linux-kernel, Johan Hovold
On Mon, Jan 26, 2026 at 10:50:56AM +0100, Konrad Dybcio wrote:
> On 1/25/26 4:32 PM, Dmitry Baryshkov wrote:
> > SM8350 and SC8280XP have an updated version of the Iris2 core also
> > present on the SM8250 and SC7280 platforms. Add necessary platform data
> > to utilize the core on those two platforms.
> >
> > The iris_platform_gen1.c is now compiled unconditionally, even if Venus
> > driver is enabled, but SM8250 and SC7280 are still disabled in
> > iris_dt_match.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
>
> [...]
>
> > +static void iris_set_sm8350_preset_registers(struct iris_core *core)
> > +{
> > + u32 val;
> > +
> > + val = readl(core->reg_base + 0xb0088);
> > + val &= ~0x11;
> > + writel(val, core->reg_base + 0xb0088);
>
> Can we "open-source" what this write does?
I'd leave this question to Vikash. Hopefully he can comment if I can
open these bits or not.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-01-25 15:32 ` [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus Dmitry Baryshkov
2026-01-26 10:00 ` Konrad Dybcio
@ 2026-01-29 17:24 ` Rob Herring
2026-01-30 12:29 ` Dikshita Agarwal
` (2 subsequent siblings)
4 siblings, 0 replies; 38+ messages in thread
From: Rob Herring @ 2026-01-29 17:24 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vikash Garodia, Dikshita Agarwal, Bryan O'Donoghue,
Mauro Carvalho Chehab, Krzysztof Kozlowski, Conor Dooley,
Konrad Dybcio, Abhinav Kumar, Bjorn Andersson, David Heidelberg,
linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold, Bryan O'Donoghue
On Sun, Jan 25, 2026 at 05:32:58PM +0200, Dmitry Baryshkov wrote:
> From: Konrad Dybcio <konradybcio@kernel.org>
>
> Both of these SoCs implement an IRIS2 block, with SC8280XP being able
> to clock it a bit higher and with SM8350 having 4 VPP pipes, while
> SC8280XP having just 2.
>
> Document Iris2 cores found on these SoCs.
>
> Signed-off-by: Konrad Dybcio <konradybcio@kernel.org>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> [ bod: dropped dts video-encoder/video-decoder ]
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> [db: dropped status, dropped extra LLCC interconnect]
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> .../bindings/media/qcom,sm8350-venus.yaml | 113 +++++++++++++++++++++
> 1 file changed, 113 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
> new file mode 100644
> index 000000000000..d78bdc08d830
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
> @@ -0,0 +1,113 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/qcom,sm8350-venus.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm SM8350 Venus video encode and decode accelerators
> +
> +maintainers:
> + - Konrad Dybcio <konradybcio@kernel.org>
> +
> +description: |
Don't need '|'
> + The Venus Iris2 IP is a video encode and decode accelerator present
> + on Qualcomm platforms
> +
> +allOf:
> + - $ref: qcom,venus-common.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,sc8280xp-venus
> + - qcom,sm8350-venus
> +
> + clocks:
> + maxItems: 3
> +
> + clock-names:
> + items:
> + - const: iface
> + - const: core
> + - const: vcodec0_core
> +
> + resets:
> + maxItems: 1
> +
> + reset-names:
> + items:
> + - const: core
> +
> + power-domains:
> + maxItems: 3
> +
> + power-domain-names:
> + items:
> + - const: venus
> + - const: vcodec0
> + - const: mx
> +
> + interconnects:
> + maxItems: 2
> +
> + interconnect-names:
> + items:
> + - const: cpu-cfg
> + - const: video-mem
> +
> + operating-points-v2: true
blank line
With that,
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> + opp-table:
> + type: object
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-01-26 10:20 ` Dmitry Baryshkov
@ 2026-01-30 12:09 ` Dikshita Agarwal
0 siblings, 0 replies; 38+ messages in thread
From: Dikshita Agarwal @ 2026-01-30 12:09 UTC (permalink / raw)
To: Dmitry Baryshkov, Konrad Dybcio
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Johan Hovold,
Bryan O'Donoghue
On 1/26/2026 3:50 PM, Dmitry Baryshkov wrote:
> On Mon, Jan 26, 2026 at 11:00:56AM +0100, Konrad Dybcio wrote:
>> On 1/25/26 4:32 PM, Dmitry Baryshkov wrote:
>>> From: Konrad Dybcio <konradybcio@kernel.org>
>>>
>>> Both of these SoCs implement an IRIS2 block, with SC8280XP being able
>>> to clock it a bit higher and with SM8350 having 4 VPP pipes, while
>>> SC8280XP having just 2.
>>>
>>> Document Iris2 cores found on these SoCs.
>>>
>>> Signed-off-by: Konrad Dybcio <konradybcio@kernel.org>
>>> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
>>> [ bod: dropped dts video-encoder/video-decoder ]
>>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>> [db: dropped status, dropped extra LLCC interconnect]
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>> ---
>>
>> [...]
>>
>>> +description: |
>>> + The Venus Iris2 IP is a video encode and decode accelerator present
>>> + on Qualcomm platforms
>>> +
>>> +allOf:
>>> + - $ref: qcom,venus-common.yaml#
>>> +
>>> +properties:
>>> + compatible:
>>> + enum:
>>> + - qcom,sc8280xp-venus
>>> + - qcom,sm8350-venus
>>
>> FYI the hardware is actually named "Iris" starting with 8150/8180
>
> I'd prefer to continue using the name that existed in the earlier
> patches and which has been used for other chips in the generation. If
> maintainers insist, I'd switch to -iris for the next series.
>
yeah, pls rename to iris, that makes more sense.
Thanks,
Dikshita
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support
2026-01-25 15:32 [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
` (6 preceding siblings ...)
2026-01-25 15:33 ` [PATCH v3 7/7] arm64: dts: qcom: sm8350-hdk: enable Venus core Dmitry Baryshkov
@ 2026-01-30 12:14 ` Dikshita Agarwal
7 siblings, 0 replies; 38+ messages in thread
From: Dikshita Agarwal @ 2026-01-30 12:14 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold, Bryan O'Donoghue
On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
> In order to enable wider testing of the Iris driver on the HFI Gen1
> platforms enable support for Qualcomm SM8350 and SC8280XP platforms.
>
> The driver was very lightly tested on SC8280XP and (due to the lack of
> the hw) not tested on SM8350.
Could you pls add v4l2-compliance and fluster results?
Thanks,
Dikshita
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-01-25 15:32 ` [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus Dmitry Baryshkov
2026-01-26 10:00 ` Konrad Dybcio
2026-01-29 17:24 ` Rob Herring
@ 2026-01-30 12:29 ` Dikshita Agarwal
2026-01-31 7:33 ` Dmitry Baryshkov
2026-01-30 12:49 ` Dikshita Agarwal
2026-02-02 15:25 ` Bryan O'Donoghue
4 siblings, 1 reply; 38+ messages in thread
From: Dikshita Agarwal @ 2026-01-30 12:29 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold, Bryan O'Donoghue
On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
> From: Konrad Dybcio <konradybcio@kernel.org>
>
> Both of these SoCs implement an IRIS2 block, with SC8280XP being able
> to clock it a bit higher and with SM8350 having 4 VPP pipes, while
> SC8280XP having just 2.
>
> Document Iris2 cores found on these SoCs.
>
> Signed-off-by: Konrad Dybcio <konradybcio@kernel.org>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> [ bod: dropped dts video-encoder/video-decoder ]
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> [db: dropped status, dropped extra LLCC interconnect]
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> .../bindings/media/qcom,sm8350-venus.yaml | 113 +++++++++++++++++++++
> 1 file changed, 113 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
> new file mode 100644
> index 000000000000..d78bdc08d830
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
> @@ -0,0 +1,113 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/qcom,sm8350-venus.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm SM8350 Venus video encode and decode accelerators
s/Venus/iris
> +
> +maintainers:
> + - Konrad Dybcio <konradybcio@kernel.org>
> +
> +description: |
> + The Venus Iris2 IP is a video encode and decode accelerator present
> + on Qualcomm platforms
> +
> +allOf:
> + - $ref: qcom,venus-common.yaml#
Pls remove the reference to venus-common.yaml and follow schema of
sm8550-iris.yaml
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,sc8280xp-venus
> + - qcom,sm8350-venus
> +
> + clocks:
> + maxItems: 3
> +
> + clock-names:
> + items:
> + - const: iface
> + - const: core
> + - const: vcodec0_core
> +
> + resets:
> + maxItems: 1
> +
> + reset-names:
> + items:
> + - const: core
It should be named as bus not core
> +
> + power-domains:
> + maxItems: 3
> +
> + power-domain-names:
> + items:
> + - const: venus
> + - const: vcodec0
> + - const: mx
> +
> + interconnects:
> + maxItems: 2
> +
> + interconnect-names:
> + items:
> + - const: cpu-cfg
> + - const: video-mem
> +
> + operating-points-v2: true
> + opp-table:
> + type: object
> +
> + iommus:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - power-domain-names
> + - iommus
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/clock/qcom,gcc-sm8350.h>
> + #include <dt-bindings/clock/qcom,sm8350-videocc.h>
> + #include <dt-bindings/interconnect/qcom,icc.h>
> + #include <dt-bindings/interconnect/qcom,sm8350.h>
> + #include <dt-bindings/power/qcom-rpmpd.h>
> +
> + venus: video-codec@aa00000 {
> + compatible = "qcom,sm8350-venus";
> + reg = <0x0aa00000 0x100000>;
> + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
> +
> + clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
> + <&videocc VIDEO_CC_MVS0C_CLK>,
> + <&videocc VIDEO_CC_MVS0_CLK>;
> + clock-names = "iface",
> + "core",
> + "vcodec0_core";
> +
> + resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>;
> + reset-names = "core";
s/core/bus following the existing YAML
Thanks,
Dikshita
> +
> + power-domains = <&videocc MVS0C_GDSC>,
> + <&videocc MVS0_GDSC>,
> + <&rpmhpd SM8350_MX>;
> + power-domain-names = "venus",
> + "vcodec0",
> + "mx";
> +
> + 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_P0 QCOM_ICC_TAG_ALWAYS
> + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
> + interconnect-names = "cpu-cfg",
> + "video-mem";
> +
> + operating-points-v2 = <&venus_opp_table>;
> + iommus = <&apps_smmu 0x2100 0x400>;
> + memory-region = <&pil_video_mem>;
> + };
>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-01-25 15:32 ` [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus Dmitry Baryshkov
` (2 preceding siblings ...)
2026-01-30 12:29 ` Dikshita Agarwal
@ 2026-01-30 12:49 ` Dikshita Agarwal
2026-02-02 15:25 ` Bryan O'Donoghue
4 siblings, 0 replies; 38+ messages in thread
From: Dikshita Agarwal @ 2026-01-30 12:49 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold, Bryan O'Donoghue
On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
> From: Konrad Dybcio <konradybcio@kernel.org>
>
> Both of these SoCs implement an IRIS2 block, with SC8280XP being able
> to clock it a bit higher and with SM8350 having 4 VPP pipes, while
> SC8280XP having just 2.
SC8280XP is also 4 Pipe.
Thanks,
Dikshita
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 7/7] arm64: dts: qcom: sm8350-hdk: enable Venus core
2026-01-25 15:33 ` [PATCH v3 7/7] arm64: dts: qcom: sm8350-hdk: enable Venus core Dmitry Baryshkov
@ 2026-01-30 13:07 ` Dikshita Agarwal
2026-01-31 7:33 ` Dmitry Baryshkov
0 siblings, 1 reply; 38+ messages in thread
From: Dikshita Agarwal @ 2026-01-30 13:07 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold
On 1/25/2026 9:03 PM, Dmitry Baryshkov wrote:
> Enable video en/decoder on the SM8350 HDK board. There is no need to
> specify the firmware as the driver will use the default one, provided by
> the linux-firmware.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
> index 5f975d009465..79f024fd47f9 100644
> --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
> +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
> @@ -894,6 +894,10 @@ &usb_2_qmpphy {
> vdda-pll-supply = <&vreg_l5b_0p88>;
> };
>
> +&venus {
> + status = "okay";
> +};
This should be enabled only after proper testing on the SoC.
Thanks,
Dikshita
> +
> /* PINCTRL - additions to nodes defined in sm8350.dtsi */
>
> &tlmm {
>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 4/7] arm64: dts: qcom: sc8280xp: Add Venus
2026-01-25 15:33 ` [PATCH v3 4/7] arm64: dts: qcom: sc8280xp: Add Venus Dmitry Baryshkov
2026-01-26 10:00 ` Konrad Dybcio
@ 2026-01-30 13:09 ` Dikshita Agarwal
1 sibling, 0 replies; 38+ messages in thread
From: Dikshita Agarwal @ 2026-01-30 13:09 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold, Bryan O'Donoghue
On 1/25/2026 9:03 PM, Dmitry Baryshkov wrote:
> From: Konrad Dybcio <konradybcio@kernel.org>
>
> Add the required nodes to enable Venus on sc8280xp.
>
> [ bod: added interconnect tags ]
>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> [ johan: use sm8350 videocc defines ]
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> [ bod: dropped video encoder/decoder declarations ]
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> [ db: dropped llcc icc, switched to sc8280xp compat, added more freqs ]
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 89 ++++++++++++++++++++++++++++++++++
> 1 file changed, 89 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> index 41c57e7dc433..66a65ae50f00 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> @@ -10,7 +10,9 @@
> #include <dt-bindings/clock/qcom,rpmh.h>
> #include <dt-bindings/clock/qcom,sc8280xp-camcc.h>
> #include <dt-bindings/clock/qcom,sc8280xp-lpasscc.h>
> +#include <dt-bindings/clock/qcom,sm8350-videocc.h>
> #include <dt-bindings/dma/qcom-gpi.h>
> +#include <dt-bindings/interconnect/qcom,icc.h>
> #include <dt-bindings/interconnect/qcom,osm-l3.h>
> #include <dt-bindings/interconnect/qcom,sc8280xp.h>
> #include <dt-bindings/interrupt-controller/arm-gic.h>
> @@ -691,6 +693,11 @@ reserved-region@85b00000 {
> no-map;
> };
>
> + pil_video_mem: pil_video_region@86700000 {
> + reg = <0 0x86700000 0 0x500000>;
> + no-map;
> + };
> +
> pil_adsp_mem: adsp-region@86c00000 {
> reg = <0 0x86c00000 0 0x2000000>;
> no-map;
> @@ -4181,6 +4188,88 @@ usb_1_dwc3_ss: endpoint {
> };
> };
>
> + venus: video-codec@aa00000 {
Pls name this as iris instead of venus.
> + compatible = "qcom,sc8280xp-venus";
> + reg = <0 0x0aa00000 0 0x100000>;
> + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
> +
> + clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
> + <&videocc VIDEO_CC_MVS0C_CLK>,
> + <&videocc VIDEO_CC_MVS0_CLK>;
> + clock-names = "iface",
> + "core",
> + "vcodec0_core";
> + power-domains = <&videocc MVS0C_GDSC>,
> + <&videocc MVS0_GDSC>,
> + <&rpmhpd SC8280XP_MX>;
> + power-domain-names = "venus",
> + "vcodec0",
> + "mx";
> +
> + resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>;
> + reset-names = "core";
should be names as 'bus'
> +
> + 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_P0 QCOM_ICC_TAG_ALWAYS
> + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
> + interconnect-names = "cpu-cfg",
> + "video-mem";
> +
> + operating-points-v2 = <&venus_opp_table>;
s/venus_opp_table/iris_opp_table
> + iommus = <&apps_smmu 0x2e00 0x400>;
> + memory-region = <&pil_video_mem>;
> +
> + status = "disabled";
> +
> + venus_opp_table: opp-table {
> + compatible = "operating-points-v2";
Thanks,
Dikshita
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-01-25 15:32 ` [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support Dmitry Baryshkov
2026-01-26 9:50 ` Konrad Dybcio
@ 2026-01-30 13:16 ` Dikshita Agarwal
2026-01-31 7:28 ` Dmitry Baryshkov
2026-02-02 15:28 ` Bryan O'Donoghue
2 siblings, 1 reply; 38+ messages in thread
From: Dikshita Agarwal @ 2026-01-30 13:16 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold
On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
> SM8350 and SC8280XP have an updated version of the Iris2 core also
> present on the SM8250 and SC7280 platforms. Add necessary platform data
> to utilize the core on those two platforms.
>
> The iris_platform_gen1.c is now compiled unconditionally, even if Venus
> driver is enabled, but SM8250 and SC7280 are still disabled in
> iris_dt_match.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> drivers/media/platform/qcom/iris/Makefile | 5 +-
> .../platform/qcom/iris/iris_platform_common.h | 2 +
> .../media/platform/qcom/iris/iris_platform_gen1.c | 111 +++++++++++++++++++++
> .../platform/qcom/iris/iris_platform_sm8350.h | 20 ++++
> drivers/media/platform/qcom/iris/iris_probe.c | 10 ++
> 5 files changed, 144 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/platform/qcom/iris/Makefile
> index 2abbd3aeb4af..2fde45f81727 100644
> --- a/drivers/media/platform/qcom/iris/Makefile
> +++ b/drivers/media/platform/qcom/iris/Makefile
> @@ -10,6 +10,7 @@ qcom-iris-objs += iris_buffer.o \
> iris_hfi_gen2_packet.o \
> iris_hfi_gen2_response.o \
> iris_hfi_queue.o \
> + iris_platform_gen1.o \
> iris_platform_gen2.o \
> iris_power.o \
> iris_probe.o \
> @@ -26,8 +27,4 @@ qcom-iris-objs += iris_buffer.o \
> iris_vpu_buffer.o \
> iris_vpu_common.o \
>
> -ifeq ($(CONFIG_VIDEO_QCOM_VENUS),)
> -qcom-iris-objs += iris_platform_gen1.o
> -endif
> -
> obj-$(CONFIG_VIDEO_QCOM_IRIS) += qcom-iris.o
This change is not needed in this patch, pls remove.
> diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
> index 5a489917580e..49dba0f50988 100644
> --- a/drivers/media/platform/qcom/iris/iris_platform_common.h
> +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
> @@ -43,7 +43,9 @@ enum pipe_type {
>
> extern const struct iris_platform_data qcs8300_data;
> extern const struct iris_platform_data sc7280_data;
> +extern const struct iris_platform_data sc8280xp_data;
> extern const struct iris_platform_data sm8250_data;
> +extern const struct iris_platform_data sm8350_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;
> diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen1.c b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> index df8e6bf9430e..c99ff4d4644d 100644
> --- a/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> +++ b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> @@ -14,6 +14,7 @@
> #include "iris_instance.h"
>
> #include "iris_platform_sc7280.h"
> +#include "iris_platform_sm8350.h"
>
> #define BITRATE_MIN 32000
> #define BITRATE_MAX 160000000
> @@ -392,6 +393,61 @@ const struct iris_platform_data sm8250_data = {
> .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> };
>
> +const struct iris_platform_data sm8350_data = {
> + .get_instance = iris_hfi_gen1_get_instance,
> + .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
> + .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
> + .get_vpu_buffer_size = iris_vpu_buf_size,
> + .vpu_ops = &iris_vpu2_ops,
> + .set_preset_registers = iris_set_sm8350_preset_registers,
> + .icc_tbl = sm8250_icc_table,
> + .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
> + .clk_rst_tbl = sm8350_clk_reset_table,
> + .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
> + .bw_tbl_dec = sm8250_bw_table_dec,
> + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
> + .pmdomain_tbl = sm8250_pmdomain_table,
> + .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
> + .opp_pd_tbl = sm8250_opp_pd_table,
> + .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
> + .clk_tbl = sm8250_clk_table,
> + .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
> + .opp_clk_tbl = sm8250_opp_clk_table,
> + /* Upper bound of DMA address range */
> + .dma_mask = 0xe0000000 - 1,
> + .fwname = "qcom/vpu/vpu20_p4.mbn",
This firmware is not compatible with SM8350.
SM8350 firmware is not released to linux-firmware yet.
> + .pas_id = IRIS_PAS_ID,
> + .inst_iris_fmts = platform_fmts_sm8250_dec,
> + .inst_iris_fmts_size = ARRAY_SIZE(platform_fmts_sm8250_dec),
> + .inst_caps = &platform_inst_cap_sm8250,
> + .inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
> + .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
> + .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
> + .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
> + .tz_cp_config_data = tz_cp_config_sm8250,
> + .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
> + .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
> + .num_vpp_pipe = 4,
> + .max_session_count = 16,
> + .max_core_mbpf = NUM_MBS_8K,
> + .max_core_mbps = ((7680 * 4320) / 256) * 60,
> + .dec_input_config_params_default =
> + sm8250_vdec_input_config_param_default,
> + .dec_input_config_params_default_size =
> + ARRAY_SIZE(sm8250_vdec_input_config_param_default),
> + .enc_input_config_params = sm8250_venc_input_config_param,
> + .enc_input_config_params_size =
> + ARRAY_SIZE(sm8250_venc_input_config_param),
> +
> + .dec_ip_int_buf_tbl = sm8250_dec_ip_int_buf_tbl,
> + .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl),
> + .dec_op_int_buf_tbl = sm8250_dec_op_int_buf_tbl,
> + .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_op_int_buf_tbl),
> +
> + .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
> + .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> +};
> +
> const struct iris_platform_data sc7280_data = {
> .get_instance = iris_hfi_gen1_get_instance,
> .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
> @@ -446,3 +502,58 @@ const struct iris_platform_data sc7280_data = {
> .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
> .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> };
> +
> +const struct iris_platform_data sc8280xp_data = {
> + .get_instance = iris_hfi_gen1_get_instance,
> + .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
> + .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
> + .get_vpu_buffer_size = iris_vpu_buf_size,
> + .vpu_ops = &iris_vpu2_ops,
> + .set_preset_registers = iris_set_sm8350_preset_registers,
> + .icc_tbl = sm8250_icc_table,
> + .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
> + .clk_rst_tbl = sm8350_clk_reset_table,
> + .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
> + .bw_tbl_dec = sm8250_bw_table_dec,
> + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
> + .pmdomain_tbl = sm8250_pmdomain_table,
> + .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
> + .opp_pd_tbl = sm8250_opp_pd_table,
> + .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
> + .clk_tbl = sm8250_clk_table,
> + .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
> + .opp_clk_tbl = sm8250_opp_clk_table,
> + /* Upper bound of DMA address range */
> + .dma_mask = 0xe0000000 - 1,
> + .fwname = "qcom/vpu/vpu20_p2.mbn",
this firmware doesn't exist on linux-firmware.
> + .pas_id = IRIS_PAS_ID,
> + .inst_iris_fmts = platform_fmts_sm8250_dec,
> + .inst_iris_fmts_size = ARRAY_SIZE(platform_fmts_sm8250_dec),
> + .inst_caps = &platform_inst_cap_sm8250,
> + .inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
> + .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
> + .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
> + .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
> + .tz_cp_config_data = tz_cp_config_sm8250,
> + .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
> + .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
> + .num_vpp_pipe = 2,
sc8280xp is IRIS2 4 Pipe.
> + .max_session_count = 16,
> + .max_core_mbpf = NUM_MBS_8K,
> + .max_core_mbps = ((7680 * 4320) / 256) * 60,
> + .dec_input_config_params_default =
> + sm8250_vdec_input_config_param_default,
> + .dec_input_config_params_default_size =
> + ARRAY_SIZE(sm8250_vdec_input_config_param_default),
> + .enc_input_config_params = sm8250_venc_input_config_param,
> + .enc_input_config_params_size =
> + ARRAY_SIZE(sm8250_venc_input_config_param),
> +
> + .dec_ip_int_buf_tbl = sm8250_dec_ip_int_buf_tbl,
> + .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl),
> + .dec_op_int_buf_tbl = sm8250_dec_op_int_buf_tbl,
> + .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_op_int_buf_tbl),
> +
> + .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
> + .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> +};
> diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8350.h b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
> new file mode 100644
> index 000000000000..74cf5ea2359a
> --- /dev/null
> +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
> @@ -0,0 +1,20 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +#ifndef __IRIS_PLATFORM_SM8350_H__
> +#define __IRIS_PLATFORM_SM8350_H__
> +
> +static void iris_set_sm8350_preset_registers(struct iris_core *core)
> +{
> + u32 val;
> +
> + val = readl(core->reg_base + 0xb0088);
> + val &= ~0x11;
> + writel(val, core->reg_base + 0xb0088);
> +}
you can reuse this from SM8250. That would work.
Thanks,
Dikshita
> +
> +static const char * const sm8350_clk_reset_table[] = { "core" };
> +
> +#endif
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-01-26 10:55 ` Dmitry Baryshkov
@ 2026-01-30 13:20 ` Dikshita Agarwal
2026-01-31 7:04 ` Dmitry Baryshkov
0 siblings, 1 reply; 38+ messages in thread
From: Dikshita Agarwal @ 2026-01-30 13:20 UTC (permalink / raw)
To: Dmitry Baryshkov, Konrad Dybcio
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Johan Hovold
On 1/26/2026 4:25 PM, Dmitry Baryshkov wrote:
> On Mon, Jan 26, 2026 at 10:50:56AM +0100, Konrad Dybcio wrote:
>> On 1/25/26 4:32 PM, Dmitry Baryshkov wrote:
>>> SM8350 and SC8280XP have an updated version of the Iris2 core also
>>> present on the SM8250 and SC7280 platforms. Add necessary platform data
>>> to utilize the core on those two platforms.
>>>
>>> The iris_platform_gen1.c is now compiled unconditionally, even if Venus
>>> driver is enabled, but SM8250 and SC7280 are still disabled in
>>> iris_dt_match.
>>>
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>> ---
>>
>> [...]
>>
>>> +static void iris_set_sm8350_preset_registers(struct iris_core *core)
>>> +{
>>> + u32 val;
>>> +
>>> + val = readl(core->reg_base + 0xb0088);
>>> + val &= ~0x11;
>>> + writel(val, core->reg_base + 0xb0088);
>>
>> Can we "open-source" what this write does?
>
> I'd leave this question to Vikash. Hopefully he can comment if I can
> open these bits or not.
This register controls the clock halt states for several IRIS sub‑cores.
A bit value of 1 halts the clock, and 0 enables it.
During power‑on, we clear bits 0 and 4 to unhalt/enable the corresponding
core clocks.
Thanks,
Dikshita
>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-01-30 13:20 ` Dikshita Agarwal
@ 2026-01-31 7:04 ` Dmitry Baryshkov
0 siblings, 0 replies; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-31 7:04 UTC (permalink / raw)
To: Dikshita Agarwal
Cc: Konrad Dybcio, Vikash Garodia, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg, linux-media, linux-arm-msm, devicetree,
linux-kernel, Johan Hovold
On Fri, Jan 30, 2026 at 06:50:35PM +0530, Dikshita Agarwal wrote:
>
>
> On 1/26/2026 4:25 PM, Dmitry Baryshkov wrote:
> > On Mon, Jan 26, 2026 at 10:50:56AM +0100, Konrad Dybcio wrote:
> >> On 1/25/26 4:32 PM, Dmitry Baryshkov wrote:
> >>> SM8350 and SC8280XP have an updated version of the Iris2 core also
> >>> present on the SM8250 and SC7280 platforms. Add necessary platform data
> >>> to utilize the core on those two platforms.
> >>>
> >>> The iris_platform_gen1.c is now compiled unconditionally, even if Venus
> >>> driver is enabled, but SM8250 and SC7280 are still disabled in
> >>> iris_dt_match.
> >>>
> >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> >>> ---
> >>
> >> [...]
> >>
> >>> +static void iris_set_sm8350_preset_registers(struct iris_core *core)
> >>> +{
> >>> + u32 val;
> >>> +
> >>> + val = readl(core->reg_base + 0xb0088);
> >>> + val &= ~0x11;
> >>> + writel(val, core->reg_base + 0xb0088);
> >>
> >> Can we "open-source" what this write does?
> >
> > I'd leave this question to Vikash. Hopefully he can comment if I can
> > open these bits or not.
>
> This register controls the clock halt states for several IRIS sub‑cores.
> A bit value of 1 halts the clock, and 0 enables it.
> During power‑on, we clear bits 0 and 4 to unhalt/enable the corresponding
> core clocks.
I think, Konrad's question was if we can add a #define for the register
name and maybe fore the mask bits. If we can, I can make it a part of
the patchset (I don't think there should be an issue with the register
name).
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-01-30 13:16 ` Dikshita Agarwal
@ 2026-01-31 7:28 ` Dmitry Baryshkov
2026-02-05 9:10 ` Dikshita Agarwal
0 siblings, 1 reply; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-31 7:28 UTC (permalink / raw)
To: Dikshita Agarwal
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Johan Hovold
On Fri, Jan 30, 2026 at 06:46:04PM +0530, Dikshita Agarwal wrote:
>
>
> On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
> > SM8350 and SC8280XP have an updated version of the Iris2 core also
> > present on the SM8250 and SC7280 platforms. Add necessary platform data
> > to utilize the core on those two platforms.
> >
> > The iris_platform_gen1.c is now compiled unconditionally, even if Venus
> > driver is enabled, but SM8250 and SC7280 are still disabled in
> > iris_dt_match.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
> > drivers/media/platform/qcom/iris/Makefile | 5 +-
> > .../platform/qcom/iris/iris_platform_common.h | 2 +
> > .../media/platform/qcom/iris/iris_platform_gen1.c | 111 +++++++++++++++++++++
> > .../platform/qcom/iris/iris_platform_sm8350.h | 20 ++++
> > drivers/media/platform/qcom/iris/iris_probe.c | 10 ++
> > 5 files changed, 144 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/platform/qcom/iris/Makefile
> > index 2abbd3aeb4af..2fde45f81727 100644
> > --- a/drivers/media/platform/qcom/iris/Makefile
> > +++ b/drivers/media/platform/qcom/iris/Makefile
> > @@ -10,6 +10,7 @@ qcom-iris-objs += iris_buffer.o \
> > iris_hfi_gen2_packet.o \
> > iris_hfi_gen2_response.o \
> > iris_hfi_queue.o \
> > + iris_platform_gen1.o \
> > iris_platform_gen2.o \
> > iris_power.o \
> > iris_probe.o \
> > @@ -26,8 +27,4 @@ qcom-iris-objs += iris_buffer.o \
> > iris_vpu_buffer.o \
> > iris_vpu_common.o \
> >
> > -ifeq ($(CONFIG_VIDEO_QCOM_VENUS),)
> > -qcom-iris-objs += iris_platform_gen1.o
> > -endif
> > -
> > obj-$(CONFIG_VIDEO_QCOM_IRIS) += qcom-iris.o
>
> This change is not needed in this patch, pls remove.
It is necessary in this patch. We enable gen1 platforms which are not a
part of the venus->iris transition (they have never been supported by
the venus driver). As such, iris_platform_gen1.c now needs to be
compiled unconditionally.
>
> > diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
> > index 5a489917580e..49dba0f50988 100644
> > --- a/drivers/media/platform/qcom/iris/iris_platform_common.h
> > +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
> > @@ -43,7 +43,9 @@ enum pipe_type {
> >
> > extern const struct iris_platform_data qcs8300_data;
> > extern const struct iris_platform_data sc7280_data;
> > +extern const struct iris_platform_data sc8280xp_data;
> > extern const struct iris_platform_data sm8250_data;
> > +extern const struct iris_platform_data sm8350_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;
> > diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen1.c b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> > index df8e6bf9430e..c99ff4d4644d 100644
> > --- a/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> > +++ b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> > @@ -14,6 +14,7 @@
> > #include "iris_instance.h"
> >
> > #include "iris_platform_sc7280.h"
> > +#include "iris_platform_sm8350.h"
> >
> > #define BITRATE_MIN 32000
> > #define BITRATE_MAX 160000000
> > @@ -392,6 +393,61 @@ const struct iris_platform_data sm8250_data = {
> > .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> > };
> >
> > +const struct iris_platform_data sm8350_data = {
> > + .get_instance = iris_hfi_gen1_get_instance,
> > + .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
> > + .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
> > + .get_vpu_buffer_size = iris_vpu_buf_size,
> > + .vpu_ops = &iris_vpu2_ops,
> > + .set_preset_registers = iris_set_sm8350_preset_registers,
> > + .icc_tbl = sm8250_icc_table,
> > + .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
> > + .clk_rst_tbl = sm8350_clk_reset_table,
> > + .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
> > + .bw_tbl_dec = sm8250_bw_table_dec,
> > + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
> > + .pmdomain_tbl = sm8250_pmdomain_table,
> > + .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
> > + .opp_pd_tbl = sm8250_opp_pd_table,
> > + .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
> > + .clk_tbl = sm8250_clk_table,
> > + .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
> > + .opp_clk_tbl = sm8250_opp_clk_table,
> > + /* Upper bound of DMA address range */
> > + .dma_mask = 0xe0000000 - 1,
> > + .fwname = "qcom/vpu/vpu20_p4.mbn",
>
> This firmware is not compatible with SM8350.
> SM8350 firmware is not released to linux-firmware yet.
What would be the name for the firmware? The downstream uses vpu20_4v
here, so, I guess, in upstream we should be using vpu20_p4, but a newer
version?
>
> > + .pas_id = IRIS_PAS_ID,
> > + .inst_iris_fmts = platform_fmts_sm8250_dec,
> > + .inst_iris_fmts_size = ARRAY_SIZE(platform_fmts_sm8250_dec),
> > + .inst_caps = &platform_inst_cap_sm8250,
> > + .inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
> > + .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
> > + .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
> > + .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
> > + .tz_cp_config_data = tz_cp_config_sm8250,
> > + .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
> > + .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
> > + .num_vpp_pipe = 4,
> > + .max_session_count = 16,
> > + .max_core_mbpf = NUM_MBS_8K,
> > + .max_core_mbps = ((7680 * 4320) / 256) * 60,
> > + .dec_input_config_params_default =
> > + sm8250_vdec_input_config_param_default,
> > + .dec_input_config_params_default_size =
> > + ARRAY_SIZE(sm8250_vdec_input_config_param_default),
> > + .enc_input_config_params = sm8250_venc_input_config_param,
> > + .enc_input_config_params_size =
> > + ARRAY_SIZE(sm8250_venc_input_config_param),
> > +
> > + .dec_ip_int_buf_tbl = sm8250_dec_ip_int_buf_tbl,
> > + .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl),
> > + .dec_op_int_buf_tbl = sm8250_dec_op_int_buf_tbl,
> > + .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_op_int_buf_tbl),
> > +
> > + .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
> > + .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> > +};
> > +
> > const struct iris_platform_data sc7280_data = {
> > .get_instance = iris_hfi_gen1_get_instance,
> > .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
> > @@ -446,3 +502,58 @@ const struct iris_platform_data sc7280_data = {
> > .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
> > .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> > };
> > +
> > +const struct iris_platform_data sc8280xp_data = {
> > + .get_instance = iris_hfi_gen1_get_instance,
> > + .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
> > + .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
> > + .get_vpu_buffer_size = iris_vpu_buf_size,
> > + .vpu_ops = &iris_vpu2_ops,
> > + .set_preset_registers = iris_set_sm8350_preset_registers,
> > + .icc_tbl = sm8250_icc_table,
> > + .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
> > + .clk_rst_tbl = sm8350_clk_reset_table,
> > + .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
> > + .bw_tbl_dec = sm8250_bw_table_dec,
> > + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
> > + .pmdomain_tbl = sm8250_pmdomain_table,
> > + .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
> > + .opp_pd_tbl = sm8250_opp_pd_table,
> > + .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
> > + .clk_tbl = sm8250_clk_table,
> > + .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
> > + .opp_clk_tbl = sm8250_opp_clk_table,
> > + /* Upper bound of DMA address range */
> > + .dma_mask = 0xe0000000 - 1,
> > + .fwname = "qcom/vpu/vpu20_p2.mbn",
>
> this firmware doesn't exist on linux-firmware.
It was based on the assumption of having 2 pipes. If Iris here has 2
pipes, then probably we should still point to vpu20_p4.mbn?
>
> > + .pas_id = IRIS_PAS_ID,
> > + .inst_iris_fmts = platform_fmts_sm8250_dec,
> > + .inst_iris_fmts_size = ARRAY_SIZE(platform_fmts_sm8250_dec),
> > + .inst_caps = &platform_inst_cap_sm8250,
> > + .inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
> > + .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
> > + .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
> > + .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
> > + .tz_cp_config_data = tz_cp_config_sm8250,
> > + .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
> > + .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
> > + .num_vpp_pipe = 2,
>
> sc8280xp is IRIS2 4 Pipe.
Ack
>
> > + .max_session_count = 16,
> > + .max_core_mbpf = NUM_MBS_8K,
> > + .max_core_mbps = ((7680 * 4320) / 256) * 60,
> > + .dec_input_config_params_default =
> > + sm8250_vdec_input_config_param_default,
> > + .dec_input_config_params_default_size =
> > + ARRAY_SIZE(sm8250_vdec_input_config_param_default),
> > + .enc_input_config_params = sm8250_venc_input_config_param,
> > + .enc_input_config_params_size =
> > + ARRAY_SIZE(sm8250_venc_input_config_param),
> > +
> > + .dec_ip_int_buf_tbl = sm8250_dec_ip_int_buf_tbl,
> > + .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl),
> > + .dec_op_int_buf_tbl = sm8250_dec_op_int_buf_tbl,
> > + .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_op_int_buf_tbl),
> > +
> > + .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
> > + .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> > +};
> > diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8350.h b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
> > new file mode 100644
> > index 000000000000..74cf5ea2359a
> > --- /dev/null
> > +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
> > @@ -0,0 +1,20 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> > + */
> > +
> > +#ifndef __IRIS_PLATFORM_SM8350_H__
> > +#define __IRIS_PLATFORM_SM8350_H__
> > +
> > +static void iris_set_sm8350_preset_registers(struct iris_core *core)
> > +{
> > + u32 val;
> > +
> > + val = readl(core->reg_base + 0xb0088);
> > + val &= ~0x11;
> > + writel(val, core->reg_base + 0xb0088);
> > +}
>
> you can reuse this from SM8250. That would work.
Hmm, downstream driver was explicit about clearing only these two bits.
Is it really fine to clear all the bits?
>
> Thanks,
> Dikshita
>
> > +
> > +static const char * const sm8350_clk_reset_table[] = { "core" };
> > +
> > +#endif
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-01-30 12:29 ` Dikshita Agarwal
@ 2026-01-31 7:33 ` Dmitry Baryshkov
2026-02-02 8:07 ` Dikshita Agarwal
0 siblings, 1 reply; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-31 7:33 UTC (permalink / raw)
To: Dikshita Agarwal
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Johan Hovold, Bryan O'Donoghue
On Fri, Jan 30, 2026 at 05:59:48PM +0530, Dikshita Agarwal wrote:
>
>
> On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
> > From: Konrad Dybcio <konradybcio@kernel.org>
> >
> > Both of these SoCs implement an IRIS2 block, with SC8280XP being able
> > to clock it a bit higher and with SM8350 having 4 VPP pipes, while
> > SC8280XP having just 2.
> >
> > Document Iris2 cores found on these SoCs.
> >
> > Signed-off-by: Konrad Dybcio <konradybcio@kernel.org>
> > Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> > [ bod: dropped dts video-encoder/video-decoder ]
> > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> > [db: dropped status, dropped extra LLCC interconnect]
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
> > .../bindings/media/qcom,sm8350-venus.yaml | 113 +++++++++++++++++++++
> > 1 file changed, 113 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
> > new file mode 100644
> > index 000000000000..d78bdc08d830
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
> > @@ -0,0 +1,113 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/media/qcom,sm8350-venus.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Qualcomm SM8350 Venus video encode and decode accelerators
>
> s/Venus/iris
>
> > +
> > +maintainers:
> > + - Konrad Dybcio <konradybcio@kernel.org>
> > +
> > +description: |
> > + The Venus Iris2 IP is a video encode and decode accelerator present
> > + on Qualcomm platforms
> > +
> > +allOf:
> > + - $ref: qcom,venus-common.yaml#
>
> Pls remove the reference to venus-common.yaml and follow schema of
> sm8550-iris.yaml
Why? For example, sm8750-iris uses venus-common.yaml.
>
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - qcom,sc8280xp-venus
> > + - qcom,sm8350-venus
> > +
> > + clocks:
> > + maxItems: 3
> > +
> > + clock-names:
> > + items:
> > + - const: iface
> > + - const: core
> > + - const: vcodec0_core
> > +
> > + resets:
> > + maxItems: 1
> > +
> > + reset-names:
> > + items:
> > + - const: core
>
> It should be named as bus not core
Ack
>
> > +
> > + power-domains:
> > + maxItems: 3
> > +
> > + power-domain-names:
> > + items:
> > + - const: venus
> > + - const: vcodec0
> > + - const: mx
> > +
> > + interconnects:
> > + maxItems: 2
> > +
> > + interconnect-names:
> > + items:
> > + - const: cpu-cfg
> > + - const: video-mem
> > +
> > + operating-points-v2: true
> > + opp-table:
> > + type: object
> > +
> > + iommus:
> > + maxItems: 1
> > +
> > +required:
> > + - compatible
> > + - power-domain-names
> > + - iommus
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/interrupt-controller/arm-gic.h>
> > + #include <dt-bindings/clock/qcom,gcc-sm8350.h>
> > + #include <dt-bindings/clock/qcom,sm8350-videocc.h>
> > + #include <dt-bindings/interconnect/qcom,icc.h>
> > + #include <dt-bindings/interconnect/qcom,sm8350.h>
> > + #include <dt-bindings/power/qcom-rpmpd.h>
> > +
> > + venus: video-codec@aa00000 {
> > + compatible = "qcom,sm8350-venus";
> > + reg = <0x0aa00000 0x100000>;
> > + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
> > +
> > + clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
> > + <&videocc VIDEO_CC_MVS0C_CLK>,
> > + <&videocc VIDEO_CC_MVS0_CLK>;
> > + clock-names = "iface",
> > + "core",
> > + "vcodec0_core";
> > +
> > + resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>;
> > + reset-names = "core";
>
> s/core/bus following the existing YAML
>
> Thanks,
> Dikshita
>
> > +
> > + power-domains = <&videocc MVS0C_GDSC>,
> > + <&videocc MVS0_GDSC>,
> > + <&rpmhpd SM8350_MX>;
> > + power-domain-names = "venus",
> > + "vcodec0",
> > + "mx";
> > +
> > + 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_P0 QCOM_ICC_TAG_ALWAYS
> > + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
> > + interconnect-names = "cpu-cfg",
> > + "video-mem";
> > +
> > + operating-points-v2 = <&venus_opp_table>;
> > + iommus = <&apps_smmu 0x2100 0x400>;
> > + memory-region = <&pil_video_mem>;
> > + };
> >
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 7/7] arm64: dts: qcom: sm8350-hdk: enable Venus core
2026-01-30 13:07 ` Dikshita Agarwal
@ 2026-01-31 7:33 ` Dmitry Baryshkov
0 siblings, 0 replies; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-01-31 7:33 UTC (permalink / raw)
To: Dikshita Agarwal
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Johan Hovold
On Fri, Jan 30, 2026 at 06:37:35PM +0530, Dikshita Agarwal wrote:
>
>
> On 1/25/2026 9:03 PM, Dmitry Baryshkov wrote:
> > Enable video en/decoder on the SM8350 HDK board. There is no need to
> > specify the firmware as the driver will use the default one, provided by
> > the linux-firmware.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
> > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
> > index 5f975d009465..79f024fd47f9 100644
> > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
> > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
> > @@ -894,6 +894,10 @@ &usb_2_qmpphy {
> > vdda-pll-supply = <&vreg_l5b_0p88>;
> > };
> >
> > +&venus {
> > + status = "okay";
> > +};
>
> This should be enabled only after proper testing on the SoC.
Ack, I will mark this patch as [DNM] / [RFT].
>
> Thanks,
> Dikshita
>
> > +
> > /* PINCTRL - additions to nodes defined in sm8350.dtsi */
> >
> > &tlmm {
> >
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-01-31 7:33 ` Dmitry Baryshkov
@ 2026-02-02 8:07 ` Dikshita Agarwal
2026-02-02 9:14 ` Dmitry Baryshkov
0 siblings, 1 reply; 38+ messages in thread
From: Dikshita Agarwal @ 2026-02-02 8:07 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Johan Hovold, Bryan O'Donoghue
On 1/31/2026 1:03 PM, Dmitry Baryshkov wrote:
> On Fri, Jan 30, 2026 at 05:59:48PM +0530, Dikshita Agarwal wrote:
>>
>>
>> On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
>>> From: Konrad Dybcio <konradybcio@kernel.org>
>>>
>>> Both of these SoCs implement an IRIS2 block, with SC8280XP being able
>>> to clock it a bit higher and with SM8350 having 4 VPP pipes, while
>>> SC8280XP having just 2.
>>>
>>> Document Iris2 cores found on these SoCs.
>>>
>>> Signed-off-by: Konrad Dybcio <konradybcio@kernel.org>
>>> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
>>> [ bod: dropped dts video-encoder/video-decoder ]
>>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>> [db: dropped status, dropped extra LLCC interconnect]
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>> ---
>>> .../bindings/media/qcom,sm8350-venus.yaml | 113 +++++++++++++++++++++
>>> 1 file changed, 113 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
>>> new file mode 100644
>>> index 000000000000..d78bdc08d830
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
>>> @@ -0,0 +1,113 @@
>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/media/qcom,sm8350-venus.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Qualcomm SM8350 Venus video encode and decode accelerators
>>
>> s/Venus/iris
>>
>>> +
>>> +maintainers:
>>> + - Konrad Dybcio <konradybcio@kernel.org>
>>> +
>>> +description: |
>>> + The Venus Iris2 IP is a video encode and decode accelerator present
>>> + on Qualcomm platforms
>>> +
>>> +allOf:
>>> + - $ref: qcom,venus-common.yaml#
>>
>> Pls remove the reference to venus-common.yaml and follow schema of
>> sm8550-iris.yaml
>
> Why? For example, sm8750-iris uses venus-common.yaml.
Ack — in that case sm8750‑iris should be aligned as well.
Since Krzysztof’s patch [1] removes all venus-common references from
sm8550‑iris, all *-iris platforms should follow the same convention IMO.
[1]:
https://lore.kernel.org/linux-media/20250823155349.22344-2-krzysztof.kozlowski@linaro.org/
Thanks,
Dikshita
>
>>
>>> +
>>> +properties:
>>> + compatible:
>>> + enum:
>>> + - qcom,sc8280xp-venus
>>> + - qcom,sm8350-venus
>>> +
>>> + clocks:
>>> + maxItems: 3
>>> +
>>> + clock-names:
>>> + items:
>>> + - const: iface
>>> + - const: core
>>> + - const: vcodec0_core
>>> +
>>> + resets:
>>> + maxItems: 1
>>> +
>>> + reset-names:
>>> + items:
>>> + - const: core
>>
>> It should be named as bus not core
>
> Ack
>
>>
>>> +
>>> + power-domains:
>>> + maxItems: 3
>>> +
>>> + power-domain-names:
>>> + items:
>>> + - const: venus
>>> + - const: vcodec0
>>> + - const: mx
>>> +
>>> + interconnects:
>>> + maxItems: 2
>>> +
>>> + interconnect-names:
>>> + items:
>>> + - const: cpu-cfg
>>> + - const: video-mem
>>> +
>>> + operating-points-v2: true
>>> + opp-table:
>>> + type: object
>>> +
>>> + iommus:
>>> + maxItems: 1
>>> +
>>> +required:
>>> + - compatible
>>> + - power-domain-names
>>> + - iommus
>>> +
>>> +unevaluatedProperties: false
>>> +
>>> +examples:
>>> + - |
>>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>>> + #include <dt-bindings/clock/qcom,gcc-sm8350.h>
>>> + #include <dt-bindings/clock/qcom,sm8350-videocc.h>
>>> + #include <dt-bindings/interconnect/qcom,icc.h>
>>> + #include <dt-bindings/interconnect/qcom,sm8350.h>
>>> + #include <dt-bindings/power/qcom-rpmpd.h>
>>> +
>>> + venus: video-codec@aa00000 {
>>> + compatible = "qcom,sm8350-venus";
>>> + reg = <0x0aa00000 0x100000>;
>>> + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
>>> +
>>> + clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
>>> + <&videocc VIDEO_CC_MVS0C_CLK>,
>>> + <&videocc VIDEO_CC_MVS0_CLK>;
>>> + clock-names = "iface",
>>> + "core",
>>> + "vcodec0_core";
>>> +
>>> + resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>;
>>> + reset-names = "core";
>>
>> s/core/bus following the existing YAML
>>
>> Thanks,
>> Dikshita
>>
>>> +
>>> + power-domains = <&videocc MVS0C_GDSC>,
>>> + <&videocc MVS0_GDSC>,
>>> + <&rpmhpd SM8350_MX>;
>>> + power-domain-names = "venus",
>>> + "vcodec0",
>>> + "mx";
>>> +
>>> + 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_P0 QCOM_ICC_TAG_ALWAYS
>>> + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
>>> + interconnect-names = "cpu-cfg",
>>> + "video-mem";
>>> +
>>> + operating-points-v2 = <&venus_opp_table>;
>>> + iommus = <&apps_smmu 0x2100 0x400>;
>>> + memory-region = <&pil_video_mem>;
>>> + };
>>>
>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-02-02 8:07 ` Dikshita Agarwal
@ 2026-02-02 9:14 ` Dmitry Baryshkov
2026-02-02 9:17 ` Dikshita Agarwal
0 siblings, 1 reply; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-02-02 9:14 UTC (permalink / raw)
To: Dikshita Agarwal
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Johan Hovold, Bryan O'Donoghue
On Mon, Feb 02, 2026 at 01:37:50PM +0530, Dikshita Agarwal wrote:
>
>
> On 1/31/2026 1:03 PM, Dmitry Baryshkov wrote:
> > On Fri, Jan 30, 2026 at 05:59:48PM +0530, Dikshita Agarwal wrote:
> >>
> >>
> >> On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
> >>> From: Konrad Dybcio <konradybcio@kernel.org>
> >>>
> >>> Both of these SoCs implement an IRIS2 block, with SC8280XP being able
> >>> to clock it a bit higher and with SM8350 having 4 VPP pipes, while
> >>> SC8280XP having just 2.
> >>>
> >>> Document Iris2 cores found on these SoCs.
> >>>
> >>> Signed-off-by: Konrad Dybcio <konradybcio@kernel.org>
> >>> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> >>> [ bod: dropped dts video-encoder/video-decoder ]
> >>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> >>> [db: dropped status, dropped extra LLCC interconnect]
> >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> >>> ---
> >>> .../bindings/media/qcom,sm8350-venus.yaml | 113 +++++++++++++++++++++
> >>> 1 file changed, 113 insertions(+)
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
> >>> new file mode 100644
> >>> index 000000000000..d78bdc08d830
> >>> --- /dev/null
> >>> +++ b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
> >>> @@ -0,0 +1,113 @@
> >>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> >>> +%YAML 1.2
> >>> +---
> >>> +$id: http://devicetree.org/schemas/media/qcom,sm8350-venus.yaml#
> >>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>> +
> >>> +title: Qualcomm SM8350 Venus video encode and decode accelerators
> >>
> >> s/Venus/iris
> >>
> >>> +
> >>> +maintainers:
> >>> + - Konrad Dybcio <konradybcio@kernel.org>
> >>> +
> >>> +description: |
> >>> + The Venus Iris2 IP is a video encode and decode accelerator present
> >>> + on Qualcomm platforms
> >>> +
> >>> +allOf:
> >>> + - $ref: qcom,venus-common.yaml#
> >>
> >> Pls remove the reference to venus-common.yaml and follow schema of
> >> sm8550-iris.yaml
> >
> > Why? For example, sm8750-iris uses venus-common.yaml.
>
> Ack — in that case sm8750‑iris should be aligned as well.
> Since Krzysztof’s patch [1] removes all venus-common references from
> sm8550‑iris, all *-iris platforms should follow the same convention IMO.
He has been dropping references to venus-common.yaml mostly (IIUC)
because of the video-firmware. With the video-firmware being moved to
sc7180, the issue is no longer present. I will check if it makes sense
to keep (and use) venus-common or if it makes more sense to stop using
it.
>
> [1]:
> https://lore.kernel.org/linux-media/20250823155349.22344-2-krzysztof.kozlowski@linaro.org/
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-02-02 9:14 ` Dmitry Baryshkov
@ 2026-02-02 9:17 ` Dikshita Agarwal
0 siblings, 0 replies; 38+ messages in thread
From: Dikshita Agarwal @ 2026-02-02 9:17 UTC (permalink / raw)
To: Dmitry Baryshkov, Dikshita Agarwal
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Johan Hovold, Bryan O'Donoghue
On 2/2/2026 2:44 PM, Dmitry Baryshkov wrote:
> On Mon, Feb 02, 2026 at 01:37:50PM +0530, Dikshita Agarwal wrote:
>>
>>
>> On 1/31/2026 1:03 PM, Dmitry Baryshkov wrote:
>>> On Fri, Jan 30, 2026 at 05:59:48PM +0530, Dikshita Agarwal wrote:
>>>>
>>>>
>>>> On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
>>>>> From: Konrad Dybcio <konradybcio@kernel.org>
>>>>>
>>>>> Both of these SoCs implement an IRIS2 block, with SC8280XP being able
>>>>> to clock it a bit higher and with SM8350 having 4 VPP pipes, while
>>>>> SC8280XP having just 2.
>>>>>
>>>>> Document Iris2 cores found on these SoCs.
>>>>>
>>>>> Signed-off-by: Konrad Dybcio <konradybcio@kernel.org>
>>>>> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
>>>>> [ bod: dropped dts video-encoder/video-decoder ]
>>>>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>>>> [db: dropped status, dropped extra LLCC interconnect]
>>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>>>> ---
>>>>> .../bindings/media/qcom,sm8350-venus.yaml | 113 +++++++++++++++++++++
>>>>> 1 file changed, 113 insertions(+)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
>>>>> new file mode 100644
>>>>> index 000000000000..d78bdc08d830
>>>>> --- /dev/null
>>>>> +++ b/Documentation/devicetree/bindings/media/qcom,sm8350-venus.yaml
>>>>> @@ -0,0 +1,113 @@
>>>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>>>> +%YAML 1.2
>>>>> +---
>>>>> +$id: http://devicetree.org/schemas/media/qcom,sm8350-venus.yaml#
>>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>>> +
>>>>> +title: Qualcomm SM8350 Venus video encode and decode accelerators
>>>>
>>>> s/Venus/iris
>>>>
>>>>> +
>>>>> +maintainers:
>>>>> + - Konrad Dybcio <konradybcio@kernel.org>
>>>>> +
>>>>> +description: |
>>>>> + The Venus Iris2 IP is a video encode and decode accelerator present
>>>>> + on Qualcomm platforms
>>>>> +
>>>>> +allOf:
>>>>> + - $ref: qcom,venus-common.yaml#
>>>>
>>>> Pls remove the reference to venus-common.yaml and follow schema of
>>>> sm8550-iris.yaml
>>>
>>> Why? For example, sm8750-iris uses venus-common.yaml.
>>
>> Ack — in that case sm8750‑iris should be aligned as well.
>> Since Krzysztof’s patch [1] removes all venus-common references from
>> sm8550‑iris, all *-iris platforms should follow the same convention IMO.
>
> He has been dropping references to venus-common.yaml mostly (IIUC)
> because of the video-firmware. With the video-firmware being moved to
> sc7180, the issue is no longer present. I will check if it makes sense
> to keep (and use) venus-common or if it makes more sense to stop using
> it.
>
Ack, we should keep it consistent for all *-iris YAMLs.
Thanks,
Dikshita
>>
>> [1]:
>> https://lore.kernel.org/linux-media/20250823155349.22344-2-krzysztof.kozlowski@linaro.org/
>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-01-25 15:32 ` [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus Dmitry Baryshkov
` (3 preceding siblings ...)
2026-01-30 12:49 ` Dikshita Agarwal
@ 2026-02-02 15:25 ` Bryan O'Donoghue
2026-02-02 19:23 ` Dmitry Baryshkov
4 siblings, 1 reply; 38+ messages in thread
From: Bryan O'Donoghue @ 2026-02-02 15:25 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Dikshita Agarwal,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold, Bryan O'Donoghue
On 25/01/2026 15:32, Dmitry Baryshkov wrote:
> + iommus = <&apps_smmu 0x2100 0x400>;
Is this actually the correct set of iommus ?
Can we check to make sure ?
---
bod
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-01-25 15:32 ` [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support Dmitry Baryshkov
2026-01-26 9:50 ` Konrad Dybcio
2026-01-30 13:16 ` Dikshita Agarwal
@ 2026-02-02 15:28 ` Bryan O'Donoghue
2 siblings, 0 replies; 38+ messages in thread
From: Bryan O'Donoghue @ 2026-02-02 15:28 UTC (permalink / raw)
To: Dmitry Baryshkov, Vikash Garodia, Dikshita Agarwal,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Konrad Dybcio, Abhinav Kumar, Bjorn Andersson,
David Heidelberg
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Johan Hovold
On 25/01/2026 15:32, Dmitry Baryshkov wrote:
> SM8350 and SC8280XP have an updated version of the Iris2 core also
> present on the SM8250 and SC7280 platforms. Add necessary platform data
> to utilize the core on those two platforms.
>
> The iris_platform_gen1.c is now compiled unconditionally, even if Venus
> driver is enabled, but SM8250 and SC7280 are still disabled in
> iris_dt_match.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> drivers/media/platform/qcom/iris/Makefile | 5 +-
> .../platform/qcom/iris/iris_platform_common.h | 2 +
> .../media/platform/qcom/iris/iris_platform_gen1.c | 111 +++++++++++++++++++++
> .../platform/qcom/iris/iris_platform_sm8350.h | 20 ++++
> drivers/media/platform/qcom/iris/iris_probe.c | 10 ++
> 5 files changed, 144 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/platform/qcom/iris/Makefile
> index 2abbd3aeb4af..2fde45f81727 100644
> --- a/drivers/media/platform/qcom/iris/Makefile
> +++ b/drivers/media/platform/qcom/iris/Makefile
> @@ -10,6 +10,7 @@ qcom-iris-objs += iris_buffer.o \
> iris_hfi_gen2_packet.o \
> iris_hfi_gen2_response.o \
> iris_hfi_queue.o \
> + iris_platform_gen1.o \
> iris_platform_gen2.o \
> iris_power.o \
> iris_probe.o \
> @@ -26,8 +27,4 @@ qcom-iris-objs += iris_buffer.o \
> iris_vpu_buffer.o \
> iris_vpu_common.o \
>
> -ifeq ($(CONFIG_VIDEO_QCOM_VENUS),)
> -qcom-iris-objs += iris_platform_gen1.o
> -endif
> -
> obj-$(CONFIG_VIDEO_QCOM_IRIS) += qcom-iris.o
> diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
> index 5a489917580e..49dba0f50988 100644
> --- a/drivers/media/platform/qcom/iris/iris_platform_common.h
> +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
> @@ -43,7 +43,9 @@ enum pipe_type {
>
> extern const struct iris_platform_data qcs8300_data;
> extern const struct iris_platform_data sc7280_data;
> +extern const struct iris_platform_data sc8280xp_data;
> extern const struct iris_platform_data sm8250_data;
> +extern const struct iris_platform_data sm8350_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;
> diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen1.c b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> index df8e6bf9430e..c99ff4d4644d 100644
> --- a/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> +++ b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
> @@ -14,6 +14,7 @@
> #include "iris_instance.h"
>
> #include "iris_platform_sc7280.h"
> +#include "iris_platform_sm8350.h"
>
> #define BITRATE_MIN 32000
> #define BITRATE_MAX 160000000
> @@ -392,6 +393,61 @@ const struct iris_platform_data sm8250_data = {
> .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> };
>
> +const struct iris_platform_data sm8350_data = {
> + .get_instance = iris_hfi_gen1_get_instance,
> + .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
> + .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
> + .get_vpu_buffer_size = iris_vpu_buf_size,
> + .vpu_ops = &iris_vpu2_ops,
> + .set_preset_registers = iris_set_sm8350_preset_registers,
> + .icc_tbl = sm8250_icc_table,
> + .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
> + .clk_rst_tbl = sm8350_clk_reset_table,
> + .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
> + .bw_tbl_dec = sm8250_bw_table_dec,
> + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
> + .pmdomain_tbl = sm8250_pmdomain_table,
> + .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
> + .opp_pd_tbl = sm8250_opp_pd_table,
> + .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
> + .clk_tbl = sm8250_clk_table,
> + .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
> + .opp_clk_tbl = sm8250_opp_clk_table,
> + /* Upper bound of DMA address range */
> + .dma_mask = 0xe0000000 - 1,
> + .fwname = "qcom/vpu/vpu20_p4.mbn",
> + .pas_id = IRIS_PAS_ID,
> + .inst_iris_fmts = platform_fmts_sm8250_dec,
> + .inst_iris_fmts_size = ARRAY_SIZE(platform_fmts_sm8250_dec),
> + .inst_caps = &platform_inst_cap_sm8250,
> + .inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
> + .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
> + .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
> + .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
> + .tz_cp_config_data = tz_cp_config_sm8250,
> + .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
> + .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
> + .num_vpp_pipe = 4,
> + .max_session_count = 16,
> + .max_core_mbpf = NUM_MBS_8K,
> + .max_core_mbps = ((7680 * 4320) / 256) * 60,
> + .dec_input_config_params_default =
> + sm8250_vdec_input_config_param_default,
> + .dec_input_config_params_default_size =
> + ARRAY_SIZE(sm8250_vdec_input_config_param_default),
> + .enc_input_config_params = sm8250_venc_input_config_param,
> + .enc_input_config_params_size =
> + ARRAY_SIZE(sm8250_venc_input_config_param),
> +
> + .dec_ip_int_buf_tbl = sm8250_dec_ip_int_buf_tbl,
> + .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl),
> + .dec_op_int_buf_tbl = sm8250_dec_op_int_buf_tbl,
> + .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_op_int_buf_tbl),
> +
> + .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
> + .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> +};
> +
> const struct iris_platform_data sc7280_data = {
> .get_instance = iris_hfi_gen1_get_instance,
> .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
> @@ -446,3 +502,58 @@ const struct iris_platform_data sc7280_data = {
> .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
> .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> };
> +
> +const struct iris_platform_data sc8280xp_data = {
> + .get_instance = iris_hfi_gen1_get_instance,
> + .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
> + .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
> + .get_vpu_buffer_size = iris_vpu_buf_size,
> + .vpu_ops = &iris_vpu2_ops,
> + .set_preset_registers = iris_set_sm8350_preset_registers,
> + .icc_tbl = sm8250_icc_table,
> + .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
> + .clk_rst_tbl = sm8350_clk_reset_table,
> + .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
> + .bw_tbl_dec = sm8250_bw_table_dec,
> + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
> + .pmdomain_tbl = sm8250_pmdomain_table,
> + .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
> + .opp_pd_tbl = sm8250_opp_pd_table,
> + .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
> + .clk_tbl = sm8250_clk_table,
> + .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
> + .opp_clk_tbl = sm8250_opp_clk_table,
> + /* Upper bound of DMA address range */
> + .dma_mask = 0xe0000000 - 1,
> + .fwname = "qcom/vpu/vpu20_p2.mbn",
> + .pas_id = IRIS_PAS_ID,
> + .inst_iris_fmts = platform_fmts_sm8250_dec,
> + .inst_iris_fmts_size = ARRAY_SIZE(platform_fmts_sm8250_dec),
> + .inst_caps = &platform_inst_cap_sm8250,
> + .inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
> + .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
> + .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
> + .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
> + .tz_cp_config_data = tz_cp_config_sm8250,
> + .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
> + .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
> + .num_vpp_pipe = 2,
> + .max_session_count = 16,
> + .max_core_mbpf = NUM_MBS_8K,
> + .max_core_mbps = ((7680 * 4320) / 256) * 60,
> + .dec_input_config_params_default =
> + sm8250_vdec_input_config_param_default,
> + .dec_input_config_params_default_size =
> + ARRAY_SIZE(sm8250_vdec_input_config_param_default),
> + .enc_input_config_params = sm8250_venc_input_config_param,
> + .enc_input_config_params_size =
> + ARRAY_SIZE(sm8250_venc_input_config_param),
> +
> + .dec_ip_int_buf_tbl = sm8250_dec_ip_int_buf_tbl,
> + .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl),
> + .dec_op_int_buf_tbl = sm8250_dec_op_int_buf_tbl,
> + .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_op_int_buf_tbl),
> +
> + .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
> + .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> +};
> diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8350.h b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
> new file mode 100644
> index 000000000000..74cf5ea2359a
> --- /dev/null
> +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
> @@ -0,0 +1,20 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +#ifndef __IRIS_PLATFORM_SM8350_H__
> +#define __IRIS_PLATFORM_SM8350_H__
> +
> +static void iris_set_sm8350_preset_registers(struct iris_core *core)
> +{
> + u32 val;
> +
> + val = readl(core->reg_base + 0xb0088);
> + val &= ~0x11;
> + writel(val, core->reg_base + 0xb0088);
> +}
What does this magic number do ? You can find out from the docs.
Please define the relevant bits.
> +
> +static const char * const sm8350_clk_reset_table[] = { "core" };
> +
> +#endif
> diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/platform/qcom/iris/iris_probe.c
> index ddaacda523ec..10b00d9808d2 100644
> --- a/drivers/media/platform/qcom/iris/iris_probe.c
> +++ b/drivers/media/platform/qcom/iris/iris_probe.c
> @@ -357,11 +357,21 @@ static const struct of_device_id iris_dt_match[] = {
> .compatible = "qcom,sc7280-venus",
> .data = &sc7280_data,
> },
> +#endif
> + {
> + .compatible = "qcom,sc8280xp-venus",
> + .data = &sc8280xp_data,
> + },
> +#if (!IS_ENABLED(CONFIG_VIDEO_QCOM_VENUS))
> {
> .compatible = "qcom,sm8250-venus",
> .data = &sm8250_data,
> },
> #endif
> + {
> + .compatible = "qcom,sm8350-venus",
> + .data = &sm8350_data,
> + },
> {
> .compatible = "qcom,sm8550-iris",
> .data = &sm8550_data,
>
> --
> 2.47.3
>
>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus
2026-02-02 15:25 ` Bryan O'Donoghue
@ 2026-02-02 19:23 ` Dmitry Baryshkov
0 siblings, 0 replies; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-02-02 19:23 UTC (permalink / raw)
To: Bryan O'Donoghue
Cc: Vikash Garodia, Dikshita Agarwal, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Johan Hovold, Bryan O'Donoghue
On Mon, Feb 02, 2026 at 03:25:51PM +0000, Bryan O'Donoghue wrote:
> On 25/01/2026 15:32, Dmitry Baryshkov wrote:
> > + iommus = <&apps_smmu 0x2100 0x400>;
>
> Is this actually the correct set of iommus ?
>
> Can we check to make sure ?
I will check.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-01-31 7:28 ` Dmitry Baryshkov
@ 2026-02-05 9:10 ` Dikshita Agarwal
2026-02-05 10:54 ` Dmitry Baryshkov
0 siblings, 1 reply; 38+ messages in thread
From: Dikshita Agarwal @ 2026-02-05 9:10 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Johan Hovold
On 1/31/2026 12:58 PM, Dmitry Baryshkov wrote:
> On Fri, Jan 30, 2026 at 06:46:04PM +0530, Dikshita Agarwal wrote:
>>
>>
>> On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
>>> SM8350 and SC8280XP have an updated version of the Iris2 core also
>>> present on the SM8250 and SC7280 platforms. Add necessary platform data
>>> to utilize the core on those two platforms.
>>>
>>> The iris_platform_gen1.c is now compiled unconditionally, even if Venus
>>> driver is enabled, but SM8250 and SC7280 are still disabled in
>>> iris_dt_match.
>>>
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>> ---
>>> drivers/media/platform/qcom/iris/Makefile | 5 +-
>>> .../platform/qcom/iris/iris_platform_common.h | 2 +
>>> .../media/platform/qcom/iris/iris_platform_gen1.c | 111 +++++++++++++++++++++
>>> .../platform/qcom/iris/iris_platform_sm8350.h | 20 ++++
>>> drivers/media/platform/qcom/iris/iris_probe.c | 10 ++
>>> 5 files changed, 144 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/platform/qcom/iris/Makefile
>>> index 2abbd3aeb4af..2fde45f81727 100644
>>> --- a/drivers/media/platform/qcom/iris/Makefile
>>> +++ b/drivers/media/platform/qcom/iris/Makefile
>>> @@ -10,6 +10,7 @@ qcom-iris-objs += iris_buffer.o \
>>> iris_hfi_gen2_packet.o \
>>> iris_hfi_gen2_response.o \
>>> iris_hfi_queue.o \
>>> + iris_platform_gen1.o \
>>> iris_platform_gen2.o \
>>> iris_power.o \
>>> iris_probe.o \
>>> @@ -26,8 +27,4 @@ qcom-iris-objs += iris_buffer.o \
>>> iris_vpu_buffer.o \
>>> iris_vpu_common.o \
>>>
>>> -ifeq ($(CONFIG_VIDEO_QCOM_VENUS),)
>>> -qcom-iris-objs += iris_platform_gen1.o
>>> -endif
>>> -
>>> obj-$(CONFIG_VIDEO_QCOM_IRIS) += qcom-iris.o
>>
>> This change is not needed in this patch, pls remove.
>
> It is necessary in this patch. We enable gen1 platforms which are not a
> part of the venus->iris transition (they have never been supported by
> the venus driver). As such, iris_platform_gen1.c now needs to be
> compiled unconditionally.
>
Ack, I assumed you have this series dependent on the other series "flip the
switch between Venus and Iris drivers" which has this change already so
won't be needed here.
>>
>>> diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
>>> index 5a489917580e..49dba0f50988 100644
>>> --- a/drivers/media/platform/qcom/iris/iris_platform_common.h
>>> +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
>>> @@ -43,7 +43,9 @@ enum pipe_type {
>>>
>>> extern const struct iris_platform_data qcs8300_data;
>>> extern const struct iris_platform_data sc7280_data;
>>> +extern const struct iris_platform_data sc8280xp_data;
>>> extern const struct iris_platform_data sm8250_data;
>>> +extern const struct iris_platform_data sm8350_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;
>>> diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen1.c b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
>>> index df8e6bf9430e..c99ff4d4644d 100644
>>> --- a/drivers/media/platform/qcom/iris/iris_platform_gen1.c
>>> +++ b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
>>> @@ -14,6 +14,7 @@
>>> #include "iris_instance.h"
>>>
>>> #include "iris_platform_sc7280.h"
>>> +#include "iris_platform_sm8350.h"
>>>
>>> #define BITRATE_MIN 32000
>>> #define BITRATE_MAX 160000000
>>> @@ -392,6 +393,61 @@ const struct iris_platform_data sm8250_data = {
>>> .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
>>> };
>>>
>>> +const struct iris_platform_data sm8350_data = {
>>> + .get_instance = iris_hfi_gen1_get_instance,
>>> + .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
>>> + .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
>>> + .get_vpu_buffer_size = iris_vpu_buf_size,
>>> + .vpu_ops = &iris_vpu2_ops,
>>> + .set_preset_registers = iris_set_sm8350_preset_registers,
>>> + .icc_tbl = sm8250_icc_table,
>>> + .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
>>> + .clk_rst_tbl = sm8350_clk_reset_table,
>>> + .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
>>> + .bw_tbl_dec = sm8250_bw_table_dec,
>>> + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
>>> + .pmdomain_tbl = sm8250_pmdomain_table,
>>> + .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
>>> + .opp_pd_tbl = sm8250_opp_pd_table,
>>> + .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
>>> + .clk_tbl = sm8250_clk_table,
>>> + .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
>>> + .opp_clk_tbl = sm8250_opp_clk_table,
>>> + /* Upper bound of DMA address range */
>>> + .dma_mask = 0xe0000000 - 1,
>>> + .fwname = "qcom/vpu/vpu20_p4.mbn",
>>
>> This firmware is not compatible with SM8350.
>> SM8350 firmware is not released to linux-firmware yet.
>
> What would be the name for the firmware? The downstream uses vpu20_4v
> here, so, I guess, in upstream we should be using vpu20_p4, but a newer
> version?
>
Using a newer version won't work as the firmware for SM8250 and SM8350 are
different binaries generated from different firmware source branch.
You can give it a try, but AFAIK it won't work.
>>
>>> + .pas_id = IRIS_PAS_ID,
>>> + .inst_iris_fmts = platform_fmts_sm8250_dec,
>>> + .inst_iris_fmts_size = ARRAY_SIZE(platform_fmts_sm8250_dec),
>>> + .inst_caps = &platform_inst_cap_sm8250,
>>> + .inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
>>> + .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
>>> + .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
>>> + .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
>>> + .tz_cp_config_data = tz_cp_config_sm8250,
>>> + .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
>>> + .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
>>> + .num_vpp_pipe = 4,
>>> + .max_session_count = 16,
>>> + .max_core_mbpf = NUM_MBS_8K,
>>> + .max_core_mbps = ((7680 * 4320) / 256) * 60,
>>> + .dec_input_config_params_default =
>>> + sm8250_vdec_input_config_param_default,
>>> + .dec_input_config_params_default_size =
>>> + ARRAY_SIZE(sm8250_vdec_input_config_param_default),
>>> + .enc_input_config_params = sm8250_venc_input_config_param,
>>> + .enc_input_config_params_size =
>>> + ARRAY_SIZE(sm8250_venc_input_config_param),
>>> +
>>> + .dec_ip_int_buf_tbl = sm8250_dec_ip_int_buf_tbl,
>>> + .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl),
>>> + .dec_op_int_buf_tbl = sm8250_dec_op_int_buf_tbl,
>>> + .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_op_int_buf_tbl),
>>> +
>>> + .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
>>> + .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
>>> +};
>>> +
>>> const struct iris_platform_data sc7280_data = {
>>> .get_instance = iris_hfi_gen1_get_instance,
>>> .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
>>> @@ -446,3 +502,58 @@ const struct iris_platform_data sc7280_data = {
>>> .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
>>> .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
>>> };
>>> +
>>> +const struct iris_platform_data sc8280xp_data = {
>>> + .get_instance = iris_hfi_gen1_get_instance,
>>> + .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
>>> + .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
>>> + .get_vpu_buffer_size = iris_vpu_buf_size,
>>> + .vpu_ops = &iris_vpu2_ops,
>>> + .set_preset_registers = iris_set_sm8350_preset_registers,
>>> + .icc_tbl = sm8250_icc_table,
>>> + .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
>>> + .clk_rst_tbl = sm8350_clk_reset_table,
>>> + .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
>>> + .bw_tbl_dec = sm8250_bw_table_dec,
>>> + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
>>> + .pmdomain_tbl = sm8250_pmdomain_table,
>>> + .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
>>> + .opp_pd_tbl = sm8250_opp_pd_table,
>>> + .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
>>> + .clk_tbl = sm8250_clk_table,
>>> + .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
>>> + .opp_clk_tbl = sm8250_opp_clk_table,
>>> + /* Upper bound of DMA address range */
>>> + .dma_mask = 0xe0000000 - 1,
>>> + .fwname = "qcom/vpu/vpu20_p2.mbn",
>>
>> this firmware doesn't exist on linux-firmware.
>
> It was based on the assumption of having 2 pipes. If Iris here has 2
> pipes, then probably we should still point to vpu20_p4.mbn?
>
SC8280XP also uses the Iris2 4‑pipe configuration, though its firmware
comes from a different source branch compared to SM8250 and SM8350. This
means we have multiple firmwares with identical VPU and pipe configurations
but different origins. Could you propose a suitable naming scheme that can
differentiate such firmware?
>>
>>> + .pas_id = IRIS_PAS_ID,
>>> + .inst_iris_fmts = platform_fmts_sm8250_dec,
>>> + .inst_iris_fmts_size = ARRAY_SIZE(platform_fmts_sm8250_dec),
>>> + .inst_caps = &platform_inst_cap_sm8250,
>>> + .inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
>>> + .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
>>> + .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
>>> + .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
>>> + .tz_cp_config_data = tz_cp_config_sm8250,
>>> + .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
>>> + .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
>>> + .num_vpp_pipe = 2,
>>
>> sc8280xp is IRIS2 4 Pipe.
>
> Ack
>
>>
>>> + .max_session_count = 16,
>>> + .max_core_mbpf = NUM_MBS_8K,
>>> + .max_core_mbps = ((7680 * 4320) / 256) * 60,
>>> + .dec_input_config_params_default =
>>> + sm8250_vdec_input_config_param_default,
>>> + .dec_input_config_params_default_size =
>>> + ARRAY_SIZE(sm8250_vdec_input_config_param_default),
>>> + .enc_input_config_params = sm8250_venc_input_config_param,
>>> + .enc_input_config_params_size =
>>> + ARRAY_SIZE(sm8250_venc_input_config_param),
>>> +
>>> + .dec_ip_int_buf_tbl = sm8250_dec_ip_int_buf_tbl,
>>> + .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl),
>>> + .dec_op_int_buf_tbl = sm8250_dec_op_int_buf_tbl,
>>> + .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8250_dec_op_int_buf_tbl),
>>> +
>>> + .enc_ip_int_buf_tbl = sm8250_enc_ip_int_buf_tbl,
>>> + .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
>>> +};
>>> diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8350.h b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
>>> new file mode 100644
>>> index 000000000000..74cf5ea2359a
>>> --- /dev/null
>>> +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
>>> @@ -0,0 +1,20 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +/*
>>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>>> + */
>>> +
>>> +#ifndef __IRIS_PLATFORM_SM8350_H__
>>> +#define __IRIS_PLATFORM_SM8350_H__
>>> +
>>> +static void iris_set_sm8350_preset_registers(struct iris_core *core)
>>> +{
>>> + u32 val;
>>> +
>>> + val = readl(core->reg_base + 0xb0088);
>>> + val &= ~0x11;
>>> + writel(val, core->reg_base + 0xb0088);
>>> +}
>>
>> you can reuse this from SM8250. That would work.
>
> Hmm, downstream driver was explicit about clearing only these two bits.
> Is it really fine to clear all the bits?
>
Yes it is. We are doing the same for other SOCs as well.
Thanks,
Dikshita
>>
>> Thanks,
>> Dikshita
>>
>>> +
>>> +static const char * const sm8350_clk_reset_table[] = { "core" };
>>> +
>>> +#endif
>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-02-05 9:10 ` Dikshita Agarwal
@ 2026-02-05 10:54 ` Dmitry Baryshkov
2026-02-10 5:35 ` Dikshita Agarwal
0 siblings, 1 reply; 38+ messages in thread
From: Dmitry Baryshkov @ 2026-02-05 10:54 UTC (permalink / raw)
To: Dikshita Agarwal
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Johan Hovold
On Thu, Feb 05, 2026 at 02:40:39PM +0530, Dikshita Agarwal wrote:
>
>
> On 1/31/2026 12:58 PM, Dmitry Baryshkov wrote:
> > On Fri, Jan 30, 2026 at 06:46:04PM +0530, Dikshita Agarwal wrote:
> >>
> >>
> >> On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
> >>> SM8350 and SC8280XP have an updated version of the Iris2 core also
> >>> present on the SM8250 and SC7280 platforms. Add necessary platform data
> >>> to utilize the core on those two platforms.
> >>>
> >>> The iris_platform_gen1.c is now compiled unconditionally, even if Venus
> >>> driver is enabled, but SM8250 and SC7280 are still disabled in
> >>> iris_dt_match.
> >>>
> >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> >>> ---
> >>> drivers/media/platform/qcom/iris/Makefile | 5 +-
> >>> .../platform/qcom/iris/iris_platform_common.h | 2 +
> >>> .../media/platform/qcom/iris/iris_platform_gen1.c | 111 +++++++++++++++++++++
> >>> .../platform/qcom/iris/iris_platform_sm8350.h | 20 ++++
> >>> drivers/media/platform/qcom/iris/iris_probe.c | 10 ++
> >>> 5 files changed, 144 insertions(+), 4 deletions(-)
> >>>
> >>> @@ -392,6 +393,61 @@ const struct iris_platform_data sm8250_data = {
> >>> .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
> >>> };
> >>>
> >>> +const struct iris_platform_data sm8350_data = {
> >>> + .get_instance = iris_hfi_gen1_get_instance,
> >>> + .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
> >>> + .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
> >>> + .get_vpu_buffer_size = iris_vpu_buf_size,
> >>> + .vpu_ops = &iris_vpu2_ops,
> >>> + .set_preset_registers = iris_set_sm8350_preset_registers,
> >>> + .icc_tbl = sm8250_icc_table,
> >>> + .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
> >>> + .clk_rst_tbl = sm8350_clk_reset_table,
> >>> + .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
> >>> + .bw_tbl_dec = sm8250_bw_table_dec,
> >>> + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
> >>> + .pmdomain_tbl = sm8250_pmdomain_table,
> >>> + .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
> >>> + .opp_pd_tbl = sm8250_opp_pd_table,
> >>> + .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
> >>> + .clk_tbl = sm8250_clk_table,
> >>> + .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
> >>> + .opp_clk_tbl = sm8250_opp_clk_table,
> >>> + /* Upper bound of DMA address range */
> >>> + .dma_mask = 0xe0000000 - 1,
> >>> + .fwname = "qcom/vpu/vpu20_p4.mbn",
> >>
> >> This firmware is not compatible with SM8350.
> >> SM8350 firmware is not released to linux-firmware yet.
> >
> > What would be the name for the firmware? The downstream uses vpu20_4v
> > here, so, I guess, in upstream we should be using vpu20_p4, but a newer
> > version?
> >
>
> Using a newer version won't work as the firmware for SM8250 and SM8350 are
> different binaries generated from different firmware source branch.
> You can give it a try, but AFAIK it won't work.
Ugh...
> >>> + .fwname = "qcom/vpu/vpu20_p2.mbn",
> >>
> >> this firmware doesn't exist on linux-firmware.
> >
> > It was based on the assumption of having 2 pipes. If Iris here has 2
> > pipes, then probably we should still point to vpu20_p4.mbn?
> >
>
> SC8280XP also uses the Iris2 4‑pipe configuration, though its firmware
> comes from a different source branch compared to SM8250 and SM8350. This
> means we have multiple firmwares with identical VPU and pipe configurations
> but different origins. Could you propose a suitable naming scheme that can
> differentiate such firmware?
Can we have a single binary that works on all Iris2 4-pipe cores?
Or are there any differences between Iris2 on SM8250 / SM8350 /
SC8280XP? Are they stil vpu20_something or should we use different VPU
versions in the firmware name?
> >>> diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8350.h b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
> >>> new file mode 100644
> >>> index 000000000000..74cf5ea2359a
> >>> --- /dev/null
> >>> +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
> >>> @@ -0,0 +1,20 @@
> >>> +/* SPDX-License-Identifier: GPL-2.0-only */
> >>> +/*
> >>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> >>> + */
> >>> +
> >>> +#ifndef __IRIS_PLATFORM_SM8350_H__
> >>> +#define __IRIS_PLATFORM_SM8350_H__
> >>> +
> >>> +static void iris_set_sm8350_preset_registers(struct iris_core *core)
> >>> +{
> >>> + u32 val;
> >>> +
> >>> + val = readl(core->reg_base + 0xb0088);
> >>> + val &= ~0x11;
> >>> + writel(val, core->reg_base + 0xb0088);
> >>> +}
> >>
> >> you can reuse this from SM8250. That would work.
> >
> > Hmm, downstream driver was explicit about clearing only these two bits.
> > Is it really fine to clear all the bits?
> >
>
> Yes it is. We are doing the same for other SOCs as well.
Wouldn't this also ungate / start the second core?
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support
2026-02-05 10:54 ` Dmitry Baryshkov
@ 2026-02-10 5:35 ` Dikshita Agarwal
0 siblings, 0 replies; 38+ messages in thread
From: Dikshita Agarwal @ 2026-02-10 5:35 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vikash Garodia, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Abhinav Kumar, Bjorn Andersson, David Heidelberg, linux-media,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Johan Hovold
On 2/5/2026 4:24 PM, Dmitry Baryshkov wrote:
> On Thu, Feb 05, 2026 at 02:40:39PM +0530, Dikshita Agarwal wrote:
>>
>>
>> On 1/31/2026 12:58 PM, Dmitry Baryshkov wrote:
>>> On Fri, Jan 30, 2026 at 06:46:04PM +0530, Dikshita Agarwal wrote:
>>>>
>>>>
>>>> On 1/25/2026 9:02 PM, Dmitry Baryshkov wrote:
>>>>> SM8350 and SC8280XP have an updated version of the Iris2 core also
>>>>> present on the SM8250 and SC7280 platforms. Add necessary platform data
>>>>> to utilize the core on those two platforms.
>>>>>
>>>>> The iris_platform_gen1.c is now compiled unconditionally, even if Venus
>>>>> driver is enabled, but SM8250 and SC7280 are still disabled in
>>>>> iris_dt_match.
>>>>>
>>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>>>> ---
>>>>> drivers/media/platform/qcom/iris/Makefile | 5 +-
>>>>> .../platform/qcom/iris/iris_platform_common.h | 2 +
>>>>> .../media/platform/qcom/iris/iris_platform_gen1.c | 111 +++++++++++++++++++++
>>>>> .../platform/qcom/iris/iris_platform_sm8350.h | 20 ++++
>>>>> drivers/media/platform/qcom/iris/iris_probe.c | 10 ++
>>>>> 5 files changed, 144 insertions(+), 4 deletions(-)
>>>>>
>>>>> @@ -392,6 +393,61 @@ const struct iris_platform_data sm8250_data = {
>>>>> .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl),
>>>>> };
>>>>>
>>>>> +const struct iris_platform_data sm8350_data = {
>>>>> + .get_instance = iris_hfi_gen1_get_instance,
>>>>> + .init_hfi_command_ops = &iris_hfi_gen1_command_ops_init,
>>>>> + .init_hfi_response_ops = iris_hfi_gen1_response_ops_init,
>>>>> + .get_vpu_buffer_size = iris_vpu_buf_size,
>>>>> + .vpu_ops = &iris_vpu2_ops,
>>>>> + .set_preset_registers = iris_set_sm8350_preset_registers,
>>>>> + .icc_tbl = sm8250_icc_table,
>>>>> + .icc_tbl_size = ARRAY_SIZE(sm8250_icc_table),
>>>>> + .clk_rst_tbl = sm8350_clk_reset_table,
>>>>> + .clk_rst_tbl_size = ARRAY_SIZE(sm8350_clk_reset_table),
>>>>> + .bw_tbl_dec = sm8250_bw_table_dec,
>>>>> + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
>>>>> + .pmdomain_tbl = sm8250_pmdomain_table,
>>>>> + .pmdomain_tbl_size = ARRAY_SIZE(sm8250_pmdomain_table),
>>>>> + .opp_pd_tbl = sm8250_opp_pd_table,
>>>>> + .opp_pd_tbl_size = ARRAY_SIZE(sm8250_opp_pd_table),
>>>>> + .clk_tbl = sm8250_clk_table,
>>>>> + .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
>>>>> + .opp_clk_tbl = sm8250_opp_clk_table,
>>>>> + /* Upper bound of DMA address range */
>>>>> + .dma_mask = 0xe0000000 - 1,
>>>>> + .fwname = "qcom/vpu/vpu20_p4.mbn",
>>>>
>>>> This firmware is not compatible with SM8350.
>>>> SM8350 firmware is not released to linux-firmware yet.
>>>
>>> What would be the name for the firmware? The downstream uses vpu20_4v
>>> here, so, I guess, in upstream we should be using vpu20_p4, but a newer
>>> version?
>>>
>>
>> Using a newer version won't work as the firmware for SM8250 and SM8350 are
>> different binaries generated from different firmware source branch.
>> You can give it a try, but AFAIK it won't work.
>
> Ugh...
>
>>>>> + .fwname = "qcom/vpu/vpu20_p2.mbn",
>>>>
>>>> this firmware doesn't exist on linux-firmware.
>>>
>>> It was based on the assumption of having 2 pipes. If Iris here has 2
>>> pipes, then probably we should still point to vpu20_p4.mbn?
>>>
>>
>> SC8280XP also uses the Iris2 4‑pipe configuration, though its firmware
>> comes from a different source branch compared to SM8250 and SM8350. This
>> means we have multiple firmwares with identical VPU and pipe configurations
>> but different origins. Could you propose a suitable naming scheme that can
>> differentiate such firmware?
>
> Can we have a single binary that works on all Iris2 4-pipe cores?
That is not possible as it is older VPU.
For newer ones, the plan is have single source branch for same VPU to avoid
such issues in future.
> Or are there any differences between Iris2 on SM8250 / SM8350 /
> SC8280XP? Are they stil vpu20_something or should we use different VPU
> versions in the firmware name?
I think we can keep vpu20_4p_* with some way to different among SM8250,
SM8350, SC8280XP.
>
>>>>> diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8350.h b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
>>>>> new file mode 100644
>>>>> index 000000000000..74cf5ea2359a
>>>>> --- /dev/null
>>>>> +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8350.h
>>>>> @@ -0,0 +1,20 @@
>>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>>> +/*
>>>>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>>>>> + */
>>>>> +
>>>>> +#ifndef __IRIS_PLATFORM_SM8350_H__
>>>>> +#define __IRIS_PLATFORM_SM8350_H__
>>>>> +
>>>>> +static void iris_set_sm8350_preset_registers(struct iris_core *core)
>>>>> +{
>>>>> + u32 val;
>>>>> +
>>>>> + val = readl(core->reg_base + 0xb0088);
>>>>> + val &= ~0x11;
>>>>> + writel(val, core->reg_base + 0xb0088);
>>>>> +}
>>>>
>>>> you can reuse this from SM8250. That would work.
>>>
>>> Hmm, downstream driver was explicit about clearing only these two bits.
>>> Is it really fine to clear all the bits?
>>>
>>
>> Yes it is. We are doing the same for other SOCs as well.
>
> Wouldn't this also ungate / start the second core?
>
^ permalink raw reply [flat|nested] 38+ messages in thread
end of thread, other threads:[~2026-02-10 5:35 UTC | newest]
Thread overview: 38+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-25 15:32 [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
2026-01-25 15:32 ` [PATCH v3 1/7] media: dt-bindings: Document SC8280XP/SM8350 Venus Dmitry Baryshkov
2026-01-26 10:00 ` Konrad Dybcio
2026-01-26 10:20 ` Dmitry Baryshkov
2026-01-30 12:09 ` Dikshita Agarwal
2026-01-29 17:24 ` Rob Herring
2026-01-30 12:29 ` Dikshita Agarwal
2026-01-31 7:33 ` Dmitry Baryshkov
2026-02-02 8:07 ` Dikshita Agarwal
2026-02-02 9:14 ` Dmitry Baryshkov
2026-02-02 9:17 ` Dikshita Agarwal
2026-01-30 12:49 ` Dikshita Agarwal
2026-02-02 15:25 ` Bryan O'Donoghue
2026-02-02 19:23 ` Dmitry Baryshkov
2026-01-25 15:32 ` [PATCH v3 2/7] media: iris: introduce SM8350 and SC8280XP support Dmitry Baryshkov
2026-01-26 9:50 ` Konrad Dybcio
2026-01-26 10:55 ` Dmitry Baryshkov
2026-01-30 13:20 ` Dikshita Agarwal
2026-01-31 7:04 ` Dmitry Baryshkov
2026-01-30 13:16 ` Dikshita Agarwal
2026-01-31 7:28 ` Dmitry Baryshkov
2026-02-05 9:10 ` Dikshita Agarwal
2026-02-05 10:54 ` Dmitry Baryshkov
2026-02-10 5:35 ` Dikshita Agarwal
2026-02-02 15:28 ` Bryan O'Donoghue
2026-01-25 15:33 ` [PATCH v3 3/7] arm64: dts: qcom: sc8280xp: sort reserved memory regions Dmitry Baryshkov
2026-01-26 9:51 ` Konrad Dybcio
2026-01-25 15:33 ` [PATCH v3 4/7] arm64: dts: qcom: sc8280xp: Add Venus Dmitry Baryshkov
2026-01-26 10:00 ` Konrad Dybcio
2026-01-26 10:47 ` Dmitry Baryshkov
2026-01-26 10:55 ` Konrad Dybcio
2026-01-30 13:09 ` Dikshita Agarwal
2026-01-25 15:33 ` [PATCH v3 5/7] arm64: dts: qcom: sc8280xp-x13s: Enable Venus Dmitry Baryshkov
2026-01-25 15:33 ` [PATCH v3 6/7] arm64: dts: qcom: sm8350: add Venus device Dmitry Baryshkov
2026-01-25 15:33 ` [PATCH v3 7/7] arm64: dts: qcom: sm8350-hdk: enable Venus core Dmitry Baryshkov
2026-01-30 13:07 ` Dikshita Agarwal
2026-01-31 7:33 ` Dmitry Baryshkov
2026-01-30 12:14 ` [PATCH v3 0/7] media: iris: enable SM8350 and SC8280XP support Dikshita Agarwal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox