public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support
@ 2026-03-12 15:14 Dmitry Baryshkov
  2026-03-12 15:14 ` [PATCH v4 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris Dmitry Baryshkov
                   ` (6 more replies)
  0 siblings, 7 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-12 15:14 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, Stanimir Varbanov
  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.

Note, this has been tested only with the Iris driver. Venus driver fails
to boot the Iris core on SM8350 pointing out the UC_REGION error.

Note, the firmware for SM8250 isn't compatible with SM8350 (nor with
SC8280XP). Please use corresponding firmware, extracted from the Windows
/ Android data.

On SM8350 with the Iris driver:

$ v4l2-compliance
v4l2-compliance 1.30.1, 64 bits, 64-bit time_t

Compliance test for iris_driver device /dev/video0:

Driver Info:
        Driver name      : iris_driver
        Card type        : Iris Decoder
        Bus info         : platform:aa00000.video-codec
        Driver version   : 7.0.0
        Capabilities     : 0x84204000
                Video Memory-to-Memory Multiplanar
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04204000
                Video Memory-to-Memory Multiplanar
                Streaming
                Extended Pix Format
        Detected Stateful Decoder

Required ioctls:
        test VIDIOC_QUERYCAP: OK
        test invalid ioctls: OK

Allow for multiple opens:
        test second /dev/video0 open: OK
        test VIDIOC_QUERYCAP: OK
        test VIDIOC_G/S_PRIORITY: OK
        test for unlimited opens: OK

Debug ioctls:
        test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
        test VIDIOC_LOG_STATUS: OK (Not Supported)

Input ioctls:
        test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
        test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
        test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
        test VIDIOC_ENUMAUDIO: OK (Not Supported)
        test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
        test VIDIOC_G/S_AUDIO: OK (Not Supported)
        Inputs: 0 Audio Inputs: 0 Tuners: 0

Output ioctls:
        test VIDIOC_G/S_MODULATOR: OK (Not Supported)
        test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
        test VIDIOC_ENUMAUDOUT: OK (Not Supported)
        test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
        test VIDIOC_G/S_AUDOUT: OK (Not Supported)
        Outputs: 0 Audio Outputs: 0 Modulators: 0

Input/Output configuration ioctls:
        test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
        test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
        test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
        test VIDIOC_G/S_EDID: OK (Not Supported)

Control ioctls:
        test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
        test VIDIOC_QUERYCTRL: OK
        test VIDIOC_G/S_CTRL: OK
        test VIDIOC_G/S/TRY_EXT_CTRLS: OK
        test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
        test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
        Standard Controls: 2 Private Controls: 0

Format ioctls:
        test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
        test VIDIOC_G/S_PARM: OK (Not Supported)
        test VIDIOC_G_FBUF: OK (Not Supported)
        test VIDIOC_G_FMT: OK
        test VIDIOC_TRY_FMT: OK
        test VIDIOC_S_FMT: OK
        test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
        test Cropping: OK
        test Composing: OK
        test Scaling: OK (Not Supported)

Codec ioctls:
        test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
        test VIDIOC_G_ENC_INDEX: OK (Not Supported)
        test VIDIOC_(TRY_)DECODER_CMD: OK

Buffer ioctls:
        test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
        test CREATE_BUFS maximum buffers: OK
        test VIDIOC_REMOVE_BUFS: OK
        test VIDIOC_EXPBUF: OK
        test Requests: OK (Not Supported)
        test blocking wait: OK

Total for iris_driver device /dev/video0: 48, Succeeded: 48, Failed: 0, Warnings: 0

|TOTALS|FFmpeg-H.265-v4l2m2m|GStreamer-H.265-V4L2-Gst1.0|FFmpeg-H.264-v4l2m2m|GStreamer-H.264-V4L2-Gst1.0|FFmpeg-VP9-v4l2m2m|GStreamer-VP9-V4L2-Gst1.0|
|-|-|-|-|-|-|-|
|TOTAL|169/316|128/316|154/447|126/447|159/311|229/311|
|TOTAL TIME|242.251s|267.903s|293.458s|261.934s|203.009s|366.936s|
|-|-|-|-|-|-|-|
|Profile|FFmpeg-H.265-v4l2m2m|GStreamer-H.265-V4L2-Gst1.0|FFmpeg-H.264-v4l2m2m|GStreamer-H.264-V4L2-Gst1.0|FFmpeg-VP9-v4l2m2m|GStreamer-VP9-V4L2-Gst1.0|
|BASELINE|0/0|0/0|3/7|4/7|0/0|0/0|
|CAVLC_4_4_4|0/0|0/0|0/3|0/3|0/0|0/0|
|CAVLC_4_4_4_INTRA|0/0|0/0|0/4|0/4|0/0|0/0|
|CONSTRAINED_BASELINE|0/0|0/0|32/33|33/33|0/0|0/0|
|EXTENDED|0/0|0/0|1/6|1/6|0/0|0/0|
|HIGH|0/0|0/0|22/45|22/45|0/0|0/0|
|HIGH_10|0/0|0/0|0/2|0/2|0/0|0/0|
|HIGH_10_INTRA|0/0|0/0|0/7|0/7|0/0|0/0|
|HIGH_4_2_2|0/0|0/0|0/21|0/21|0/0|0/0|
|HIGH_4_2_2_INTRA|0/0|0/0|0/7|0/7|0/0|0/0|
|HIGH_4_4_4_INTRA|0/0|0/0|0/6|0/6|0/0|0/0|
|HIGH_4_4_4_PREDICTIVE|0/0|0/0|0/11|0/11|0/0|0/0|
|MAIN|127/135|126/135|41/90|41/90|0/0|0/0|
|MAIN_10|0/11|0/11|0/0|0/0|0/0|0/0|
|MAIN_STILL_PICTURE|1/1|1/1|0/0|0/0|0/0|0/0|
|-|-|-|-|-|-|-|

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Changes in v4:
- Changed compat strings to use -iris instead of -venus (Konrad,
  Dikshita)
- Dropped separate schema file, switched to SM8250 schema
- Dropped driver bits, it's covered by compatible string now
- Link to v3: https://lore.kernel.org/r/20260125-iris-sc8280xp-v3-0-d21861a9ea33@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: dt-bindings: Document SC8280XP/SM8350 Iris
      arm64: dts: qcom: sc8280xp: sort reserved memory regions
      arm64: dts: qcom: sm8350: add Iris device
      arm64: dts: qcom: sm8350-hdk: enable Iris core

Konrad Dybcio (2):
      arm64: dts: qcom: sc8280xp: Add Iris core
      arm64: dts: qcom: sc8280xp-x13s: Enable Iris

 .../bindings/media/qcom,sm8250-venus.yaml          |  10 +-
 .../dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts     |   6 ++
 arch/arm64/boot/dts/qcom/sc8280xp.dtsi             | 103 ++++++++++++++++++++-
 arch/arm64/boot/dts/qcom/sm8350-hdk.dts            |   6 ++
 arch/arm64/boot/dts/qcom/sm8350.dtsi               |  81 ++++++++++++++++
 5 files changed, 202 insertions(+), 4 deletions(-)
---
base-commit: a0ae2a256046c0c5d3778d1a194ff2e171f16e5f
change-id: 20260120-iris-sc8280xp-85d13bc60536
prerequisite-change-id: 20260131-iris-venus-fix-sm8250-f938e29e7497:v5
prerequisite-patch-id: 6d85e3db422bc7f16246249288a17b92f6edbc09
prerequisite-patch-id: 579d712ec3f942ba0c362e242c71361c151092b5
prerequisite-patch-id: fa4629a3909fbae3917d8c067cce4f673ee857c0
prerequisite-patch-id: cbbd40736f7a797ff76b0fe2b1ddfb559e14e666
prerequisite-patch-id: 5b50917dcfef01db13af320cbd1cba15fd5fa16f
prerequisite-patch-id: 8948139735836adb9fbc51d93b969911dc5b38e8
prerequisite-patch-id: 7ec91bd0149f347c479c906e73cabaa28601ab3d
prerequisite-patch-id: c711522b63f640b7504767b3af7adc05a0b36cac
prerequisite-patch-id: 42b9cd5e0fd6fd99eae267c78b239333adff7637
prerequisite-patch-id: 11c487545e2462ff0a515d689863c3f7f25f9449
prerequisite-change-id: 20251119-venus-iris-flip-switch-d59a3fbc6a4b:v4
prerequisite-patch-id: 615a763749fdc0c4ee184478bc64120972d8c7a1
prerequisite-patch-id: 6d85e3db422bc7f16246249288a17b92f6edbc09
prerequisite-patch-id: 579d712ec3f942ba0c362e242c71361c151092b5
prerequisite-patch-id: fa4629a3909fbae3917d8c067cce4f673ee857c0
prerequisite-patch-id: cbbd40736f7a797ff76b0fe2b1ddfb559e14e666
prerequisite-patch-id: 5b50917dcfef01db13af320cbd1cba15fd5fa16f

Best regards,
-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v4 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris
  2026-03-12 15:14 [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
@ 2026-03-12 15:14 ` Dmitry Baryshkov
  2026-03-13  7:55   ` Krzysztof Kozlowski
  2026-03-12 15:14 ` [PATCH v4 2/6] arm64: dts: qcom: sc8280xp: sort reserved memory regions Dmitry Baryshkov
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-12 15:14 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, Stanimir Varbanov
  Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
	Konrad Dybcio, Johan Hovold

The Iris block on SM8350 and SC8280XP is compatible with the Iris
(Venus) on SM8250. Document those two IP cores, using qcom,sm8250-venus
as a fallback compatible.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
index 43a10d9f664e..3700f8fe91cc 100644
--- a/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
+++ b/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
@@ -10,7 +10,7 @@ maintainers:
   - Stanimir Varbanov <stanimir.varbanov@linaro.org>
 
 description: |
-  The Venus IP is a video encode and decode accelerator present
+  The Iris2 IP is a video encode and decode accelerator present
   on Qualcomm platforms
 
 allOf:
@@ -18,7 +18,13 @@ allOf:
 
 properties:
   compatible:
-    const: qcom,sm8250-venus
+    oneOf:
+      - const: qcom,sm8250-venus
+      - items:
+        - enum:
+            - qcom,sc8280xp-iris
+            - qcom,sm8350-iris
+        - const: qcom,sm8250-venus
 
   power-domains:
     minItems: 2

-- 
2.47.3


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v4 2/6] arm64: dts: qcom: sc8280xp: sort reserved memory regions
  2026-03-12 15:14 [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
  2026-03-12 15:14 ` [PATCH v4 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris Dmitry Baryshkov
@ 2026-03-12 15:14 ` Dmitry Baryshkov
  2026-03-12 15:14 ` [PATCH v4 3/6] arm64: dts: qcom: sc8280xp: Add Iris core Dmitry Baryshkov
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-12 15:14 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, Stanimir Varbanov
  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")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
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] 16+ messages in thread

* [PATCH v4 3/6] arm64: dts: qcom: sc8280xp: Add Iris core
  2026-03-12 15:14 [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
  2026-03-12 15:14 ` [PATCH v4 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris Dmitry Baryshkov
  2026-03-12 15:14 ` [PATCH v4 2/6] arm64: dts: qcom: sc8280xp: sort reserved memory regions Dmitry Baryshkov
@ 2026-03-12 15:14 ` Dmitry Baryshkov
  2026-03-13 12:31   ` Konrad Dybcio
  2026-03-12 15:14 ` [PATCH v4 4/6] arm64: dts: qcom: sc8280xp-x13s: Enable Iris Dmitry Baryshkov
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-12 15:14 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, Stanimir Varbanov
  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 Iris core 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, corrected OPP table ]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 99 ++++++++++++++++++++++++++++++++++
 1 file changed, 99 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
index 41c57e7dc433..d950816a9a9e 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
@@ -10,13 +10,16 @@
 #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>
 #include <dt-bindings/mailbox/qcom-ipcc.h>
 #include <dt-bindings/phy/phy-qcom-qmp.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/reset/qcom,sm8350-videocc.h>
 #include <dt-bindings/soc/qcom,gpr.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 #include <dt-bindings/sound/qcom,q6afe.h>
@@ -691,6 +694,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 +4189,97 @@ usb_1_dwc3_ss: endpoint {
 			};
 		};
 
+		iris: video-codec@aa00000 {
+			compatible = "qcom,sc8280xp-iris", "qcom,sm8250-venus";
+			reg = <0x0 0x0aa00000 0x0 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>,
+					<&rpmhpd SC8280XP_MMCX>;
+			power-domain-names = "venus",
+					     "vcodec0",
+					     "mx",
+					     "mmcx";
+
+			resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>,
+				 <&videocc VIDEO_CC_MVS0C_CLK_ARES>;
+			reset-names = "bus", "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 = <&iris_opp_table>;
+			iommus = <&apps_smmu 0x2a00 0x400>;
+			memory-region = <&pil_video_mem>;
+
+			status = "disabled";
+
+			iris_opp_table: opp-table {
+				compatible = "operating-points-v2";
+
+				opp-240000000 {
+					opp-hz = /bits/ 64 <240000000>;
+					required-opps = <&rpmhpd_opp_svs>,
+							<&rpmhpd_opp_low_svs>;
+				};
+
+				opp-338000000 {
+					opp-hz = /bits/ 64 <338000000>;
+					required-opps = <&rpmhpd_opp_svs>,
+							<&rpmhpd_opp_svs>;
+				};
+
+				opp-366000000 {
+					opp-hz = /bits/ 64 <366000000>;
+					required-opps = <&rpmhpd_opp_svs_l1>,
+							<&rpmhpd_opp_svs_l1>;
+				};
+
+				opp-444000000 {
+					opp-hz = /bits/ 64 <444000000>;
+					required-opps = <&rpmhpd_opp_svs_l1>,
+							<&rpmhpd_opp_nom>;
+				};
+
+				opp-533000000 {
+					opp-hz = /bits/ 64 <533000000>;
+					required-opps = <&rpmhpd_opp_nom>,
+							<&rpmhpd_opp_turbo>;
+				};
+
+				opp-560000000 {
+					opp-hz = /bits/ 64 <560000000>;
+					required-opps = <&rpmhpd_opp_nom>,
+							<&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] 16+ messages in thread

* [PATCH v4 4/6] arm64: dts: qcom: sc8280xp-x13s: Enable Iris
  2026-03-12 15:14 [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
                   ` (2 preceding siblings ...)
  2026-03-12 15:14 ` [PATCH v4 3/6] arm64: dts: qcom: sc8280xp: Add Iris core Dmitry Baryshkov
@ 2026-03-12 15:14 ` Dmitry Baryshkov
  2026-03-12 15:14 ` [PATCH v4 5/6] arm64: dts: qcom: sm8350: add Iris device Dmitry Baryshkov
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-12 15:14 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, Stanimir Varbanov
  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 Iris 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..0eab03495b8a 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
@@ -932,6 +932,12 @@ keyboard@68 {
 	};
 };
 
+&iris {
+	firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcvss8280.mbn";
+
+	status = "okay";
+};
+
 &pcie2a {
 	perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
 	wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;

-- 
2.47.3


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v4 5/6] arm64: dts: qcom: sm8350: add Iris device
  2026-03-12 15:14 [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
                   ` (3 preceding siblings ...)
  2026-03-12 15:14 ` [PATCH v4 4/6] arm64: dts: qcom: sc8280xp-x13s: Enable Iris Dmitry Baryshkov
@ 2026-03-12 15:14 ` Dmitry Baryshkov
  2026-03-13 12:32   ` Konrad Dybcio
  2026-03-12 15:14 ` [PATCH v4 6/6] arm64: dts: qcom: sm8350-hdk: enable Iris core Dmitry Baryshkov
  2026-03-27 16:46 ` [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Steev Klimaszewski
  6 siblings, 1 reply; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-12 15:14 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, Stanimir Varbanov
  Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
	Konrad Dybcio, Johan Hovold

Add Iris 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 | 81 ++++++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8350.dtsi b/arch/arm64/boot/dts/qcom/sm8350.dtsi
index 5c8fe213f5e4..eedf677a7070 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>
@@ -19,6 +20,7 @@
 #include <dt-bindings/phy/phy-qcom-qmp.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/power/qcom,rpmhpd.h>
+#include <dt-bindings/reset/qcom,sm8350-videocc.h>
 #include <dt-bindings/soc/qcom,apr.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 #include <dt-bindings/sound/qcom,q6afe.h>
@@ -2745,6 +2747,85 @@ usb_2_dwc3: usb@a800000 {
 			};
 		};
 
+		iris: video-codec@aa00000 {
+			compatible = "qcom,sm8350-iris", "qcom,sm8250-venus";
+			reg = <0x0 0x0aa00000 0x0 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>,
+					<&rpmhpd RPMHPD_MMCX>;
+			power-domain-names = "venus",
+					     "vcodec0",
+					     "mx",
+					     "mmcx";
+
+			resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>,
+				 <&videocc VIDEO_CC_MVS0C_CLK_ARES>;
+			reset-names = "bus", "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 = <&iris_opp_table>;
+			iommus = <&apps_smmu 0x2100 0x400>;
+			memory-region = <&pil_video_mem>;
+
+			status = "disabled";
+
+			iris_opp_table: opp-table {
+				compatible = "operating-points-v2";
+
+				opp-240000000 {
+					opp-hz = /bits/ 64 <240000000>;
+					required-opps = <&rpmhpd_opp_svs>,
+							<&rpmhpd_opp_low_svs>;
+				};
+
+				opp-338000000 {
+					opp-hz = /bits/ 64 <338000000>;
+					required-opps = <&rpmhpd_opp_svs>,
+							<&rpmhpd_opp_svs>;
+				};
+
+				opp-366000000 {
+					opp-hz = /bits/ 64 <366000000>;
+					required-opps = <&rpmhpd_opp_svs_l1>,
+							<&rpmhpd_opp_svs_l1>;
+				};
+
+				opp-444000000 {
+					opp-hz = /bits/ 64 <444000000>;
+					required-opps = <&rpmhpd_opp_svs_l1>,
+							<&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] 16+ messages in thread

* [PATCH v4 6/6] arm64: dts: qcom: sm8350-hdk: enable Iris core
  2026-03-12 15:14 [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
                   ` (4 preceding siblings ...)
  2026-03-12 15:14 ` [PATCH v4 5/6] arm64: dts: qcom: sm8350: add Iris device Dmitry Baryshkov
@ 2026-03-12 15:14 ` Dmitry Baryshkov
  2026-03-13 12:30   ` Konrad Dybcio
  2026-03-27 16:46 ` [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Steev Klimaszewski
  6 siblings, 1 reply; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-12 15:14 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, Stanimir Varbanov
  Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
	Konrad Dybcio, Johan Hovold

Enable video en/decoder on the SM8350 HDK board. The firmware is not
(yet) a part of linux-firmware and needs to be extracted from Android
data.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
index 5f975d009465..055fc8ade85a 100644
--- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
@@ -472,6 +472,12 @@ lt9611_out: endpoint {
 	};
 };
 
+&iris {
+	firmware-name = "qcom/vpu/vpu20_p4_sm8350.mbn";
+
+	status = "okay";
+};
+
 &mdss {
 	status = "okay";
 };

-- 
2.47.3


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH v4 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris
  2026-03-12 15:14 ` [PATCH v4 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris Dmitry Baryshkov
@ 2026-03-13  7:55   ` Krzysztof Kozlowski
  2026-03-13  8:14     ` Dmitry Baryshkov
  0 siblings, 1 reply; 16+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-13  7:55 UTC (permalink / raw)
  To: Dmitry Baryshkov
  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, Stanimir Varbanov, linux-media, linux-arm-msm,
	devicetree, linux-kernel, Konrad Dybcio, Johan Hovold

On Thu, Mar 12, 2026 at 05:14:22PM +0200, Dmitry Baryshkov wrote:
> The Iris block on SM8350 and SC8280XP is compatible with the Iris
> (Venus) on SM8250. Document those two IP cores, using qcom,sm8250-venus
> as a fallback compatible.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
>  Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
> index 43a10d9f664e..3700f8fe91cc 100644
> --- a/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
> +++ b/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
> @@ -10,7 +10,7 @@ maintainers:
>    - Stanimir Varbanov <stanimir.varbanov@linaro.org>
>  
>  description: |
> -  The Venus IP is a video encode and decode accelerator present
> +  The Iris2 IP is a video encode and decode accelerator present

Why Venus name disappears? And why now this is Iris2, not Iris? It's the
first time such name is used. Just call it Venus/Iris if the new devices
renamed the block.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v4 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris
  2026-03-13  7:55   ` Krzysztof Kozlowski
@ 2026-03-13  8:14     ` Dmitry Baryshkov
  2026-03-13  8:25       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-13  8:14 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  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, Stanimir Varbanov, linux-media, linux-arm-msm,
	devicetree, linux-kernel, Konrad Dybcio, Johan Hovold

On Fri, Mar 13, 2026 at 08:55:00AM +0100, Krzysztof Kozlowski wrote:
> On Thu, Mar 12, 2026 at 05:14:22PM +0200, Dmitry Baryshkov wrote:
> > The Iris block on SM8350 and SC8280XP is compatible with the Iris
> > (Venus) on SM8250. Document those two IP cores, using qcom,sm8250-venus
> > as a fallback compatible.
> > 
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
> >  Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml | 10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
> > index 43a10d9f664e..3700f8fe91cc 100644
> > --- a/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
> > +++ b/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
> > @@ -10,7 +10,7 @@ maintainers:
> >    - Stanimir Varbanov <stanimir.varbanov@linaro.org>
> >  
> >  description: |
> > -  The Venus IP is a video encode and decode accelerator present
> > +  The Iris2 IP is a video encode and decode accelerator present
> 
> Why Venus name disappears? And why now this is Iris2, not Iris? It's the
> first time such name is used. Just call it Venus/Iris if the new devices
> renamed the block.

SM8150, SC8180X had Iris 1.xx. SM8250 and SC7280 have Iris 2.xx. But
when the bindings were written, it seems, it wasn't obvious (or
important enough). I will change this to Venus / Iris 2.xx

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v4 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris
  2026-03-13  8:14     ` Dmitry Baryshkov
@ 2026-03-13  8:25       ` Krzysztof Kozlowski
  2026-03-13 16:04         ` Dmitry Baryshkov
  0 siblings, 1 reply; 16+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-13  8:25 UTC (permalink / raw)
  To: Dmitry Baryshkov
  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, Stanimir Varbanov, linux-media, linux-arm-msm,
	devicetree, linux-kernel, Konrad Dybcio, Johan Hovold

On 13/03/2026 09:14, Dmitry Baryshkov wrote:
> On Fri, Mar 13, 2026 at 08:55:00AM +0100, Krzysztof Kozlowski wrote:
>> On Thu, Mar 12, 2026 at 05:14:22PM +0200, Dmitry Baryshkov wrote:
>>> The Iris block on SM8350 and SC8280XP is compatible with the Iris
>>> (Venus) on SM8250. Document those two IP cores, using qcom,sm8250-venus
>>> as a fallback compatible.
>>>
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>> ---
>>>  Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml | 10 ++++++++--
>>>  1 file changed, 8 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
>>> index 43a10d9f664e..3700f8fe91cc 100644
>>> --- a/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
>>> +++ b/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
>>> @@ -10,7 +10,7 @@ maintainers:
>>>    - Stanimir Varbanov <stanimir.varbanov@linaro.org>
>>>  
>>>  description: |
>>> -  The Venus IP is a video encode and decode accelerator present
>>> +  The Iris2 IP is a video encode and decode accelerator present
>>
>> Why Venus name disappears? And why now this is Iris2, not Iris? It's the
>> first time such name is used. Just call it Venus/Iris if the new devices
>> renamed the block.
> 
> SM8150, SC8180X had Iris 1.xx. SM8250 and SC7280 have Iris 2.xx. But
> when the bindings were written, it seems, it wasn't obvious (or
> important enough). I will change this to Venus / Iris 2.xx

Then "Iris v2.xx", how we call versions of blocks in all other cases.
The block is simply Iris, not Iris2, right?


Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v4 6/6] arm64: dts: qcom: sm8350-hdk: enable Iris core
  2026-03-12 15:14 ` [PATCH v4 6/6] arm64: dts: qcom: sm8350-hdk: enable Iris core Dmitry Baryshkov
@ 2026-03-13 12:30   ` Konrad Dybcio
  0 siblings, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-03-13 12:30 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, Stanimir Varbanov
  Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
	Johan Hovold

On 3/12/26 4:14 PM, Dmitry Baryshkov wrote:
> Enable video en/decoder on the SM8350 HDK board. The firmware is not
> (yet) a part of linux-firmware and needs to be extracted from Android
> data.
> 
> 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] 16+ messages in thread

* Re: [PATCH v4 3/6] arm64: dts: qcom: sc8280xp: Add Iris core
  2026-03-12 15:14 ` [PATCH v4 3/6] arm64: dts: qcom: sc8280xp: Add Iris core Dmitry Baryshkov
@ 2026-03-13 12:31   ` Konrad Dybcio
  0 siblings, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-03-13 12:31 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, Stanimir Varbanov
  Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
	Johan Hovold, Bryan O'Donoghue

On 3/12/26 4:14 PM, Dmitry Baryshkov wrote:
> From: Konrad Dybcio <konradybcio@kernel.org>
> 
> Add the required nodes to enable Iris core 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, corrected OPP table ]
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---


> +				opp-240000000 {
> +					opp-hz = /bits/ 64 <240000000>;
> +					required-opps = <&rpmhpd_opp_svs>,
> +							<&rpmhpd_opp_low_svs>;
> +				};
> +
> +				opp-338000000 {
> +					opp-hz = /bits/ 64 <338000000>;
> +					required-opps = <&rpmhpd_opp_svs>,
> +							<&rpmhpd_opp_svs>;
> +				};
> +
> +				opp-366000000 {
> +					opp-hz = /bits/ 64 <366000000>;
> +					required-opps = <&rpmhpd_opp_svs_l1>,
> +							<&rpmhpd_opp_svs_l1>;
> +				};
> +
> +				opp-444000000 {
> +					opp-hz = /bits/ 64 <444000000>;
> +					required-opps = <&rpmhpd_opp_svs_l1>,
> +							<&rpmhpd_opp_nom>;

Interesting differences.. but we talked about it last time and
I assume you got to the bottom of it

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v4 5/6] arm64: dts: qcom: sm8350: add Iris device
  2026-03-12 15:14 ` [PATCH v4 5/6] arm64: dts: qcom: sm8350: add Iris device Dmitry Baryshkov
@ 2026-03-13 12:32   ` Konrad Dybcio
  0 siblings, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-03-13 12:32 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, Stanimir Varbanov
  Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
	Johan Hovold

On 3/12/26 4:14 PM, Dmitry Baryshkov wrote:
> Add Iris and video clock controller devices, describing the Iris2 core
> present on this platform.
> 
> 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] 16+ messages in thread

* Re: [PATCH v4 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris
  2026-03-13  8:25       ` Krzysztof Kozlowski
@ 2026-03-13 16:04         ` Dmitry Baryshkov
  0 siblings, 0 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-13 16:04 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  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, Stanimir Varbanov, linux-media, linux-arm-msm,
	devicetree, linux-kernel, Konrad Dybcio, Johan Hovold

On Fri, Mar 13, 2026 at 09:25:14AM +0100, Krzysztof Kozlowski wrote:
> On 13/03/2026 09:14, Dmitry Baryshkov wrote:
> > On Fri, Mar 13, 2026 at 08:55:00AM +0100, Krzysztof Kozlowski wrote:
> >> On Thu, Mar 12, 2026 at 05:14:22PM +0200, Dmitry Baryshkov wrote:
> >>> The Iris block on SM8350 and SC8280XP is compatible with the Iris
> >>> (Venus) on SM8250. Document those two IP cores, using qcom,sm8250-venus
> >>> as a fallback compatible.
> >>>
> >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> >>> ---
> >>>  Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml | 10 ++++++++--
> >>>  1 file changed, 8 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
> >>> index 43a10d9f664e..3700f8fe91cc 100644
> >>> --- a/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
> >>> +++ b/Documentation/devicetree/bindings/media/qcom,sm8250-venus.yaml
> >>> @@ -10,7 +10,7 @@ maintainers:
> >>>    - Stanimir Varbanov <stanimir.varbanov@linaro.org>
> >>>  
> >>>  description: |
> >>> -  The Venus IP is a video encode and decode accelerator present
> >>> +  The Iris2 IP is a video encode and decode accelerator present
> >>
> >> Why Venus name disappears? And why now this is Iris2, not Iris? It's the
> >> first time such name is used. Just call it Venus/Iris if the new devices
> >> renamed the block.
> > 
> > SM8150, SC8180X had Iris 1.xx. SM8250 and SC7280 have Iris 2.xx. But
> > when the bindings were written, it seems, it wasn't obvious (or
> > important enough). I will change this to Venus / Iris 2.xx
> 
> Then "Iris v2.xx", how we call versions of blocks in all other cases.
> The block is simply Iris, not Iris2, right?

Ack.

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support
  2026-03-12 15:14 [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
                   ` (5 preceding siblings ...)
  2026-03-12 15:14 ` [PATCH v4 6/6] arm64: dts: qcom: sm8350-hdk: enable Iris core Dmitry Baryshkov
@ 2026-03-27 16:46 ` Steev Klimaszewski
  2026-03-27 21:09   ` Dmitry Baryshkov
  6 siblings, 1 reply; 16+ messages in thread
From: Steev Klimaszewski @ 2026-03-27 16:46 UTC (permalink / raw)
  To: dmitry.baryshkov
  Cc: abhinav.kumar, andersson, bod, bryan.odonoghue, conor+dt, david,
	devicetree, dikshita.agarwal, johan+linaro, konrad.dybcio,
	konradybcio, krzk+dt, linux-arm-msm, linux-kernel, linux-media,
	mchehab, robh, stanimir.varbanov, vikash.garodia

Hi Dmitry, all,

I've tested this on my Thinkpad X13s, after disabling venus module otherwise it
loads venus not iris.

In el2, the device seems to be /dev/video33

steev@finn:~$ v4l2-compliance -d 33
v4l2-compliance 1.32.0, 64 bits, 64-bit time_t

Compliance test for iris_driver device /dev/video33:

Driver Info:
	Driver name      : iris_driver
	Card type        : Iris Encoder
	Bus info         : platform:aa00000.video-codec
	Driver version   : 6.19.10
	Capabilities     : 0x84204000
		Video Memory-to-Memory Multiplanar
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps      : 0x04204000
		Video Memory-to-Memory Multiplanar
		Streaming
		Extended Pix Format
	Detected Stateful Encoder

Required ioctls:
	test VIDIOC_QUERYCAP: OK
	test invalid ioctls: OK

Allow for multiple opens:
	test second /dev/video33 open: OK
	test VIDIOC_QUERYCAP: OK
	test VIDIOC_G/S_PRIORITY: OK
	test for unlimited opens: OK

Debug ioctls:
	test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
	test VIDIOC_LOG_STATUS: OK (Not Supported)

Input ioctls:
	test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
	test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
	test VIDIOC_ENUMAUDIO: OK (Not Supported)
	test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
	test VIDIOC_G/S_AUDIO: OK (Not Supported)
	Inputs: 0 Audio Inputs: 0 Tuners: 0

Output ioctls:
	test VIDIOC_G/S_MODULATOR: OK (Not Supported)
	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
	test VIDIOC_ENUMAUDOUT: OK (Not Supported)
	test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
	test VIDIOC_G/S_AUDOUT: OK (Not Supported)
	Outputs: 0 Audio Outputs: 0 Modulators: 0

Input/Output configuration ioctls:
	test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
	test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
	test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
	test VIDIOC_G/S_EDID: OK (Not Supported)

Control ioctls:
	test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
	test VIDIOC_QUERYCTRL: OK
	test VIDIOC_G/S_CTRL: OK
	test VIDIOC_G/S/TRY_EXT_CTRLS: OK
	test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
	test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
	Standard Controls: 33 Private Controls: 0

Format ioctls:
	test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
	test VIDIOC_G/S_PARM: OK
	test VIDIOC_G_FBUF: OK (Not Supported)
	test VIDIOC_G_FMT: OK
	test VIDIOC_TRY_FMT: OK
	test VIDIOC_S_FMT: OK
	test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
	test Cropping: OK
	test Composing: OK (Not Supported)
	test Scaling: OK (Not Supported)

Codec ioctls:
	test VIDIOC_(TRY_)ENCODER_CMD: OK
	test VIDIOC_G_ENC_INDEX: OK (Not Supported)
	test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)

Buffer ioctls:
	test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
	test CREATE_BUFS maximum buffers: OK
	test VIDIOC_REMOVE_BUFS: OK
	test VIDIOC_EXPBUF: OK
	test Requests: OK (Not Supported)
	test blocking wait: OK

Total for iris_driver device /dev/video33: 48, Succeeded: 48, Failed: 0, Warnings: 0



In el1, the device becomes /dev/video0

steev@finn:~$ v4l2-compliance
v4l2-compliance 1.32.0, 64 bits, 64-bit time_t

Compliance test for iris_driver device /dev/video0:

Driver Info:
	Driver name      : iris_driver
	Card type        : Iris Decoder
	Bus info         : platform:aa00000.video-codec
	Driver version   : 6.19.10
	Capabilities     : 0x84204000
		Video Memory-to-Memory Multiplanar
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps      : 0x04204000
		Video Memory-to-Memory Multiplanar
		Streaming
		Extended Pix Format
	Detected Stateful Decoder

Required ioctls:
	test VIDIOC_QUERYCAP: OK
	test invalid ioctls: OK

Allow for multiple opens:
	test second /dev/video0 open: OK
	test VIDIOC_QUERYCAP: OK
	test VIDIOC_G/S_PRIORITY: OK
	test for unlimited opens: OK

Debug ioctls:
	test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
	test VIDIOC_LOG_STATUS: OK (Not Supported)

Input ioctls:
	test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
	test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
	test VIDIOC_ENUMAUDIO: OK (Not Supported)
	test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
	test VIDIOC_G/S_AUDIO: OK (Not Supported)
	Inputs: 0 Audio Inputs: 0 Tuners: 0

Output ioctls:
	test VIDIOC_G/S_MODULATOR: OK (Not Supported)
	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
	test VIDIOC_ENUMAUDOUT: OK (Not Supported)
	test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
	test VIDIOC_G/S_AUDOUT: OK (Not Supported)
	Outputs: 0 Audio Outputs: 0 Modulators: 0

Input/Output configuration ioctls:
	test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
	test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
	test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
	test VIDIOC_G/S_EDID: OK (Not Supported)

Control ioctls:
	test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
	test VIDIOC_QUERYCTRL: OK
	test VIDIOC_G/S_CTRL: OK
	test VIDIOC_G/S/TRY_EXT_CTRLS: OK
	test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
	test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
	Standard Controls: 2 Private Controls: 0

Format ioctls:
	test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
	test VIDIOC_G/S_PARM: OK (Not Supported)
	test VIDIOC_G_FBUF: OK (Not Supported)
	test VIDIOC_G_FMT: OK
	test VIDIOC_TRY_FMT: OK
	test VIDIOC_S_FMT: OK
	test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
	test Cropping: OK
	test Composing: OK
	test Scaling: OK (Not Supported)

Codec ioctls:
	test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
	test VIDIOC_G_ENC_INDEX: OK (Not Supported)
	test VIDIOC_(TRY_)DECODER_CMD: OK

Buffer ioctls:
	test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
	test CREATE_BUFS maximum buffers: OK
	test VIDIOC_REMOVE_BUFS: OK
	test VIDIOC_EXPBUF: OK
	test Requests: OK (Not Supported)
	test blocking wait: OK

Total for iris_driver device /dev/video0: 48, Succeeded: 48, Failed: 0, Warnings: 0


So the compliance tests pass in both el1 and el2, however, if I attempt to play
a video in totem, and then skip forward in it some random amount of time, totem
freezes and I get the following splat:

[  143.388380] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0xd516d400, fsynr=0x600002, cbfrsynra=0x2a00, cb=6
[  143.388390] arm-smmu 15000000.iommu: FSR    = 00000402 [Format=2 TF], SID=0x2a00
[  143.388392] arm-smmu 15000000.iommu: FSYNR0 = 00600002 [S1CBNDX=96 PLVL=2]
[  143.388423] qcom-iris aa00000.video-codec: sys error (type: 1, session id:ff, data1:1, data2:deadbead)
[  145.913827] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
[  146.945692] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
[  147.969651] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
[  147.969693] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
[  147.970493] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
[  148.993683] ------------[ cut here ]------------
[  148.993695] WARNING: drivers/media/common/videobuf2/videobuf2-core.c:1827 at vb2_start_streaming+0xe0/0x17c [videobuf2_common], CPU#3: totem/7330
[  148.993727] Modules linked in: michael_mic uhid
[  148.993732] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
[  148.993736]  algif_hash
[  148.993739]  algif_skcipher af_alg snd_soc_wsa883x q6prm_clocks q6apm_lpass_dais q6apm_dai snd_q6dsp_common q6prm overlay zram lz4hc_compress zsmalloc lz4_compress binfmt_misc qrtr_mhi ath11k_pci ath11k mac80211 libarc4 sha256 cfg80211 mhi hci_uart btqca btbcm bluetooth ecdh_generic ecc rfkill qcom_spmi_temp_alarm snd_soc_sc8280xp lenovo_thinkpad_t14s snd_soc_qcom_sdw snd_soc_qcom_common sparse_keymap qcom_spmi_adc_tm5 qcom_spmi_adc5 qcom_vadc_common ov5675 snd_soc_hdmi_codec qcom_camss qcom_iris videobuf2_dma_contig videobuf2_dma_sg v4l2_mem2mem snd_soc_wcd938x videobuf2_memops videobuf2_v4l2 v4l2_fwnode videobuf2_common v4l2_async snd_soc_lpass_rx_macro snd_soc_lpass_tx_macro snd_soc_lpass_wsa_macro snd_soc_lpass_va_macro snd_soc_wcd938x_sdw regmap_sdw snd_soc_wcd_mbhc videodev snd_soc_wcd_common soundwire_qcom snd_q6apm snd_soc_wcd_classh snd_soc_lpass_macro_common mc snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm fastrpc slimbus pci_pwrctrl_pwrseq snd_timer qcom_rng snd soundcore soundwire_bus fuse nfnetlink
[  148.993936]  ipv6 btrfs xor xor_neon raid6_pq zstd_compress panel_edp hid_multitouch qcom_pm8008_regulator nvme ucsi_glink pmic_glink_altmode qcom_battmgr aux_hpd_bridge typec_ucsi nvme_core qcom_pm8008 i2c_hid_of_elan i2c_hid_of rpmsg_ctrl apr i2c_hid rpmsg_char qrtr_smd qcom_pd_mapper msm ubwc_config ocmem drm_gpuvm drm_exec gpu_sched drm_display_helper phy_qcom_qmp_combo cec leds_qcom_lpg aux_bridge drm_dp_aux_bus led_class_multicolor qcom_pbs rtc_pm8xxx qcom_pon qcom_stats dispcc_sc8280xp drm_client_lib phy_qcom_edp camcc_sc8280xp i2c_qcom_cci i2c_qcom_geni drm_kms_helper phy_qcom_qmp_usb qcom_refgen_regulator videocc_sm8350 llcc_qcom drm icc_bwmon phy_qcom_snps_femto_v2 gpi gpucc_sc8280xp qrtr qcom_q6v5_pas qcom_pil_info qcom_common qcom_glink_smem lpasscc_sc8280xp pinctrl_sc8280xp_lpass_lpi pinctrl_lpass_lpi qcom_q6v5 pmic_glink qcom_sysmon gpio_sbu_mux phy_qcom_qmp_pcie mdt_loader pdr_interface qcom_wdt icc_osm_l3 qcom_pdr_msg pwrseq_qcom_wcn typec qmi_helpers pwrseq_core socinfo pwm_bl backlight
[  148.994147] CPU: 3 UID: 1000 PID: 7330 Comm: totem Not tainted 6.19.10 #2 PREEMPT
[  148.994155] Hardware name: LENOVO 21BX0015US/21BX0015US, BIOS N3HET94W (1.66 ) 09/15/2025
[  148.994160] pstate: 80401005 (Nzcv daif +PAN -UAO -TCO -DIT +SSBS BTYPE=--)
[  148.994166] pc : vb2_start_streaming+0xe0/0x17c [videobuf2_common]
[  148.994178] lr : vb2_start_streaming+0x70/0x17c [videobuf2_common]
[  148.994187] sp : ffff80009b95bb70
[  148.994191] x29: ffff80009b95bb70 x28: 0000000000000001 x27: ffff80009b95bce8
[  148.994201] x26: 0000000000000000 x25: 0000000000000000 x24: ffffd3da9782e138
[  148.994211] x23: ffff0000902f5cc0 x22: 0000000040045612 x21: ffff0000f7ada910
[  148.994219] x20: ffff0000f7ada928 x19: 00000000fffffff0 x18: 0000000000000000
[  148.994228] x17: 0000000000000000 x16: ffffd3daf7056f00 x15: 0000ffff1802f330
[  148.994237] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
[  148.994246] x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000035
[  148.994255] x8 : ffff80009b95bd68 x7 : ffffd3da976bafc0 x6 : 0000000000000012
[  148.994263] x5 : ffff0000f7ada948 x4 : 0000000000000000 x3 : 0000000000000005
[  148.994272] x2 : ffff0000c1b82080 x1 : ffff0000c1b82080 x0 : ffff000084517a30
[  148.994282] Call trace:
[  148.994285]  vb2_start_streaming+0xe0/0x17c [videobuf2_common] (P)
[  148.994298]  vb2_core_streamon+0xd8/0x1bc [videobuf2_common]
[  148.994308]  vb2_streamon+0x18/0x60 [videobuf2_v4l2]
[  148.994318]  v4l2_m2m_ioctl_streamon+0x5c/0xa0 [v4l2_mem2mem]
[  148.994330]  v4l_streamon+0x24/0x30 [videodev]
[  148.994362]  __video_do_ioctl+0x340/0x3ec [videodev]
[  148.994389]  video_usercopy+0x2b0/0x74c [videodev]
[  148.994415]  video_ioctl2+0x18/0x34 [videodev]
[  148.994441]  v4l2_ioctl+0x40/0x60 [videodev]
[  148.994467]  __arm64_sys_ioctl+0xa4/0xf4
[  148.994480]  invoke_syscall.constprop.0+0x40/0xf0
[  148.994495]  el0_svc_common.constprop.0+0x38/0xd8
[  148.994504]  do_el0_svc+0x1c/0x28
[  148.994513]  el0_svc+0x34/0x104
[  148.994525]  el0t_64_sync_handler+0xa0/0xe4
[  148.994534]  el0t_64_sync+0x198/0x19c
[  148.994543] ---[ end trace 0000000000000000 ]---


This is much better than the previous venus patchset where accessing the
hardware decoding would cause the machine to hard reset at least!


-- steev

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support
  2026-03-27 16:46 ` [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Steev Klimaszewski
@ 2026-03-27 21:09   ` Dmitry Baryshkov
  0 siblings, 0 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-27 21:09 UTC (permalink / raw)
  To: Steev Klimaszewski
  Cc: abhinav.kumar, andersson, bod, bryan.odonoghue, conor+dt, david,
	devicetree, dikshita.agarwal, johan+linaro, konrad.dybcio,
	konradybcio, krzk+dt, linux-arm-msm, linux-kernel, linux-media,
	mchehab, robh, stanimir.varbanov, vikash.garodia

On Fri, Mar 27, 2026 at 11:46:51AM -0500, Steev Klimaszewski wrote:
> Hi Dmitry, all,
> 
> I've tested this on my Thinkpad X13s, after disabling venus module otherwise it
> loads venus not iris.

Venus with the SM8250-related fixes should probably work too. Anyway, I
hope that the series switching SM8250 / SC7280 from Venus to Iris will
finally land...

> 
> So the compliance tests pass in both el1 and el2, however, if I attempt to play
> a video in totem, and then skip forward in it some random amount of time, totem
> freezes and I get the following splat:

Thanks for the additional testing!

This might be:
- A bug in the firmware
- A bug in the Gen1 support in the Iris driver.
- A bug in totem (heh).

Would you mind sharing details, which video were you trying to play (at
least, the codec that it used, please).

Also, does it kill the playback afterwards? Can you start another
playing stream afterwards?

> [  143.388380] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0xd516d400, fsynr=0x600002, cbfrsynra=0x2a00, cb=6
> [  143.388390] arm-smmu 15000000.iommu: FSR    = 00000402 [Format=2 TF], SID=0x2a00
> [  143.388392] arm-smmu 15000000.iommu: FSYNR0 = 00600002 [S1CBNDX=96 PLVL=2]
> [  143.388423] qcom-iris aa00000.video-codec: sys error (type: 1, session id:ff, data1:1, data2:deadbead)
> [  145.913827] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
> [  146.945692] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
> [  147.969651] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
> [  147.969693] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
> [  147.970493] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
> [  148.993683] ------------[ cut here ]------------
> [  148.993695] WARNING: drivers/media/common/videobuf2/videobuf2-core.c:1827 at vb2_start_streaming+0xe0/0x17c [videobuf2_common], CPU#3: totem/7330

And this points out an error in the Iris driver. Quoting the comment:

        /*
         * If done_list is not empty, then start_streaming() didn't call
         * vb2_buffer_done(vb, VB2_BUF_STATE_QUEUED) but STATE_ERROR or
         * STATE_DONE.
         */

Dikshita, Vikash, would you mind checking it out?

> [  148.993727] Modules linked in: michael_mic uhid
> [  148.993732] qcom-iris aa00000.video-codec: session error for command: 0, event id:1004, session id:e39bc002
> [  148.994543] ---[ end trace 0000000000000000 ]---
> 
> 
> This is much better than the previous venus patchset where accessing the
> hardware decoding would cause the machine to hard reset at least!

:-)

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2026-03-27 21:09 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-12 15:14 [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
2026-03-12 15:14 ` [PATCH v4 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris Dmitry Baryshkov
2026-03-13  7:55   ` Krzysztof Kozlowski
2026-03-13  8:14     ` Dmitry Baryshkov
2026-03-13  8:25       ` Krzysztof Kozlowski
2026-03-13 16:04         ` Dmitry Baryshkov
2026-03-12 15:14 ` [PATCH v4 2/6] arm64: dts: qcom: sc8280xp: sort reserved memory regions Dmitry Baryshkov
2026-03-12 15:14 ` [PATCH v4 3/6] arm64: dts: qcom: sc8280xp: Add Iris core Dmitry Baryshkov
2026-03-13 12:31   ` Konrad Dybcio
2026-03-12 15:14 ` [PATCH v4 4/6] arm64: dts: qcom: sc8280xp-x13s: Enable Iris Dmitry Baryshkov
2026-03-12 15:14 ` [PATCH v4 5/6] arm64: dts: qcom: sm8350: add Iris device Dmitry Baryshkov
2026-03-13 12:32   ` Konrad Dybcio
2026-03-12 15:14 ` [PATCH v4 6/6] arm64: dts: qcom: sm8350-hdk: enable Iris core Dmitry Baryshkov
2026-03-13 12:30   ` Konrad Dybcio
2026-03-27 16:46 ` [PATCH v4 0/6] media: iris: enable SM8350 and SC8280XP support Steev Klimaszewski
2026-03-27 21:09   ` Dmitry Baryshkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox