Linux Media Controller development
 help / color / mirror / Atom feed
* [PATCH 0/4] media: iris: bring up driver on SM6115-based platforms
@ 2026-05-07  7:08 Dmitry Baryshkov
  2026-05-07  7:08 ` [PATCH 1/4] clk: qcom: gcc-sm6115: Set HW_CTRL_TRIGGER for video GDSC Dmitry Baryshkov
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Dmitry Baryshkov @ 2026-05-07  7:08 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Vikash Garodia,
	Dikshita Agarwal, Bryan O'Donoghue, Mauro Carvalho Chehab,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jorge Ramirez-Ortiz, Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, linux-kernel, linux-media, devicetree

The SM6115 / SM4250 / QRB4210 platforms use the AR50_LITE IP core as the
video en/decoder (the same as Agatti platform). Extend Iris driver to
support this platform. This has been tested on the Qualcomm RB2 board
with the normal HFI Gen1 firmware. HFI Gen2 firmware for AR50Lt doesn't
work yet on SM6115.

V4L2 compliance for Encoder fails due to firmware / driver error:
 qcom-iris 5a00000.video-codec: session error for command: 3007001, event id:1007, session id:d3b1e000

debian@debian:~$ v4l2-compliance -d /dev/video0
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:5a00000.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

debian@debian:~$ v4l2-compliance -d /dev/video1
v4l2-compliance 1.30.1, 64 bits, 64-bit time_t

Compliance test for iris_driver device /dev/video1:

Driver Info:
        Driver name      : iris_driver
        Card type        : Iris Encoder
        Bus info         : platform:5a00000.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 Encoder

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

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

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

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

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

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

Control ioctls:
        test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
        test VIDIOC_QUERYCTRL: OK
        test VIDIOC_G/S_CTRL: OK
        test VIDIOC_G/S/TRY_EXT_CTRLS: OK
        test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
        test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
        Standard Controls: 18 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)
                fail: v4l2-test-buffers.cpp(3101): thread_dqbuf.done
                fail: v4l2-test-buffers.cpp(3139): testBlockingDQBuf(node, q)
        test blocking wait: FAIL

Total for iris_driver device /dev/video1: 48, Succeeded: 47, Failed: 1, Warnings: 0
debian@debian:~$ 

Summary of the main fluster testsuites:

|Test|FFmpeg-H.264-v4l2m2m|GStreamer-H.264-V4L2|
|-|-|-|
|TOTAL|77/135|78/135|
|NOT SUPPORTED|0/135|0/135|
|FAIL/ERROR|58/135|57/135|
|TOTAL TIME|217.707s|100.952s|

|Test|FFmpeg-H.265-v4l2m2m|GStreamer-H.265-V4L2|
|-|-|-|
|TOTAL|123/147|128/147|
|NOT SUPPORTED|0/147|0/147|
|FAIL/ERROR|24/147|19/147|
|TOTAL TIME|213.377s|173.100s|

|Test|FFmpeg-VP9-v4l2m2m|GStreamer-VP9-V4L2|
|-|-|-|
|TOTAL|156/305|112/305|
|NOT SUPPORTED|0/305|0/305|
|FAIL/ERROR|149/305|193/305|
|TOTAL TIME|291.249s|174.203s|

Detailed test results can be seen at [1].

[1] https://github.com/linux-msm/fluster-tests/blob/trunk/iris-sm6115.md

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Dmitry Baryshkov (4):
      clk: qcom: gcc-sm6115: Set HW_CTRL_TRIGGER for video GDSC
      media: dt-bindings: qcom,qcm2290-venus: add Venus on SM6115
      arm64: dts: qcom: sm6115: add venus device
      arm64: dts: qcom: qrb4210-rb2: enable venus device

 .../bindings/media/qcom,qcm2290-venus.yaml         |  6 +-
 arch/arm64/boot/dts/qcom/qrb4210-rb2.dts           |  6 ++
 arch/arm64/boot/dts/qcom/sm6115.dtsi               | 65 ++++++++++++++++++++++
 drivers/clk/qcom/gcc-sm6115.c                      |  1 +
 4 files changed, 77 insertions(+), 1 deletion(-)
---
base-commit: bee6ea30c48788e18348309f891ed8afbf7702ac
change-id: 20260507-iris-sm6115-38e93e82f306
prerequisite-message-id: 20260209-iris-venus-fix-sm8250-v5-0-0a22365d3585@oss.qualcomm.com
prerequisite-patch-id: 8948139735836adb9fbc51d93b969911dc5b38e8
prerequisite-patch-id: 7ec91bd0149f347c479c906e73cabaa28601ab3d
prerequisite-patch-id: c711522b63f640b7504767b3af7adc05a0b36cac
prerequisite-patch-id: 42b9cd5e0fd6fd99eae267c78b239333adff7637
prerequisite-patch-id: 11c487545e2462ff0a515d689863c3f7f25f9449
prerequisite-message-id: 20260327-venus-iris-flip-switch-v5-0-2f4b6c636927@oss.qualcomm.com
prerequisite-patch-id: 579d712ec3f942ba0c362e242c71361c151092b5
prerequisite-patch-id: fa4629a3909fbae3917d8c067cce4f673ee857c0
prerequisite-patch-id: cbbd40736f7a797ff76b0fe2b1ddfb559e14e666
prerequisite-patch-id: 5b50917dcfef01db13af320cbd1cba15fd5fa16f
prerequisite-message-id: 20260507-iris-ubwc-v5-0-e9a3aee53c49@oss.qualcomm.com
prerequisite-patch-id: af2ff44a7b919da2ee06cc40893fbcd3f65d32f7
prerequisite-patch-id: f3a2b9ef97be3fa250ea0a6467b2d5a782315aa5
prerequisite-patch-id: 6bdd2119448e84aacbdc6a54d999d47fc69dac81
prerequisite-patch-id: 38cc9502c93c71324f1a11a1fd438374fc41ca84
prerequisite-patch-id: 059d1f35274246575ca4fa9b4ee33cd4801479d1
prerequisite-patch-id: 1cf4ea774a145cdba617eb8be5c1f7afe5817772
prerequisite-patch-id: 46375dcd0da4629e6031336351b9cf688691d7c5
prerequisite-message-id: 20260329-iris-platform-data-v11-0-eea672b03a95@oss.qualcomm.com
prerequisite-patch-id: 34d473ba50399f8cfaf583f4def12de776aad65d
prerequisite-patch-id: 5a6a2b41c9312687512db5d12bac95114b8d8719
prerequisite-patch-id: e6ec4cd9eb5e93f3443f5f496a1b990a95b5d96d
prerequisite-patch-id: 4be4bbb454444d6f314c2b6ad6a73290184e6d57
prerequisite-patch-id: fd9cd7882f2a8f1b6141f48ff5c3da708839d03f
prerequisite-patch-id: 952471fa5477280d399978c05fbc9bfe6d2d33b0
prerequisite-patch-id: 01c5b37358de833f85de1954f770fe0489818a16
prerequisite-patch-id: dd14b47d6cd8ff14d1bc78c187c061f6fe262fda
prerequisite-patch-id: f4eba0865e7f91bce3fb4b2c627ee123980e0ff9
prerequisite-patch-id: 72984784b916e2d94ede8ab7d52cc0dedfa37c41
prerequisite-patch-id: 2fabf4e36b4e4f74b27fe75133ab8ba0ec9b6e3d
prerequisite-message-id: 20260330-iris-remote-fmts-v3-1-a26ab9e90101@oss.qualcomm.com
prerequisite-patch-id: aab511a6975936fb0198697fca7b61cc2277e1b4
prerequisite-change-id: 20260429-kodiak-gen2-support-v4-a7f055f15afb:v4
prerequisite-patch-id: d4f40aee0948578a4195456554ba88c228d5bf7f
prerequisite-patch-id: 38d706b45998b7b5fbf90e27ecf9c856354f5a23
prerequisite-patch-id: 16ea0271e2c2c708c1ad1ba3490f4b05fc04173d
prerequisite-change-id: 20260507-iris-ar50lt-06228469aa5b:v1
prerequisite-patch-id: 8948139735836adb9fbc51d93b969911dc5b38e8
prerequisite-patch-id: 7ec91bd0149f347c479c906e73cabaa28601ab3d
prerequisite-patch-id: c711522b63f640b7504767b3af7adc05a0b36cac
prerequisite-patch-id: 42b9cd5e0fd6fd99eae267c78b239333adff7637
prerequisite-patch-id: 11c487545e2462ff0a515d689863c3f7f25f9449
prerequisite-patch-id: 579d712ec3f942ba0c362e242c71361c151092b5
prerequisite-patch-id: fa4629a3909fbae3917d8c067cce4f673ee857c0
prerequisite-patch-id: cbbd40736f7a797ff76b0fe2b1ddfb559e14e666
prerequisite-patch-id: 5b50917dcfef01db13af320cbd1cba15fd5fa16f
prerequisite-patch-id: af2ff44a7b919da2ee06cc40893fbcd3f65d32f7
prerequisite-patch-id: f3a2b9ef97be3fa250ea0a6467b2d5a782315aa5
prerequisite-patch-id: 6bdd2119448e84aacbdc6a54d999d47fc69dac81
prerequisite-patch-id: 38cc9502c93c71324f1a11a1fd438374fc41ca84
prerequisite-patch-id: 059d1f35274246575ca4fa9b4ee33cd4801479d1
prerequisite-patch-id: 1cf4ea774a145cdba617eb8be5c1f7afe5817772
prerequisite-patch-id: 46375dcd0da4629e6031336351b9cf688691d7c5
prerequisite-patch-id: 34d473ba50399f8cfaf583f4def12de776aad65d
prerequisite-patch-id: 5a6a2b41c9312687512db5d12bac95114b8d8719
prerequisite-patch-id: e6ec4cd9eb5e93f3443f5f496a1b990a95b5d96d
prerequisite-patch-id: 4be4bbb454444d6f314c2b6ad6a73290184e6d57
prerequisite-patch-id: fd9cd7882f2a8f1b6141f48ff5c3da708839d03f
prerequisite-patch-id: 952471fa5477280d399978c05fbc9bfe6d2d33b0
prerequisite-patch-id: 01c5b37358de833f85de1954f770fe0489818a16
prerequisite-patch-id: dd14b47d6cd8ff14d1bc78c187c061f6fe262fda
prerequisite-patch-id: f4eba0865e7f91bce3fb4b2c627ee123980e0ff9
prerequisite-patch-id: 72984784b916e2d94ede8ab7d52cc0dedfa37c41
prerequisite-patch-id: 2fabf4e36b4e4f74b27fe75133ab8ba0ec9b6e3d
prerequisite-patch-id: ac7f4d5dfb5cfec475ac4f3dee8f26077b5d1ab6
prerequisite-patch-id: aab511a6975936fb0198697fca7b61cc2277e1b4
prerequisite-patch-id: d4f40aee0948578a4195456554ba88c228d5bf7f
prerequisite-patch-id: 38d706b45998b7b5fbf90e27ecf9c856354f5a23
prerequisite-patch-id: 16ea0271e2c2c708c1ad1ba3490f4b05fc04173d
prerequisite-patch-id: 802e2fd82c6cde3f860dff25465ce427a5e372ee
prerequisite-patch-id: 5a801f4a572dd3cac2bbbc2fbbaf34798c7bdf90
prerequisite-patch-id: da49d9e31a33f6508631cb7cabc5eb460c60668b
prerequisite-patch-id: 61316d5846c9aa27a6c4d2fa6462e4f8956f4a92
prerequisite-patch-id: e669517302297a7b315c9aa4f4189e4928091e0c
prerequisite-patch-id: a8a4e7d218a2814ba7b0595adf03e1487e6cbfe8
prerequisite-patch-id: e62e8285bcbddade64c026379f23a8c5ae70fe52
prerequisite-patch-id: cac29b25348e2e791638a0286283109f2546f9a7
prerequisite-patch-id: 83ec9808a31cd12904392ee82595ff9e55db0aac
prerequisite-patch-id: 4189f1db8177bbf9672bb99ea35131a7fb0fbc42
prerequisite-patch-id: 31698727bfb6697f8c09f47466582b681018065d
prerequisite-patch-id: 76eafea8230160a3b5e6503c68a5c9c3c2d1497e
prerequisite-patch-id: dfbcddd8abce8558864de071bf37073e78b1a643
prerequisite-patch-id: 26e9083b709cc8f2f1184edf6b39fb89f365a9f1
prerequisite-patch-id: b5aee209067d60123300ade2e555975c24adcb51
prerequisite-patch-id: f8b57f5a724b39a5672e1c726fe396a68efb0c7a
prerequisite-patch-id: 38b41114068834c1349b6a2c42c5e393ffe7106c
prerequisite-patch-id: 5ec127361f2601a93dee37a889e51f7701263c56
prerequisite-patch-id: 3be6e30ff0d73ce59ccf492bea75d86bc4cf30eb
prerequisite-patch-id: 956360c70f908756f49cf95b3affd14ce6eb34b4

Best regards,
--  
With best wishes
Dmitry


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

* [PATCH 1/4] clk: qcom: gcc-sm6115: Set HW_CTRL_TRIGGER for video GDSC
  2026-05-07  7:08 [PATCH 0/4] media: iris: bring up driver on SM6115-based platforms Dmitry Baryshkov
@ 2026-05-07  7:08 ` Dmitry Baryshkov
  2026-05-07  8:01   ` Konrad Dybcio
  2026-05-07  7:08 ` [PATCH 2/4] media: dt-bindings: qcom,qcm2290-venus: add Venus on SM6115 Dmitry Baryshkov
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Dmitry Baryshkov @ 2026-05-07  7:08 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Vikash Garodia,
	Dikshita Agarwal, Bryan O'Donoghue, Mauro Carvalho Chehab,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jorge Ramirez-Ortiz, Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, linux-kernel, linux-media, devicetree

The venus video driver will uses dev_pm_genpd_set_hwmode() API to switch
the video GDSC to HW and SW control modes at runtime. This requires domain
to have the HW_CTRL_TRIGGER flag.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 drivers/clk/qcom/gcc-sm6115.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/clk/qcom/gcc-sm6115.c b/drivers/clk/qcom/gcc-sm6115.c
index 4c3804701e24..c5251aff9886 100644
--- a/drivers/clk/qcom/gcc-sm6115.c
+++ b/drivers/clk/qcom/gcc-sm6115.c
@@ -3218,6 +3218,7 @@ static struct gdsc gcc_vcodec0_gdsc = {
 	.pd = {
 		.name = "gcc_vcodec0",
 	},
+	.flags = HW_CTRL_TRIGGER,
 	.pwrsts = PWRSTS_OFF_ON,
 };
 

-- 
2.47.3


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

* [PATCH 2/4] media: dt-bindings: qcom,qcm2290-venus: add Venus on SM6115
  2026-05-07  7:08 [PATCH 0/4] media: iris: bring up driver on SM6115-based platforms Dmitry Baryshkov
  2026-05-07  7:08 ` [PATCH 1/4] clk: qcom: gcc-sm6115: Set HW_CTRL_TRIGGER for video GDSC Dmitry Baryshkov
@ 2026-05-07  7:08 ` Dmitry Baryshkov
  2026-05-07  7:08 ` [PATCH 3/4] arm64: dts: qcom: sm6115: add venus device Dmitry Baryshkov
  2026-05-07  7:08 ` [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: enable " Dmitry Baryshkov
  3 siblings, 0 replies; 8+ messages in thread
From: Dmitry Baryshkov @ 2026-05-07  7:08 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Vikash Garodia,
	Dikshita Agarwal, Bryan O'Donoghue, Mauro Carvalho Chehab,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jorge Ramirez-Ortiz, Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, linux-kernel, linux-media, devicetree

The Qualcomm SM6115 platform contains the AR50_Lite core similar to the
one found on the QCM2290. Define new platform-specific compatible, while
using QCM2290 as a fallback.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml b/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml
index 7e6dc410c2d2..5c5933082f82 100644
--- a/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml
+++ b/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml
@@ -18,7 +18,11 @@ allOf:
 
 properties:
   compatible:
-    const: qcom,qcm2290-venus
+    oneOf:
+      - items:
+        - const: qcom,sm6115-venus
+        - const: qcom,qcm2290-venus
+      - const: qcom,sm6115-venus
 
   power-domains:
     maxItems: 3

-- 
2.47.3


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

* [PATCH 3/4] arm64: dts: qcom: sm6115: add venus device
  2026-05-07  7:08 [PATCH 0/4] media: iris: bring up driver on SM6115-based platforms Dmitry Baryshkov
  2026-05-07  7:08 ` [PATCH 1/4] clk: qcom: gcc-sm6115: Set HW_CTRL_TRIGGER for video GDSC Dmitry Baryshkov
  2026-05-07  7:08 ` [PATCH 2/4] media: dt-bindings: qcom,qcm2290-venus: add Venus on SM6115 Dmitry Baryshkov
@ 2026-05-07  7:08 ` Dmitry Baryshkov
  2026-05-08 10:57   ` Konrad Dybcio
  2026-05-07  7:08 ` [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: enable " Dmitry Baryshkov
  3 siblings, 1 reply; 8+ messages in thread
From: Dmitry Baryshkov @ 2026-05-07  7:08 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Vikash Garodia,
	Dikshita Agarwal, Bryan O'Donoghue, Mauro Carvalho Chehab,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jorge Ramirez-Ortiz, Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, linux-kernel, linux-media, devicetree

Define the video en/decoding device present on the SM6115 platform. The
core, AR50LT, is mostly compatible with the one present on the Agatti
devices, so it uses qcom,qcm2290-venus as a fallback.

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

diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi
index bd94eb87d6f9..3520802d1fed 100644
--- a/arch/arm64/boot/dts/qcom/sm6115.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi
@@ -1853,6 +1853,71 @@ adreno_smmu: iommu@59a0000 {
 			#iommu-cells = <2>;
 		};
 
+		venus: video-codec@5a00000 {
+			compatible = "qcom,sm6115-venus",
+				     "qcom,qcm2290-venus";
+			reg = <0x0 0x5a00000 0x0 0xf0000>;
+			interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
+
+			power-domains = <&gcc GCC_VENUS_GDSC>,
+					<&gcc GCC_VCODEC0_GDSC>,
+					<&rpmpd SM6115_VDDCX>;
+			power-domain-names = "venus",
+					     "vcodec0",
+					     "cx";
+			operating-points-v2 = <&venus_opp_table>;
+
+			clocks = <&gcc GCC_VIDEO_VENUS_CTL_CLK>,
+				 <&gcc GCC_VIDEO_AHB_CLK>,
+				 <&gcc GCC_VENUS_CTL_AXI_CLK>,
+				 <&gcc GCC_VIDEO_THROTTLE_CORE_CLK>,
+				 <&gcc GCC_VIDEO_VCODEC0_SYS_CLK>,
+				 <&gcc GCC_VCODEC0_AXI_CLK>;
+			clock-names = "core",
+				      "iface",
+				      "bus",
+				      "throttle",
+				      "vcodec0_core",
+				      "vcodec0_bus";
+
+			memory-region = <&pil_video_mem>;
+			iommus = <&apps_smmu 0x860 0x0>,
+				 <&apps_smmu 0x880 0x0>;
+
+			interconnects = <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG
+					 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
+					<&bimc MASTER_AMPSS_M0 RPM_ACTIVE_TAG
+					 &config_noc SLAVE_VENUS_CFG RPM_ACTIVE_TAG>;
+			interconnect-names = "video-mem",
+					     "cpu-cfg";
+
+			status = "disabled";
+
+			venus_opp_table: opp-table {
+				compatible = "operating-points-v2";
+
+				opp-133333333 {
+					opp-hz = /bits/ 64 <133333333>;
+					required-opps = <&rpmpd_opp_low_svs>;
+				};
+
+				opp-240000000 {
+					opp-hz = /bits/ 64 <240000000>;
+					required-opps = <&rpmpd_opp_svs>;
+				};
+
+				opp-300000000 {
+					opp-hz = /bits/ 64 <300000000>;
+					required-opps = <&rpmpd_opp_svs_plus>;
+				};
+
+				opp-384000000 {
+					opp-hz = /bits/ 64 <384000000>;
+					required-opps = <&rpmpd_opp_nom>;
+				};
+			};
+		};
+
 		mdss: display-subsystem@5e00000 {
 			compatible = "qcom,sm6115-mdss";
 			reg = <0x0 0x05e00000 0x0 0x1000>;

-- 
2.47.3


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

* [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: enable venus device
  2026-05-07  7:08 [PATCH 0/4] media: iris: bring up driver on SM6115-based platforms Dmitry Baryshkov
                   ` (2 preceding siblings ...)
  2026-05-07  7:08 ` [PATCH 3/4] arm64: dts: qcom: sm6115: add venus device Dmitry Baryshkov
@ 2026-05-07  7:08 ` Dmitry Baryshkov
  2026-05-08 10:59   ` Konrad Dybcio
  3 siblings, 1 reply; 8+ messages in thread
From: Dmitry Baryshkov @ 2026-05-07  7:08 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Vikash Garodia,
	Dikshita Agarwal, Bryan O'Donoghue, Mauro Carvalho Chehab,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jorge Ramirez-Ortiz, Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, linux-kernel, linux-media, devicetree

Enable the Venus en/decoding device on the Qualcomm RB2 board. The HFI
Gen2 firmware for AR50Lt platforms doesn't work on RB2, so fix the
firmware in the DT for now.

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

diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
index 1203172729fa..a6236b09cdbd 100644
--- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
+++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
@@ -739,6 +739,12 @@ &usb_qmpphy_out {
 	remote-endpoint = <&pmi632_ss_in>;
 };
 
+&venus {
+	firmware-name = "qcom/venus-6.0/venus.mbn";
+
+	status = "okay";
+};
+
 &wifi {
 	/* SoC */
 	vdd-0.8-cx-mx-supply = <&vreg_l8a_0p664>;

-- 
2.47.3


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

* Re: [PATCH 1/4] clk: qcom: gcc-sm6115: Set HW_CTRL_TRIGGER for video GDSC
  2026-05-07  7:08 ` [PATCH 1/4] clk: qcom: gcc-sm6115: Set HW_CTRL_TRIGGER for video GDSC Dmitry Baryshkov
@ 2026-05-07  8:01   ` Konrad Dybcio
  0 siblings, 0 replies; 8+ messages in thread
From: Konrad Dybcio @ 2026-05-07  8:01 UTC (permalink / raw)
  To: Dmitry Baryshkov, Bjorn Andersson, Michael Turquette,
	Stephen Boyd, Vikash Garodia, Dikshita Agarwal,
	Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Jorge Ramirez-Ortiz,
	Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, linux-kernel, linux-media, devicetree

On 5/7/26 9:08 AM, Dmitry Baryshkov wrote:
> The venus video driver will uses dev_pm_genpd_set_hwmode() API to switch
> the video GDSC to HW and SW control modes at runtime. This requires domain
> to have the HW_CTRL_TRIGGER flag.
> 
> 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] 8+ messages in thread

* Re: [PATCH 3/4] arm64: dts: qcom: sm6115: add venus device
  2026-05-07  7:08 ` [PATCH 3/4] arm64: dts: qcom: sm6115: add venus device Dmitry Baryshkov
@ 2026-05-08 10:57   ` Konrad Dybcio
  0 siblings, 0 replies; 8+ messages in thread
From: Konrad Dybcio @ 2026-05-08 10:57 UTC (permalink / raw)
  To: Dmitry Baryshkov, Bjorn Andersson, Michael Turquette,
	Stephen Boyd, Vikash Garodia, Dikshita Agarwal,
	Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Jorge Ramirez-Ortiz,
	Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, linux-kernel, linux-media, devicetree

On 5/7/26 9:08 AM, Dmitry Baryshkov wrote:
> Define the video en/decoding device present on the SM6115 platform. The
> core, AR50LT, is mostly compatible with the one present on the Agatti
> devices, so it uses qcom,qcm2290-venus as a fallback.
> 
> 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] 8+ messages in thread

* Re: [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: enable venus device
  2026-05-07  7:08 ` [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: enable " Dmitry Baryshkov
@ 2026-05-08 10:59   ` Konrad Dybcio
  0 siblings, 0 replies; 8+ messages in thread
From: Konrad Dybcio @ 2026-05-08 10:59 UTC (permalink / raw)
  To: Dmitry Baryshkov, Bjorn Andersson, Michael Turquette,
	Stephen Boyd, Vikash Garodia, Dikshita Agarwal,
	Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Jorge Ramirez-Ortiz,
	Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, linux-kernel, linux-media, devicetree

On 5/7/26 9:08 AM, Dmitry Baryshkov wrote:
> Enable the Venus en/decoding device on the Qualcomm RB2 board. The HFI
> Gen2 firmware for AR50Lt platforms doesn't work on RB2, so fix the
> firmware in the DT for now.
> 
> 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] 8+ messages in thread

end of thread, other threads:[~2026-05-08 11:00 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-07  7:08 [PATCH 0/4] media: iris: bring up driver on SM6115-based platforms Dmitry Baryshkov
2026-05-07  7:08 ` [PATCH 1/4] clk: qcom: gcc-sm6115: Set HW_CTRL_TRIGGER for video GDSC Dmitry Baryshkov
2026-05-07  8:01   ` Konrad Dybcio
2026-05-07  7:08 ` [PATCH 2/4] media: dt-bindings: qcom,qcm2290-venus: add Venus on SM6115 Dmitry Baryshkov
2026-05-07  7:08 ` [PATCH 3/4] arm64: dts: qcom: sm6115: add venus device Dmitry Baryshkov
2026-05-08 10:57   ` Konrad Dybcio
2026-05-07  7:08 ` [PATCH 4/4] arm64: dts: qcom: qrb4210-rb2: enable " Dmitry Baryshkov
2026-05-08 10:59   ` Konrad Dybcio

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