* [PATCH v3 0/3] Add support for the Iris codec on Milos
@ 2026-07-05 10:10 Alexander Koskovich
2026-07-05 10:10 ` [PATCH v3 1/3] dt-bindings: media: qcom,milos-iris: Add Milos video codec Alexander Koskovich
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Alexander Koskovich @ 2026-07-05 10:10 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alexander Koskovich,
Bjorn Andersson, Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Krzysztof Kozlowski
This series adds the bindings, nodes and platform data for the Milos platform
for the Iris video codec, allowing Milos to use hardware‑accelerated video
encoding and decoding.
Ran v4l2-compliance and some fluster tests, though a concerning amount of them
failed. Attaching v4l2-compliance output and the full fluster results below.
nothing-asteroids:~$ v4l2-compliance -d /dev/video1 -s
v4l2-compliance 1.32.0, 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:aa00000.video-codec
Driver version : 7.2.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: 64 Private Controls: 0
Format ioctls:
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
test VIDIOC_G/S_PARM: OK
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
test VIDIOC_S_FMT: OK
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
test Cropping: OK
test Composing: OK (Not Supported)
test Scaling: OK (Not Supported)
Codec ioctls:
test VIDIOC_(TRY_)ENCODER_CMD: OK
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
Buffer ioctls:
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
test CREATE_BUFS maximum buffers: OK
test VIDIOC_REMOVE_BUFS: OK
test VIDIOC_EXPBUF: OK
test Requests: OK (Not Supported)
test blocking wait: OK
Test input 0:
Streaming ioctls:
test read/write: OK (Not Supported)
Video Capture Multiplanar: Captured 124 buffers
fail: v4l2-test-buffers.cpp(1750): node->streamon(q.g_type())
test MMAP (select, REQBUFS): FAIL
Video Capture Multiplanar: Captured 61 buffers
fail: v4l2-test-buffers.cpp(1750): node->streamon(q.g_type())
test MMAP (epoll, REQBUFS): FAIL
Video Capture Multiplanar: Captured 61 buffers
fail: v4l2-test-buffers.cpp(1750): node->streamon(q.g_type())
test MMAP (select, CREATE_BUFS): FAIL
Video Capture Multiplanar: Captured 61 buffers
fail: v4l2-test-buffers.cpp(1750): node->streamon(q.g_type())
test MMAP (epoll, CREATE_BUFS): FAIL
test USERPTR (select): OK (Not Supported)
test DMABUF: Cannot test, specify --expbuf-device
Total for iris_driver device /dev/video1: 54, Succeeded: 50, Failed: 4, Warnings: 0
nothing-asteroids:~$
nothing-asteroids:~$ v4l2-compliance -d /dev/video0 -s5 --stream-from=/media/FVDO_Freeway_720p.264
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 : 7.2.0
Capabilities : 0x84204000
Video Memory-to-Memory Multiplanar
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04204000
Video Memory-to-Memory Multiplanar
Streaming
Extended Pix Format
Detected Stateful Decoder
Required ioctls:
test VIDIOC_QUERYCAP: OK
test invalid ioctls: OK
Allow for multiple opens:
test second /dev/video0 open: OK
test VIDIOC_QUERYCAP: OK
test VIDIOC_G/S_PRIORITY: OK
test for unlimited opens: OK
Debug ioctls:
test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
test VIDIOC_LOG_STATUS: OK (Not Supported)
Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 0 Audio Inputs: 0 Tuners: 0
Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0
Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)
Control ioctls:
test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
test VIDIOC_QUERYCTRL: OK
test VIDIOC_G/S_CTRL: OK
test VIDIOC_G/S/TRY_EXT_CTRLS: OK
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 10 Private Controls: 0
Format ioctls:
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
test VIDIOC_G/S_PARM: OK (Not Supported)
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
test VIDIOC_S_FMT: OK
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
test Cropping: OK
test Composing: OK
test Scaling: OK (Not Supported)
Codec ioctls:
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK
Buffer ioctls:
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
test CREATE_BUFS maximum buffers: OK
test VIDIOC_REMOVE_BUFS: OK
test VIDIOC_EXPBUF: OK
test Requests: OK (Not Supported)
test blocking wait: OK
Test input 0:
Streaming ioctls:
test read/write: OK (Not Supported)
the input file is smaller than 7077888 bytes
Video Capture Multiplanar: Captured 465 buffers
test MMAP (select, REQBUFS): OK
the input file is smaller than 7077888 bytes
Video Capture Multiplanar: Captured 465 buffers
test MMAP (epoll, REQBUFS): OK
the input file is smaller than 7077888 bytes
Video Capture Multiplanar: Captured 465 buffers
test MMAP (select, CREATE_BUFS): OK
the input file is smaller than 7077888 bytes
Video Capture Multiplanar: Captured 465 buffers
test MMAP (epoll, CREATE_BUFS): OK
test USERPTR (select): OK (Not Supported)
test DMABUF: Cannot test, specify --expbuf-device
Total for iris_driver device /dev/video0: 54, Succeeded: 54, Failed: 0, Warnings: 0
nothing-asteroids:~$
Fluster results:
nothing-asteroids:~/fluster$ ./fluster.py --no-emoji run -ts JVT-AVC_V1 -d GStreamer-H.264-V4L2
****************************************************************************************************
Running test suite JVT-AVC_V1 with decoder GStreamer-H.264-V4L2
Using 8 parallel job(s)
****************************************************************************************************
[TEST SUITE] (DECODER ) TEST VECTOR ... RESULT
----------------------------------------------------------------------
[JVT-AVC_V1] (GStreamer-H.264-V4L2) BA3_SVA_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) BA1_Sony_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) BAMQ1_JVC_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) BAMQ2_JVC_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) BASQP1_Sony_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABA1_SVA_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) BA_MW_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) AUD_MW_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABA1_Sony_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) BANM_MW_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cabac_mot_fld0_full ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABA2_SVA_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABA3_SVA_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cabac_mot_mbaff0_full ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cabac_mot_picaff0_full ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cabac_mot_frm0_full ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABAST3_Sony_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABASTBR3_Sony_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABREF3_Sand_D ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) BA2_Sony_F ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) BA1_FT_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAFI1_SVA_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAMA1_Sony_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAMA1_TOSHIBA_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CACQP3_Sony_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cama1_vtc_c ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cama2_vtc_b ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAMA3_Sand_E ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAMACI3_Sony_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABA2_Sony_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cama3_vtc_b ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAMANL1_TOSHIBA_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAMANL2_TOSHIBA_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAMANL3_Sand_E ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAMASL3_Sony_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAMP_MOT_MBAFF_L30 ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAMP_MOT_MBAFF_L31 ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABA3_Sony_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABA3_TOSHIBA_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CANL1_SVA_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CANL2_SVA_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CANL3_SVA_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CABACI3_Sony_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CANLMA2_Sony_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CANL1_Sony_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAPA1_TOSHIBA_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CANLMA3_Sony_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAPAMA3_Sand_F ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CANL4_SVA_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cavlc_mot_fld0_full_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAPCM1_Sand_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAPCMNL1_Sand_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cavlc_mot_mbaff0_full_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAQP1_Sony_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cavlc_mot_picaff0_full_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) cavlc_mot_frm0_full_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAWP5_TOSHIBA_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAWP1_TOSHIBA_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CI_MW_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CANL1_TOSHIBA_G ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CANL2_Sony_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVCANLMA2_Sony_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CANL3_Sony_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVFI1_Sony_D ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVFI1_SVA_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVFI2_Sony_H ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVFI2_SVA_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVMANL1_TOSHIBA_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVMA1_Sony_D ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVMA1_TOSHIBA_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVMANL2_TOSHIBA_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVFC1_Sony_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVMAPAQP3_Sony_E ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVMAQP3_Sony_D ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CAPM3_Sony_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVMAQP2_Sony_G ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVMP_MOT_FLD_L30_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVMP_MOT_FRM_L31_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVNLFI2_Sony_H ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVNLFI1_Sony_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVPA1_TOSHIBA_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVPCMNL2_SVA_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVPCMNL1_SVA_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CI1_FT_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVWP1_TOSHIBA_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVWP3_TOSHIBA_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVWP2_TOSHIBA_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) FI1_Sony_E ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVWP5_TOSHIBA_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVBS3_Sony_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) FM1_BT_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) FM2_SVA_C ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVSEFDFT3_Sony_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVSE3_Sony_H ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) FM1_FT_E ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) CVSE2_Sony_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MIDR_MW_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR1_BT_A ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) HCBP1_HHI_A ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) HCBP2_HHI_A ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) HCMP1_HHI_A ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MPS_MW_A ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR1_MW_A ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR6_BT_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR7_BT_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR8_BT_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR9_BT_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) NL1_Sony_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR2_MW_A ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR2_TANDBERG_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) NL3_SVA_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR3_TANDBERG_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) NLMQ1_JVC_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR4_TANDBERG_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MR5_TANDBERG_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) NLMQ2_JVC_C ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) Sharp_MP_Field_1_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) Sharp_MP_Field_2_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) Sharp_MP_PAFF_1r2 ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) Sharp_MP_Field_3_B ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) Sharp_MP_PAFF_2r ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) sp2_bt_b ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) SP1_BT_A ... Error
[JVT-AVC_V1] (GStreamer-H.264-V4L2) MV1_BRCM_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) SL1_SVA_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) SVA_BA2_D ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) SVA_BA1_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) SVA_Base_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) NRF_MW_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) NL2_Sony_H ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) SVA_NL2_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) SVA_NL1_B ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) SVA_FM1_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) SVA_CL1_E ... Success
[JVT-AVC_V1] (GStreamer-H.264-V4L2) LS_SVA_D ... Success
nothing-asteroids:~/fluster$ ./fluster.py --no-emoji run -ts JCT-VC-HEVC_V1 -d GStreamer-H.265-V4L2
****************************************************************************************************
Running test suite JCT-VC-HEVC_V1 with decoder GStreamer-H.265-V4L2
Using 8 parallel job(s)
****************************************************************************************************
[TEST SUITE ] (DECODER ) TEST VECTOR ... RESULT
----------------------------------------------------------------------
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) AMP_E_Hisilicon_3 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) AMP_D_Hisilicon_3 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) AMVP_A_MTK_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) AMP_B_Samsung_7 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) AMVP_B_MTK_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) AMP_A_Samsung_7 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CAINIT_A_SHARP_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) AMVP_C_Samsung_7 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) BUMPING_A_ericsson_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CAINIT_B_SHARP_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CIP_A_Panasonic_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CAINIT_D_SHARP_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CAINIT_C_SHARP_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CAINIT_E_SHARP_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CAINIT_F_SHARP_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CAINIT_G_SHARP_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) cip_B_NEC_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CIP_C_Panasonic_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CAINIT_H_SHARP_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DBLK_A_MAIN10_VIXS_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DBLK_D_VIXS_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DBLK_E_VIXS_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DBLK_A_SONY_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) CONFWIN_A_Sony_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DBLK_C_SONY_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DBLK_B_SONY_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DBLK_F_VIXS_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DBLK_G_VIXS_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DELTAQP_B_SONY_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DELTAQP_C_SONY_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) ENTP_A_QUALCOMM_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DSLICE_A_HHI_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DSLICE_B_HHI_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DSLICE_C_HHI_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) EXT_A_ericsson_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) ENTP_B_Qualcomm_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) ENTP_C_Qualcomm_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) DELTAQP_A_BRCM_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) ipcm_A_NEC_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) ipcm_B_NEC_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) FILLER_A_Sony_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) INITQP_A_Sony_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) ipcm_C_NEC_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) ipcm_E_NEC_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) ipcm_D_NEC_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) IPRED_A_docomo_2 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) HRD_A_Fujitsu_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) INITQP_B_Main10_Sony_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) IPRED_B_Nokia_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) IPRED_C_Mitsubishi_3 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MAXBINS_A_TI_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MAXBINS_B_TI_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) LS_A_Orange_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MAXBINS_C_TI_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MERGE_A_TI_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) LS_B_Orange_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MERGE_C_TI_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MERGE_D_TI_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MERGE_B_TI_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MERGE_E_TI_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MERGE_F_MTK_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MERGE_G_HHI_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MVEDGE_A_qualcomm_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MVCLIP_A_qualcomm_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) NoOutPrior_A_Qualcomm_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) NoOutPrior_B_Qualcomm_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) NUT_A_ericsson_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PICSIZE_A_Bossen_1 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PICSIZE_B_Bossen_1 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PICSIZE_C_Bossen_1 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PICSIZE_D_Bossen_1 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) OPFLAG_B_Qualcomm_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PMERGE_A_TI_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PMERGE_B_TI_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) OPFLAG_C_Qualcomm_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PMERGE_C_TI_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PMERGE_E_TI_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PPS_A_qualcomm_7 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PMERGE_D_TI_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) POC_A_Bossen_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RAP_B_Bossen_2 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) PS_B_VIDYO_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RAP_A_docomo_6 ... Fail
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RPS_A_docomo_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) LTRPSPS_A_Qualcomm_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RPS_C_ericsson_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RPS_D_ericsson_6 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RPS_F_docomo_2 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) MVDL1ZERO_A_docomo_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RQT_A_HHI_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RQT_B_HHI_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RPLM_A_qualcomm_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) OPFLAG_A_Qualcomm_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RPLM_B_qualcomm_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RQT_C_HHI_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RQT_F_HHI_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RQT_E_HHI_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RQT_D_HHI_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RQT_G_HHI_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SAO_C_Samsung_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SAO_E_Canon_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SAO_D_Samsung_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RPS_B_qualcomm_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SAO_B_MediaTek_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SAO_G_Canon_3 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SAO_A_MediaTek_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SAO_F_Canon_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SAO_H_Parabola_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SDH_A_Orange_4 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) RPS_E_qualcomm_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SLICES_A_Rovi_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SLIST_B_Sony_9 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SLIST_A_Sony_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SLPPLP_A_VIDYO_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SLIST_C_Sony_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SLIST_D_Sony_9 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) TMVP_A_MS_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) STRUCT_B_Samsung_7 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) STRUCT_A_Samsung_7 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) TSKIP_A_MS_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) TILES_B_Cisco_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) TILES_A_Cisco_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) TSUNEQBD_A_MAIN10_Technicolor_2 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) VPSSPSPPS_A_MainConcept_1 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) TSCL_B_VIDYO_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) TUSIZE_A_Samsung_1 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) TSCL_A_VIDYO_5 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) VPSID_A_VIDYO_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_A_ericsson_MAIN10_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_A_ericsson_MAIN_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_B_ericsson_MAIN10_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WP_A_MAIN10_Toshiba_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SAODBLK_A_MainConcept_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) SAODBLK_B_MainConcept_4 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WP_B_Toshiba_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WP_MAIN10_B_Toshiba_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WP_A_Toshiba_3 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_B_ericsson_MAIN_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_D_ericsson_MAIN_2 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_C_ericsson_MAIN10_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_D_ericsson_MAIN10_2 ... Error
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_C_ericsson_MAIN_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_E_ericsson_MAIN10_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_E_ericsson_MAIN_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_F_ericsson_MAIN_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) WPP_F_ericsson_MAIN10_2 ... Success
[JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2) AMP_F_Hisilicon_3 ... Timeout
nothing-asteroids:~/fluster$ ./fluster.py --no-emoji run -ts VP9-TEST-VECTORS -d GStreamer-VP9-V4L2 -j1
****************************************************************************************************
Running test suite VP9-TEST-VECTORS with decoder GStreamer-VP9-V4L2
Using 1 parallel job(s)
****************************************************************************************************
[TEST SUITE ] (DECODER ) TEST VECTOR ... RESULT
----------------------------------------------------------------------
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-00.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-01.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-02.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-03.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-04.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-05.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-06.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-07.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-08.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-09.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-10.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-11.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-12.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-13.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-14.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-15.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-16.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-17.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-18.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-19.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-20.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-21.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-22.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-23.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-24.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-25.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-26.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-27.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-28.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-29.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-30.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-31.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-32.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-33.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-34.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-35.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-36.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-37.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-38.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-39.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-40.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-41.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-42.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-43.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-44.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-45.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-46.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-47.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-48.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-49.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-50.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-51.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-52.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-53.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-54.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-55.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-56.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-57.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-58.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-59.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-60.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-61.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-62.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-00-quantizer-63.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-01-sharpness-1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-01-sharpness-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-01-sharpness-3.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-01-sharpness-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-01-sharpness-5.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-01-sharpness-6.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-01-sharpness-7.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-08x08.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-08x10.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-08x16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-08x18.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-08x32.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-08x34.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-08x64.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-08x66.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-10x08.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-10x10.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-10x16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-10x18.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-10x32.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-10x34.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-10x64.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-10x66.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-130x132.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-132x130.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-132x132.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-16x08.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-16x10.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-16x16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-16x18.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-16x32.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-16x34.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-16x64.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-16x66.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-178x180.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-180x178.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-180x180.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-18x08.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-18x10.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-18x16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-18x18.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-18x32.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-18x34.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-18x64.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-18x66.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-32x08.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-32x10.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-32x16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-32x18.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-32x32.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-32x34.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-32x64.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-32x66.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-34x08.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-34x10.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-34x16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-34x18.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-34x32.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-34x34.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-34x64.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-34x66.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-64x08.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-64x10.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-64x16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-64x18.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-64x32.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-64x34.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-64x64.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-64x66.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-66x08.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-66x10.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-66x16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-66x18.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-66x32.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-66x34.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-66x64.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-66x66.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-02-size-lf-1920x1080.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-deltaq.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-196x196.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-196x198.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-196x200.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-196x202.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-196x208.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-196x210.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-196x224.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-196x226.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-198x196.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-198x198.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-198x200.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-198x202.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-198x208.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-198x210.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-198x224.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-198x226.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-200x196.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-200x198.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-200x200.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-200x202.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-200x208.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-200x210.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-200x224.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-200x226.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-202x196.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-202x198.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-202x200.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-202x202.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-202x208.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-202x210.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-202x224.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-202x226.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-208x196.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-208x198.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-208x200.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-208x202.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-208x208.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-208x210.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-208x224.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-208x226.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-210x196.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-210x198.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-210x200.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-210x202.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-210x208.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-210x210.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-210x224.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-210x226.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-224x196.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-224x198.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-224x200.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-224x202.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-224x208.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-224x210.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-224x224.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-224x226.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-226x196.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-226x198.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-226x200.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-226x202.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-226x208.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-226x210.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-226x224.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-226x226.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-03-size-352x288.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-05-resize.ivf ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-06-bilinear.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-07-frame_parallel-1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-07-frame_parallel.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-08-tile_1x2_frame_parallel.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-08-tile_1x2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-08-tile_1x4_frame_parallel.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-08-tile_1x4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-08-tile_1x8_frame_parallel.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-08-tile_1x8.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-08-tile-4x1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-08-tile-4x4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-09-aq2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-09-lf_deltas.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-09-subpixel-00.ivf ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-10-show-existing-frame2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-10-show-existing-frame.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-11-size-351x287.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-11-size-351x288.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-11-size-352x287.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-12-droppable_1.ivf ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-12-droppable_2.ivf ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-12-droppable_3.ivf ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-1-2-4-8.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-1-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-1-8.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-2-1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-2-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-2-8.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-4-1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-4-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-4-8.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-8-1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-8-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-8-4-2-1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-10frames-fp-tiles-8-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-1-16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-1-2-4-8-16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-1-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-16-1.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-16-2.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-16-4.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-16-8-4-2-1.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-16-8.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-1-8.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-2-16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-2-1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-2-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-2-8.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-4-16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-4-1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-4-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-4-8.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-8-16.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-8-1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-8-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-14-resize-fp-tiles-8-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-15-segkey_adpq.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-15-segkey.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-16-intra-only.webm ... Timeout
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-17-show-existing-frame.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-18-resize.ivf ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-19-skip-01.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-19-skip-02.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-19-skip.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-20-big_superframe-01.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-20-big_superframe-02.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_1280x720_5_1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_1280x720_5_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_1280x720_7_1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_1280x720_7_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_1920x1080_5_1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_1920x1080_5_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_1920x1080_7_1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_1920x1080_7_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_320x180_5_1-2.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_320x180_5_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_320x180_7_1-2.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_320x180_7_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_320x240_5_1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_320x240_5_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_320x240_7_1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_320x240_7_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_640x360_5_1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_640x360_5_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_640x360_7_1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_640x360_7_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_640x480_5_1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_640x480_5_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_640x480_7_1-2.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-21-resize_inter_640x480_7_3-4.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-22-svc_1280x720_1.webm ... Success
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp90-2-22-svc_1280x720_3.ivf ... Fail
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp91-2-04-yuv422.webm ... Error
[VP9-TEST-VECTORS] (GStreamer-VP9-V4L2) vp91-2-04-yuv444.webm ... Error
---
Changes in v3:
- Rebase onto next-20260703
- Switched fluster tests to use gstreamer, ffmpeg ones not reproducible run to run?
- Update milos caps to include caps introduced in tree after v2
- Correct iris opp table to only update the MX rail values
- Link to v2: https://lore.kernel.org/r/20260529-milos-iris-v2-0-7a763d7195ae@pm.me
Changes in v2:
- Rebase onto 7.1.0-rc5
- Change firmware name to vpu20_p2.mbn
- Change iris reg to hex
- Correct iris opp table
- Update cover letter with new test run on 7.1.0-rc5, add -s arg to v4l2-compliance
- Link to v1: https://lore.kernel.org/r/20260406-milos-iris-v1-0-17ed0167ba6f@pm.me
---
Alexander Koskovich (3):
dt-bindings: media: qcom,milos-iris: Add Milos video codec
media: iris: Add support for Milos (VPU v2.0)
arm64: dts: qcom: milos: Add Iris VPU v2.0
.../devicetree/bindings/media/qcom,milos-iris.yaml | 166 ++++
arch/arm64/boot/dts/qcom/milos.dtsi | 85 ++
drivers/media/platform/qcom/iris/iris_hfi_gen2.c | 883 +++++++++++++++++++++
.../platform/qcom/iris/iris_platform_common.h | 2 +
.../media/platform/qcom/iris/iris_platform_milos.h | 28 +
.../media/platform/qcom/iris/iris_platform_vpu2.c | 35 +
drivers/media/platform/qcom/iris/iris_probe.c | 4 +
7 files changed, 1203 insertions(+)
---
base-commit: 2b763db0c2763d6bf73d7d3e69665222d1f377cf
change-id: 20260406-milos-iris-d1a854e4cb75
Best regards,
--
Alexander Koskovich <akoskovich@pm.me>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/3] dt-bindings: media: qcom,milos-iris: Add Milos video codec
2026-07-05 10:10 [PATCH v3 0/3] Add support for the Iris codec on Milos Alexander Koskovich
@ 2026-07-05 10:10 ` Alexander Koskovich
2026-07-05 10:10 ` [PATCH v3 2/3] media: iris: Add support for Milos (VPU v2.0) Alexander Koskovich
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: Alexander Koskovich @ 2026-07-05 10:10 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alexander Koskovich,
Bjorn Andersson, Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Krzysztof Kozlowski
Add binding for Qualcomm Milos Iris video codec.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
---
.../devicetree/bindings/media/qcom,milos-iris.yaml | 166 +++++++++++++++++++++
1 file changed, 166 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/qcom,milos-iris.yaml b/Documentation/devicetree/bindings/media/qcom,milos-iris.yaml
new file mode 100644
index 000000000000..b0b0355ad52e
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/qcom,milos-iris.yaml
@@ -0,0 +1,166 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/qcom,milos-iris.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Milos SoC Iris video encoder and decoder
+
+maintainers:
+ - Alexander Koskovich <akoskovich@pm.me>
+
+description:
+ The Iris video processing unit on Qualcomm Milos SoC is a video encode and
+ decode accelerator.
+
+properties:
+ compatible:
+ enum:
+ - qcom,milos-iris
+
+ clocks:
+ maxItems: 3
+
+ clock-names:
+ items:
+ - const: iface
+ - const: core
+ - const: vcodec0_core
+
+ dma-coherent: true
+
+ interconnects:
+ maxItems: 2
+
+ interconnect-names:
+ items:
+ - const: cpu-cfg
+ - const: video-mem
+
+ iommus:
+ maxItems: 2
+
+ operating-points-v2: true
+ opp-table:
+ type: object
+
+ power-domains:
+ maxItems: 4
+
+ power-domain-names:
+ items:
+ - const: venus
+ - const: vcodec0
+ - const: cx
+ - const: mx
+
+ resets:
+ maxItems: 2
+
+ reset-names:
+ items:
+ - const: bus
+ - const: core
+
+required:
+ - compatible
+ - dma-coherent
+ - interconnects
+ - interconnect-names
+ - iommus
+ - power-domain-names
+ - resets
+ - reset-names
+
+allOf:
+ - $ref: qcom,venus-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,rpmh.h>
+ #include <dt-bindings/clock/qcom,milos-gcc.h>
+ #include <dt-bindings/clock/qcom,milos-videocc.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/interconnect/qcom,icc.h>
+ #include <dt-bindings/interconnect/qcom,milos-rpmh.h>
+ #include <dt-bindings/power/qcom-rpmpd.h>
+ #include <dt-bindings/power/qcom,rpmhpd.h>
+
+ video-codec@aa00000 {
+ compatible = "qcom,milos-iris";
+ reg = <0x0aa00000 0xf0000>;
+
+ clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
+ <&videocc VIDEO_CC_MVS0C_CLK>,
+ <&videocc VIDEO_CC_MVS0_CLK>;
+ clock-names = "iface",
+ "core",
+ "vcodec0_core";
+
+ dma-coherent;
+ iommus = <&apps_smmu 0x1960 0>,
+ <&apps_smmu 0x1967 0>;
+
+ interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+ &cnoc_cfg SLAVE_VENUS_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
+ <&mmss_noc MASTER_VIDEO QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "cpu-cfg",
+ "video-mem";
+
+ interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+
+ operating-points-v2 = <&iris_opp_table>;
+
+ memory-region = <&video_mem>;
+
+ power-domains = <&videocc VIDEO_CC_MVS0C_GDSC>,
+ <&videocc VIDEO_CC_MVS0_GDSC>,
+ <&rpmhpd RPMHPD_CX>,
+ <&rpmhpd RPMHPD_MX>;
+ power-domain-names = "venus",
+ "vcodec0",
+ "cx",
+ "mx";
+
+ resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>,
+ <&videocc VIDEO_CC_MVS0C_CLK_ARES>;
+ reset-names = "bus",
+ "core";
+
+ iris_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-240000000 {
+ opp-hz = /bits/ 64 <240000000>;
+ required-opps = <&rpmhpd_opp_low_svs>,
+ <&rpmhpd_opp_svs>;
+ };
+
+ opp-338000000 {
+ opp-hz = /bits/ 64 <338000000>;
+ required-opps = <&rpmhpd_opp_svs>,
+ <&rpmhpd_opp_svs>;
+ };
+
+ opp-366000000 {
+ opp-hz = /bits/ 64 <366000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>,
+ <&rpmhpd_opp_svs>;
+ };
+
+ opp-444000000 {
+ opp-hz = /bits/ 64 <444000000>;
+ required-opps = <&rpmhpd_opp_nom>,
+ <&rpmhpd_opp_svs_l1>;
+ };
+
+ opp-552000000 {
+ opp-hz = /bits/ 64 <552000000>;
+ required-opps = <&rpmhpd_opp_turbo>,
+ <&rpmhpd_opp_nom>;
+ };
+ };
+ };
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/3] media: iris: Add support for Milos (VPU v2.0)
2026-07-05 10:10 [PATCH v3 0/3] Add support for the Iris codec on Milos Alexander Koskovich
2026-07-05 10:10 ` [PATCH v3 1/3] dt-bindings: media: qcom,milos-iris: Add Milos video codec Alexander Koskovich
@ 2026-07-05 10:10 ` Alexander Koskovich
2026-07-05 10:27 ` sashiko-bot
2026-07-06 13:59 ` Dmitry Baryshkov
2026-07-05 10:10 ` [PATCH v3 3/3] arm64: dts: qcom: milos: Add Iris VPU v2.0 Alexander Koskovich
2026-07-06 14:01 ` [PATCH v3 0/3] Add support for the Iris codec on Milos Dmitry Baryshkov
3 siblings, 2 replies; 10+ messages in thread
From: Alexander Koskovich @ 2026-07-05 10:10 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alexander Koskovich,
Bjorn Andersson, Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel
Add support for the Milos Iris codec. This only supports the variant
found on the SM7635-AB that has half of it's pipes disabled via efuse.
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
---
drivers/media/platform/qcom/iris/iris_hfi_gen2.c | 883 +++++++++++++++++++++
.../platform/qcom/iris/iris_platform_common.h | 2 +
.../media/platform/qcom/iris/iris_platform_milos.h | 28 +
.../media/platform/qcom/iris/iris_platform_vpu2.c | 35 +
drivers/media/platform/qcom/iris/iris_probe.c | 4 +
5 files changed, 952 insertions(+)
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2.c
index acc0ed8adda1..5c88312944c9 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2.c
@@ -11,8 +11,832 @@
#include "iris_vpu_buffer.h"
#define VIDEO_ARCH_LX 1
+#define MILOS_BITRATE_MAX 100000000
#define BITRATE_MAX 245000000
+static const struct platform_inst_fw_cap inst_fw_cap_milos_dec[] = {
+ {
+ .cap_id = PROFILE_H264,
+ .min = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
+ .max = V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH),
+ .value = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
+ .hfi_id = HFI_PROP_PROFILE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_u32_enum,
+ },
+ {
+ .cap_id = PROFILE_HEVC,
+ .min = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
+ .max = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10),
+ .value = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
+ .hfi_id = HFI_PROP_PROFILE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_u32_enum,
+ },
+ {
+ .cap_id = PROFILE_VP9,
+ .min = V4L2_MPEG_VIDEO_VP9_PROFILE_0,
+ .max = V4L2_MPEG_VIDEO_VP9_PROFILE_2,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_0) |
+ BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_2),
+ .value = V4L2_MPEG_VIDEO_VP9_PROFILE_0,
+ .hfi_id = HFI_PROP_PROFILE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_u32_enum,
+ },
+ {
+ .cap_id = LEVEL_H264,
+ .min = V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
+ .max = V4L2_MPEG_VIDEO_H264_LEVEL_5_1,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1),
+ .value = V4L2_MPEG_VIDEO_H264_LEVEL_5_1,
+ .hfi_id = HFI_PROP_LEVEL,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_u32_enum,
+ },
+ {
+ .cap_id = LEVEL_HEVC,
+ .min = V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
+ .max = V4L2_MPEG_VIDEO_HEVC_LEVEL_5,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5),
+ .value = V4L2_MPEG_VIDEO_HEVC_LEVEL_5,
+ .hfi_id = HFI_PROP_LEVEL,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_u32_enum,
+ },
+ {
+ .cap_id = LEVEL_VP9,
+ .min = V4L2_MPEG_VIDEO_VP9_LEVEL_1_0,
+ .max = V4L2_MPEG_VIDEO_VP9_LEVEL_5_0,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_0) |
+ BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_1) |
+ BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_0) |
+ BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_1) |
+ BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_0) |
+ BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_1) |
+ BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_0) |
+ BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_1) |
+ BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_0),
+ .value = V4L2_MPEG_VIDEO_VP9_LEVEL_5_0,
+ .hfi_id = HFI_PROP_LEVEL,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_u32_enum,
+ },
+ {
+ .cap_id = TIER,
+ .min = V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
+ .max = V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_TIER_HIGH),
+ .value = V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
+ .hfi_id = HFI_PROP_TIER,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_u32_enum,
+ },
+ {
+ .cap_id = INPUT_BUF_HOST_MAX_COUNT,
+ .min = DEFAULT_MAX_HOST_BUF_COUNT,
+ .max = DEFAULT_MAX_HOST_BURST_BUF_COUNT,
+ .step_or_mask = 1,
+ .value = DEFAULT_MAX_HOST_BUF_COUNT,
+ .hfi_id = HFI_PROP_BUFFER_HOST_MAX_COUNT,
+ .flags = CAP_FLAG_INPUT_PORT,
+ .set = iris_set_u32,
+ },
+ {
+ .cap_id = STAGE,
+ .min = STAGE_1,
+ .max = STAGE_2,
+ .step_or_mask = 1,
+ .value = STAGE_2,
+ .hfi_id = HFI_PROP_STAGE,
+ .set = iris_set_stage,
+ },
+ {
+ .cap_id = PIPE,
+ /* .max, .min and .value are set via platform data */
+ .step_or_mask = 1,
+ .hfi_id = HFI_PROP_PIPE,
+ .set = iris_set_pipe,
+ },
+ {
+ .cap_id = POC,
+ .min = 0,
+ .max = 2,
+ .step_or_mask = 1,
+ .value = 1,
+ .hfi_id = HFI_PROP_PIC_ORDER_CNT_TYPE,
+ },
+ {
+ .cap_id = CODED_FRAMES,
+ .min = CODED_FRAMES_PROGRESSIVE,
+ .max = CODED_FRAMES_PROGRESSIVE,
+ .step_or_mask = 0,
+ .value = CODED_FRAMES_PROGRESSIVE,
+ .hfi_id = HFI_PROP_CODED_FRAMES,
+ },
+ {
+ .cap_id = BIT_DEPTH,
+ .min = BIT_DEPTH_8,
+ .max = BIT_DEPTH_10,
+ .step_or_mask = 1,
+ .value = BIT_DEPTH_8,
+ .hfi_id = HFI_PROP_LUMA_CHROMA_BIT_DEPTH,
+ },
+ {
+ .cap_id = RAP_FRAME,
+ .min = 0,
+ .max = 1,
+ .step_or_mask = 1,
+ .value = 1,
+ .hfi_id = HFI_PROP_DEC_START_FROM_RAP_FRAME,
+ .flags = CAP_FLAG_INPUT_PORT,
+ .set = iris_set_u32,
+ },
+};
+
+static const struct platform_inst_fw_cap inst_fw_cap_milos_enc[] = {
+ {
+ .cap_id = PROFILE_H264,
+ .min = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
+ .max = V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH),
+ .value = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
+ .hfi_id = HFI_PROP_PROFILE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_profile,
+ },
+ {
+ .cap_id = PROFILE_HEVC,
+ .min = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
+ .max = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10),
+ .value = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
+ .hfi_id = HFI_PROP_PROFILE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_profile,
+ },
+ {
+ .cap_id = LEVEL_H264,
+ .min = V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
+ .max = V4L2_MPEG_VIDEO_H264_LEVEL_5_1,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1),
+ .value = V4L2_MPEG_VIDEO_H264_LEVEL_5_0,
+ .hfi_id = HFI_PROP_LEVEL,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_level,
+ },
+ {
+ .cap_id = LEVEL_HEVC,
+ .min = V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
+ .max = V4L2_MPEG_VIDEO_HEVC_LEVEL_5,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5),
+ .value = V4L2_MPEG_VIDEO_HEVC_LEVEL_5,
+ .hfi_id = HFI_PROP_LEVEL,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_level,
+ },
+ {
+ .cap_id = STAGE,
+ .min = STAGE_1,
+ .max = STAGE_2,
+ .step_or_mask = 1,
+ .value = STAGE_2,
+ .hfi_id = HFI_PROP_STAGE,
+ .set = iris_set_stage,
+ },
+ {
+ .cap_id = HEADER_MODE,
+ .min = V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
+ .max = V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) |
+ BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME),
+ .value = V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME,
+ .hfi_id = HFI_PROP_SEQ_HEADER_MODE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_header_mode_gen2,
+ },
+ {
+ .cap_id = PREPEND_SPSPPS_TO_IDR,
+ .min = 0,
+ .max = 1,
+ .step_or_mask = 1,
+ .value = 0,
+ },
+ {
+ .cap_id = BITRATE,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_TOTAL_BITRATE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_bitrate_gen2,
+ },
+ {
+ .cap_id = BITRATE_PEAK,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_TOTAL_PEAK_BITRATE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_peak_bitrate,
+ },
+ {
+ .cap_id = BITRATE_MODE,
+ .min = V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
+ .max = V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) |
+ BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR),
+ .value = V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
+ .hfi_id = HFI_PROP_RATE_CONTROL,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_bitrate_mode_gen2,
+ },
+ {
+ .cap_id = FRAME_SKIP_MODE,
+ .min = V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED,
+ .max = V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) |
+ BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT) |
+ BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT),
+ .value = V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ },
+ {
+ .cap_id = FRAME_RC_ENABLE,
+ .min = 0,
+ .max = 1,
+ .step_or_mask = 1,
+ .value = 1,
+ },
+ {
+ .cap_id = GOP_SIZE,
+ .min = 0,
+ .max = INT_MAX,
+ .step_or_mask = 1,
+ .value = 2 * DEFAULT_FPS - 1,
+ .hfi_id = HFI_PROP_MAX_GOP_FRAMES,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_u32,
+ },
+ {
+ .cap_id = ENTROPY_MODE,
+ .min = V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
+ .max = V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) |
+ BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC),
+ .value = V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
+ .hfi_id = HFI_PROP_CABAC_SESSION,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_entropy_mode_gen2,
+ },
+ {
+ .cap_id = MIN_FRAME_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MIN_QP_8BIT,
+ .hfi_id = HFI_PROP_MIN_QP_PACKED,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_min_qp,
+ },
+ {
+ .cap_id = MIN_FRAME_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MIN_QP_8BIT,
+ .hfi_id = HFI_PROP_MIN_QP_PACKED,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_min_qp,
+ },
+ {
+ .cap_id = MAX_FRAME_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MAX_QP,
+ .hfi_id = HFI_PROP_MAX_QP_PACKED,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_max_qp,
+ },
+ {
+ .cap_id = MAX_FRAME_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MAX_QP,
+ .hfi_id = HFI_PROP_MAX_QP_PACKED,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_max_qp,
+ },
+ {
+ .cap_id = I_FRAME_MIN_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MIN_QP_8BIT,
+ },
+ {
+ .cap_id = I_FRAME_MIN_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MIN_QP_8BIT,
+ },
+ {
+ .cap_id = P_FRAME_MIN_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MIN_QP_8BIT,
+ },
+ {
+ .cap_id = P_FRAME_MIN_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MIN_QP_8BIT,
+ },
+ {
+ .cap_id = B_FRAME_MIN_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MIN_QP_8BIT,
+ },
+ {
+ .cap_id = B_FRAME_MIN_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MIN_QP_8BIT,
+ },
+ {
+ .cap_id = I_FRAME_MAX_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MAX_QP,
+ },
+ {
+ .cap_id = I_FRAME_MAX_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MAX_QP,
+ },
+ {
+ .cap_id = P_FRAME_MAX_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MAX_QP,
+ },
+ {
+ .cap_id = P_FRAME_MAX_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MAX_QP,
+ },
+ {
+ .cap_id = B_FRAME_MAX_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MAX_QP,
+ },
+ {
+ .cap_id = B_FRAME_MAX_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MAX_QP,
+ },
+ {
+ .cap_id = I_FRAME_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = DEFAULT_QP,
+ .hfi_id = HFI_PROP_QP_PACKED,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_frame_qp,
+ },
+ {
+ .cap_id = I_FRAME_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = DEFAULT_QP,
+ .hfi_id = HFI_PROP_QP_PACKED,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_frame_qp,
+ },
+ {
+ .cap_id = P_FRAME_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = DEFAULT_QP,
+ .hfi_id = HFI_PROP_QP_PACKED,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_frame_qp,
+ },
+ {
+ .cap_id = P_FRAME_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = DEFAULT_QP,
+ .hfi_id = HFI_PROP_QP_PACKED,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_frame_qp,
+ },
+ {
+ .cap_id = B_FRAME_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = DEFAULT_QP,
+ .hfi_id = HFI_PROP_QP_PACKED,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_frame_qp,
+ },
+ {
+ .cap_id = B_FRAME_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = DEFAULT_QP,
+ .hfi_id = HFI_PROP_QP_PACKED,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_frame_qp,
+ },
+ {
+ .cap_id = INPUT_BUF_HOST_MAX_COUNT,
+ .min = DEFAULT_MAX_HOST_BUF_COUNT,
+ .max = DEFAULT_MAX_HOST_BURST_BUF_COUNT,
+ .step_or_mask = 1,
+ .value = DEFAULT_MAX_HOST_BUF_COUNT,
+ .hfi_id = HFI_PROP_BUFFER_HOST_MAX_COUNT,
+ .flags = CAP_FLAG_INPUT_PORT,
+ .set = iris_set_u32,
+ },
+ {
+ .cap_id = OUTPUT_BUF_HOST_MAX_COUNT,
+ .min = DEFAULT_MAX_HOST_BUF_COUNT,
+ .max = DEFAULT_MAX_HOST_BURST_BUF_COUNT,
+ .step_or_mask = 1,
+ .value = DEFAULT_MAX_HOST_BUF_COUNT,
+ .hfi_id = HFI_PROP_BUFFER_HOST_MAX_COUNT,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_u32,
+ },
+ {
+ .cap_id = ROTATION,
+ .min = 0,
+ .max = 270,
+ .step_or_mask = 90,
+ .value = 0,
+ .hfi_id = HFI_PROP_ROTATION,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_rotation,
+ },
+ {
+ .cap_id = HFLIP,
+ .min = 0,
+ .max = 1,
+ .step_or_mask = 1,
+ .value = 0,
+ .hfi_id = HFI_PROP_FLIP,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_flip,
+ },
+ {
+ .cap_id = VFLIP,
+ .min = 0,
+ .max = 1,
+ .step_or_mask = 1,
+ .value = 0,
+ .hfi_id = HFI_PROP_FLIP,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_flip,
+ },
+ {
+ .cap_id = IR_TYPE,
+ .min = V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM,
+ .max = V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM,
+ .step_or_mask = BIT(V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM),
+ .value = V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ },
+ {
+ .cap_id = IR_PERIOD,
+ .min = 0,
+ .max = INT_MAX,
+ .step_or_mask = 1,
+ .value = 0,
+ .flags = CAP_FLAG_OUTPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_ir_period_gen2,
+ },
+ {
+ .cap_id = LTR_COUNT,
+ .min = 0,
+ .max = MAX_LTR_FRAME_COUNT_GEN2,
+ .step_or_mask = 1,
+ .value = 0,
+ .hfi_id = HFI_PROP_LTR_COUNT,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_ltr_count_gen2,
+ },
+ {
+ .cap_id = USE_LTR,
+ .min = 0,
+ .max = ((1 << MAX_LTR_FRAME_COUNT_GEN2) - 1),
+ .step_or_mask = 0,
+ .value = 0,
+ .hfi_id = HFI_PROP_LTR_USE,
+ .flags = CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_use_and_mark_ltr,
+ },
+ {
+ .cap_id = MARK_LTR,
+ .min = INVALID_DEFAULT_MARK_OR_USE_LTR,
+ .max = (MAX_LTR_FRAME_COUNT_GEN2 - 1),
+ .step_or_mask = 1,
+ .value = INVALID_DEFAULT_MARK_OR_USE_LTR,
+ .hfi_id = HFI_PROP_LTR_MARK,
+ .flags = CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_use_and_mark_ltr,
+ },
+ {
+ .cap_id = B_FRAME,
+ .min = 0,
+ .max = 1,
+ .step_or_mask = 1,
+ .value = 0,
+ .hfi_id = HFI_PROP_MAX_B_FRAMES,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_u32,
+ },
+ {
+ .cap_id = LAYER_ENABLE,
+ .min = 0,
+ .max = 1,
+ .step_or_mask = 1,
+ .value = 0,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ },
+ {
+ .cap_id = LAYER_TYPE_H264,
+ .min = V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B,
+ .max = V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B) |
+ BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P),
+ .value = V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
+ .hfi_id = HFI_PROP_LAYER_ENCODING_TYPE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_layer_type,
+ },
+ {
+ .cap_id = LAYER_TYPE_HEVC,
+ .min = V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B,
+ .max = V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P),
+ .value = V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
+ .hfi_id = HFI_PROP_LAYER_ENCODING_TYPE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_layer_type,
+ },
+ {
+ .cap_id = LAYER_COUNT_H264,
+ .min = 0,
+ .max = 5,
+ .step_or_mask = 1,
+ .value = 0,
+ .hfi_id = HFI_PROP_LAYER_COUNT,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_count_gen2,
+ },
+ {
+ .cap_id = LAYER_COUNT_HEVC,
+ .min = 0,
+ .max = 5,
+ .step_or_mask = 1,
+ .value = 0,
+ .hfi_id = HFI_PROP_LAYER_COUNT,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_count_gen2,
+ },
+ {
+ .cap_id = LAYER0_BITRATE_H264,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER1,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER1_BITRATE_H264,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER2,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER2_BITRATE_H264,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER3,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER3_BITRATE_H264,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER4,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER4_BITRATE_H264,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER5,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER5_BITRATE_H264,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER6,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER0_BITRATE_HEVC,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER1,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER1_BITRATE_HEVC,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER2,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER2_BITRATE_HEVC,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER3,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER3_BITRATE_HEVC,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER4,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER4_BITRATE_HEVC,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER5,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ },
+ {
+ .cap_id = LAYER5_BITRATE_HEVC,
+ .min = 1,
+ .max = MILOS_BITRATE_MAX,
+ .step_or_mask = 1,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROP_BITRATE_LAYER6,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_layer_bitrate,
+ }
+};
+
static const struct platform_inst_fw_cap inst_fw_cap_sm8550_dec[] = {
{
.cap_id = PROFILE_H264,
@@ -1118,3 +1942,62 @@ const struct iris_firmware_data iris_hfi_gen2_data = {
.enc_op_int_buf_tbl = sm8550_enc_op_int_buf_tbl,
.enc_op_int_buf_tbl_size = ARRAY_SIZE(sm8550_enc_op_int_buf_tbl),
};
+
+const struct iris_firmware_data iris_hfi_milos_data = {
+ .init_hfi_ops = iris_hfi_gen2_sys_ops_init,
+
+ .core_arch = VIDEO_ARCH_LX,
+
+ .inst_fw_caps_dec = inst_fw_cap_milos_dec,
+ .inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_milos_dec),
+ .inst_fw_caps_enc = inst_fw_cap_milos_enc,
+ .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_milos_enc),
+
+ .dec_input_config_params_default =
+ sm8550_vdec_input_config_params_default,
+ .dec_input_config_params_default_size =
+ ARRAY_SIZE(sm8550_vdec_input_config_params_default),
+ .dec_input_config_params_hevc =
+ sm8550_vdec_input_config_param_hevc,
+ .dec_input_config_params_hevc_size =
+ ARRAY_SIZE(sm8550_vdec_input_config_param_hevc),
+ .dec_input_config_params_vp9 =
+ sm8550_vdec_input_config_param_vp9,
+ .dec_input_config_params_vp9_size =
+ ARRAY_SIZE(sm8550_vdec_input_config_param_vp9),
+ .dec_output_config_params =
+ sm8550_vdec_output_config_params,
+ .dec_output_config_params_size =
+ ARRAY_SIZE(sm8550_vdec_output_config_params),
+
+ .enc_input_config_params =
+ sm8550_venc_input_config_params,
+ .enc_input_config_params_size =
+ ARRAY_SIZE(sm8550_venc_input_config_params),
+ .enc_output_config_params =
+ sm8550_venc_output_config_params,
+ .enc_output_config_params_size =
+ ARRAY_SIZE(sm8550_venc_output_config_params),
+
+ .dec_input_prop = sm8550_vdec_subscribe_input_properties,
+ .dec_input_prop_size = ARRAY_SIZE(sm8550_vdec_subscribe_input_properties),
+ .dec_output_prop_avc = sm8550_vdec_subscribe_output_properties_avc,
+ .dec_output_prop_avc_size =
+ ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_avc),
+ .dec_output_prop_hevc = sm8550_vdec_subscribe_output_properties_hevc,
+ .dec_output_prop_hevc_size =
+ ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_hevc),
+ .dec_output_prop_vp9 = sm8550_vdec_subscribe_output_properties_vp9,
+ .dec_output_prop_vp9_size =
+ ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_vp9),
+
+ .dec_ip_int_buf_tbl = sm8550_dec_ip_int_buf_tbl,
+ .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8550_dec_ip_int_buf_tbl),
+ .dec_op_int_buf_tbl = sm8550_dec_op_int_buf_tbl,
+ .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8550_dec_op_int_buf_tbl),
+
+ .enc_ip_int_buf_tbl = sm8550_enc_ip_int_buf_tbl,
+ .enc_ip_int_buf_tbl_size = ARRAY_SIZE(sm8550_enc_ip_int_buf_tbl),
+ .enc_op_int_buf_tbl = sm8550_enc_op_int_buf_tbl,
+ .enc_op_int_buf_tbl_size = ARRAY_SIZE(sm8550_enc_op_int_buf_tbl),
+};
diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
index c9256f2323dc..f57c08990040 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_common.h
+++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
@@ -52,7 +52,9 @@ enum pipe_type {
extern const struct iris_firmware_data iris_hfi_gen1_data;
extern const struct iris_firmware_data iris_hfi_gen2_data;
+extern const struct iris_firmware_data iris_hfi_milos_data;
+extern const struct iris_platform_data milos_data;
extern const struct iris_platform_data qcs8300_data;
extern const struct iris_platform_data sc7280_data;
extern const struct iris_platform_data sm8250_data;
diff --git a/drivers/media/platform/qcom/iris/iris_platform_milos.h b/drivers/media/platform/qcom/iris/iris_platform_milos.h
new file mode 100644
index 000000000000..3b6feeda76cb
--- /dev/null
+++ b/drivers/media/platform/qcom/iris/iris_platform_milos.h
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __IRIS_PLATFORM_MILOS_H__
+#define __IRIS_PLATFORM_MILOS_H__
+
+#define MILOS_MAXIMUM_FPS 240
+
+static const struct icc_info iris_icc_info_milos[] = {
+ { "cpu-cfg", 1000, 1000 },
+ { "video-mem", 1000, 10000000 },
+};
+
+static const char * const milos_opp_pd_table[] = { "cx", "mx" };
+
+static struct platform_inst_caps platform_inst_cap_milos = {
+ .min_frame_width = 96,
+ .max_frame_width = 4096,
+ .min_frame_height = 96,
+ .max_frame_height = 4096,
+ .max_mbpf = (4096 * 2176) / 256,
+ .mb_cycles_vpp = 200,
+ .mb_cycles_fw = 326389,
+ .mb_cycles_fw_vpp = 44156,
+ .max_frame_rate = MILOS_MAXIMUM_FPS,
+ .max_operating_rate = MILOS_MAXIMUM_FPS,
+};
+
+#endif
diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c b/drivers/media/platform/qcom/iris/iris_platform_vpu2.c
index 6e06a32822bb..8dce45f39d40 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c
+++ b/drivers/media/platform/qcom/iris/iris_platform_vpu2.c
@@ -13,9 +13,16 @@
#include "iris_vpu_common.h"
#include "iris_instance.h"
+#include "iris_platform_milos.h"
#include "iris_platform_sc7280.h"
#include "iris_platform_sm8250.h"
+static const struct iris_firmware_desc iris_milos_desc = {
+ .firmware_data = &iris_hfi_milos_data,
+ .get_vpu_buffer_size = iris_vpu_buf_size,
+ .fwname = "qcom/vpu/vpu20_p2.mbn",
+};
+
static const struct iris_firmware_desc iris_vpu20_p1_gen1_desc = {
.firmware_data = &iris_hfi_gen1_data,
.get_vpu_buffer_size = iris_vpu_buf_size,
@@ -64,6 +71,34 @@ static const struct tz_cp_config tz_cp_config_vpu2[] = {
},
};
+const struct iris_platform_data milos_data = {
+ .firmware_desc = &iris_milos_desc,
+ .vpu_ops = &iris_vpu2_ops,
+ .icc_tbl = iris_icc_info_milos,
+ .icc_tbl_size = ARRAY_SIZE(iris_icc_info_milos),
+ .bw_tbl_dec = sm8250_bw_table_dec,
+ .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec),
+ .pmdomain_tbl = iris_pmdomain_table_vpu2,
+ .pmdomain_tbl_size = ARRAY_SIZE(iris_pmdomain_table_vpu2),
+ .opp_pd_tbl = milos_opp_pd_table,
+ .opp_pd_tbl_size = ARRAY_SIZE(milos_opp_pd_table),
+ .clk_tbl = sm8250_clk_table,
+ .clk_tbl_size = ARRAY_SIZE(sm8250_clk_table),
+ .opp_clk_tbl = sm8250_opp_clk_table,
+ .clk_rst_tbl = iris_clk_reset_table_vpu2,
+ .clk_rst_tbl_size = ARRAY_SIZE(iris_clk_reset_table_vpu2),
+ .dma_mask = 0xe0000000 - 1,
+ .inst_iris_fmts = iris_fmts_vpu2_dec,
+ .inst_iris_fmts_size = ARRAY_SIZE(iris_fmts_vpu2_dec),
+ .inst_caps = &platform_inst_cap_milos,
+ .tz_cp_config_data = tz_cp_config_vpu2,
+ .tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_vpu2),
+ .num_vpp_pipe = 2,
+ .max_session_count = 16,
+ .max_core_mbpf = ((4096 * 2176) / 256) * 2,
+ .max_core_mbps = ((3840 * 2176) / 256) * 30 + ((1920 * 1088) / 256) * 30,
+};
+
const struct iris_platform_data sc7280_data = {
.firmware_desc = &iris_vpu20_p1_gen1_desc,
.vpu_ops = &iris_vpu2_ops,
diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/platform/qcom/iris/iris_probe.c
index c2dcb50a2782..353cda58514c 100644
--- a/drivers/media/platform/qcom/iris/iris_probe.c
+++ b/drivers/media/platform/qcom/iris/iris_probe.c
@@ -360,6 +360,10 @@ static const struct dev_pm_ops iris_pm_ops = {
};
static const struct of_device_id iris_dt_match[] = {
+ {
+ .compatible = "qcom,milos-iris",
+ .data = &milos_data,
+ },
{
.compatible = "qcom,qcs8300-iris",
.data = &qcs8300_data,
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 3/3] arm64: dts: qcom: milos: Add Iris VPU v2.0
2026-07-05 10:10 [PATCH v3 0/3] Add support for the Iris codec on Milos Alexander Koskovich
2026-07-05 10:10 ` [PATCH v3 1/3] dt-bindings: media: qcom,milos-iris: Add Milos video codec Alexander Koskovich
2026-07-05 10:10 ` [PATCH v3 2/3] media: iris: Add support for Milos (VPU v2.0) Alexander Koskovich
@ 2026-07-05 10:10 ` Alexander Koskovich
2026-07-06 11:13 ` Konrad Dybcio
2026-07-06 14:24 ` Dmitry Baryshkov
2026-07-06 14:01 ` [PATCH v3 0/3] Add support for the Iris codec on Milos Dmitry Baryshkov
3 siblings, 2 replies; 10+ messages in thread
From: Alexander Koskovich @ 2026-07-05 10:10 UTC (permalink / raw)
To: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alexander Koskovich,
Bjorn Andersson, Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Krzysztof Kozlowski
Add devicetree nodes for the Iris codec (VPU 2.0) found on the Milos
platform.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
---
arch/arm64/boot/dts/qcom/milos.dtsi | 85 +++++++++++++++++++++++++++++++++++++
1 file changed, 85 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/milos.dtsi b/arch/arm64/boot/dts/qcom/milos.dtsi
index 64c493b82733..cf361476a859 100644
--- a/arch/arm64/boot/dts/qcom/milos.dtsi
+++ b/arch/arm64/boot/dts/qcom/milos.dtsi
@@ -7,6 +7,7 @@
#include <dt-bindings/clock/qcom,milos-dispcc.h>
#include <dt-bindings/clock/qcom,milos-gcc.h>
#include <dt-bindings/clock/qcom,milos-gpucc.h>
+#include <dt-bindings/clock/qcom,milos-videocc.h>
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/clock/qcom,sm8650-tcsr.h>
#include <dt-bindings/dma/qcom-gpi.h>
@@ -1883,6 +1884,90 @@ usb_1_dwc3_hs: endpoint {
};
};
+ iris: video-codec@aa00000 {
+ compatible = "qcom,milos-iris";
+ reg = <0x0 0x0aa00000 0x0 0xf0000>;
+
+ interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH 0>;
+
+ power-domains = <&videocc VIDEO_CC_MVS0C_GDSC>,
+ <&videocc VIDEO_CC_MVS0_GDSC>,
+ <&rpmhpd RPMHPD_CX>,
+ <&rpmhpd RPMHPD_MX>;
+ power-domain-names = "venus",
+ "vcodec0",
+ "cx",
+ "mx";
+
+ operating-points-v2 = <&iris_opp_table>;
+
+ clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
+ <&videocc VIDEO_CC_MVS0C_CLK>,
+ <&videocc VIDEO_CC_MVS0_CLK>;
+ clock-names = "iface",
+ "core",
+ "vcodec0_core";
+
+ interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+ &cnoc_cfg SLAVE_VENUS_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
+ <&mmss_noc MASTER_VIDEO QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "cpu-cfg",
+ "video-mem";
+
+ memory-region = <&video_mem>;
+
+ resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>,
+ <&videocc VIDEO_CC_MVS0C_CLK_ARES>;
+ reset-names = "bus",
+ "core";
+
+ iommus = <&apps_smmu 0x1960 0>,
+ <&apps_smmu 0x1967 0>;
+
+ dma-coherent;
+
+ /*
+ * IRIS firmware is signed by vendors, only enable on
+ * boards where the proper signed firmware is available.
+ */
+ status = "disabled";
+
+ iris_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-240000000 {
+ opp-hz = /bits/ 64 <240000000>;
+ required-opps = <&rpmhpd_opp_low_svs>,
+ <&rpmhpd_opp_svs>;
+ };
+
+ opp-338000000 {
+ opp-hz = /bits/ 64 <338000000>;
+ required-opps = <&rpmhpd_opp_svs>,
+ <&rpmhpd_opp_svs>;
+ };
+
+ opp-366000000 {
+ opp-hz = /bits/ 64 <366000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>,
+ <&rpmhpd_opp_svs>;
+ };
+
+ opp-444000000 {
+ opp-hz = /bits/ 64 <444000000>;
+ required-opps = <&rpmhpd_opp_nom>,
+ <&rpmhpd_opp_svs_l1>;
+ };
+
+ opp-552000000 {
+ opp-hz = /bits/ 64 <552000000>;
+ required-opps = <&rpmhpd_opp_turbo>,
+ <&rpmhpd_opp_nom>;
+ };
+ };
+ };
+
videocc: clock-controller@aaf0000 {
compatible = "qcom,milos-videocc";
reg = <0x0 0x0aaf0000 0x0 0x10000>;
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] media: iris: Add support for Milos (VPU v2.0)
2026-07-05 10:10 ` [PATCH v3 2/3] media: iris: Add support for Milos (VPU v2.0) Alexander Koskovich
@ 2026-07-05 10:27 ` sashiko-bot
2026-07-06 13:59 ` Dmitry Baryshkov
1 sibling, 0 replies; 10+ messages in thread
From: sashiko-bot @ 2026-07-05 10:27 UTC (permalink / raw)
To: Alexander Koskovich; +Cc: conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Incorrect VPU capacity initialization in `platform_inst_cap_milos` missing `mb_cycles_vsp`.
--
commit 9ae4cf8b25a90957e77a00cd4a1116d4be3f9fae
Author: Alexander Koskovich <akoskovich@pm.me>
media: iris: Add support for Milos (VPU v2.0)
Add support for the Milos Iris codec variant found on the SM7635-AB.
> diff --git a/drivers/media/platform/qcom/iris/iris_platform_milos.h b/drivers/media/platform/qcom/iris/iris_platform_milos.h
> new file mode 100644
> index 0000000000000..3b6feeda76cbd
> --- /dev/null
> +++ b/drivers/media/platform/qcom/iris/iris_platform_milos.h
> @@ -0,0 +1,28 @@
[ ... ]
> +static struct platform_inst_caps platform_inst_cap_milos = {
> + .min_frame_width = 96,
> + .max_frame_width = 4096,
> + .min_frame_height = 96,
> + .max_frame_height = 4096,
> + .max_mbpf = (4096 * 2176) / 256,
> + .mb_cycles_vpp = 200,
> + .mb_cycles_fw = 326389,
> + .mb_cycles_fw_vpp = 44156,
[Severity: Low]
Does this code mistakenly initialize VPU3 fields instead of the required
VPU2 field (mb_cycles_vsp) for the Milos platform?
Because mb_cycles_vsp is missing, it defaults to 0, which causes the
macroblock-dependent component to evaluate to 0 in:
drivers/media/platform/qcom/iris/iris_vpu2.c:iris_vpu2_calc_freq() {
...
vsp_freq = mbs_per_second * caps->mb_cycles_vsp;
...
}
While vpp_freq (calculated from mb_cycles_vpp = 200) typically dwarfs
the missing VSP component in almost all practical scenarios, making this
unlikely to cause a severe bottleneck, shouldn't we still provide the
correct mb_cycles_vsp value here and remove the unused VPU3 fields?
> + .max_frame_rate = MILOS_MAXIMUM_FPS,
> + .max_operating_rate = MILOS_MAXIMUM_FPS,
> +};
> +
> +#endif
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260705-milos-iris-v3-0-8c1353530f24@pm.me?part=2
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] arm64: dts: qcom: milos: Add Iris VPU v2.0
2026-07-05 10:10 ` [PATCH v3 3/3] arm64: dts: qcom: milos: Add Iris VPU v2.0 Alexander Koskovich
@ 2026-07-06 11:13 ` Konrad Dybcio
2026-07-06 14:24 ` Dmitry Baryshkov
1 sibling, 0 replies; 10+ messages in thread
From: Konrad Dybcio @ 2026-07-06 11:13 UTC (permalink / raw)
To: Alexander Koskovich, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Bryan O'Donoghue, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-media, linux-arm-msm, devicetree, linux-kernel,
Krzysztof Kozlowski
On 7/5/26 12:10 PM, Alexander Koskovich wrote:
> Add devicetree nodes for the Iris codec (VPU 2.0) found on the Milos
> platform.
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
> ---
[...]
> + iommus = <&apps_smmu 0x1960 0>,
> + <&apps_smmu 0x1967 0>;
in case you resend, 0 -> 0x0
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] media: iris: Add support for Milos (VPU v2.0)
2026-07-05 10:10 ` [PATCH v3 2/3] media: iris: Add support for Milos (VPU v2.0) Alexander Koskovich
2026-07-05 10:27 ` sashiko-bot
@ 2026-07-06 13:59 ` Dmitry Baryshkov
1 sibling, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2026-07-06 13:59 UTC (permalink / raw)
To: Alexander Koskovich
Cc: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-media, linux-arm-msm, devicetree, linux-kernel
On Sun, Jul 05, 2026 at 10:10:35AM +0000, Alexander Koskovich wrote:
> Add support for the Milos Iris codec. This only supports the variant
> found on the SM7635-AB that has half of it's pipes disabled via efuse.
>
> Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
> ---
> drivers/media/platform/qcom/iris/iris_hfi_gen2.c | 883 +++++++++++++++++++++
> .../platform/qcom/iris/iris_platform_common.h | 2 +
> .../media/platform/qcom/iris/iris_platform_milos.h | 28 +
> .../media/platform/qcom/iris/iris_platform_vpu2.c | 35 +
> drivers/media/platform/qcom/iris/iris_probe.c | 4 +
> 5 files changed, 952 insertions(+)
>
>
> +static const struct iris_firmware_desc iris_milos_desc = {
> + .firmware_data = &iris_hfi_milos_data,
> + .get_vpu_buffer_size = iris_vpu_buf_size,
> + .fwname = "qcom/vpu/vpu20_p2.mbn",
Nit, please use vpu20_p2_gen2.mbn at least (or, better,
qcom/vpu/vpu20_p2_gen2_s6.mbn or _s7, depending on the MBN signature).
It won't work with gen1 vpu20_p2.mbn.
Otherwise, looks good to me.
> +};
> +
> static const struct iris_firmware_desc iris_vpu20_p1_gen1_desc = {
> .firmware_data = &iris_hfi_gen1_data,
> .get_vpu_buffer_size = iris_vpu_buf_size,
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 0/3] Add support for the Iris codec on Milos
2026-07-05 10:10 [PATCH v3 0/3] Add support for the Iris codec on Milos Alexander Koskovich
` (2 preceding siblings ...)
2026-07-05 10:10 ` [PATCH v3 3/3] arm64: dts: qcom: milos: Add Iris VPU v2.0 Alexander Koskovich
@ 2026-07-06 14:01 ` Dmitry Baryshkov
2026-07-06 15:36 ` Alexander Koskovich
3 siblings, 1 reply; 10+ messages in thread
From: Dmitry Baryshkov @ 2026-07-06 14:01 UTC (permalink / raw)
To: Alexander Koskovich
Cc: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-media, linux-arm-msm, devicetree, linux-kernel,
Krzysztof Kozlowski
On Sun, Jul 05, 2026 at 10:10:18AM +0000, Alexander Koskovich wrote:
> This series adds the bindings, nodes and platform data for the Milos platform
> for the Iris video codec, allowing Milos to use hardware‑accelerated video
> encoding and decoding.
>
> Ran v4l2-compliance and some fluster tests, though a concerning amount of them
> failed. Attaching v4l2-compliance output and the full fluster results below.
>
> nothing-asteroids:~$ v4l2-compliance -d /dev/video1 -s
> v4l2-compliance 1.32.0, 64 bits, 64-bit time_t
>
>
> nothing-asteroids:~/fluster$ ./fluster.py --no-emoji run -ts JVT-AVC_V1 -d GStreamer-H.264-V4L2
Could you please run the tests against the full test suite and submit
the results to https://github.com/linux-msm/fluster-tests ? There is a
script to run the tests.
> ****************************************************************************************************
> Running test suite JVT-AVC_V1 with decoder GStreamer-H.264-V4L2
> Using 8 parallel job(s)
-j1 might also be nicer.
> ****************************************************************************************************
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] arm64: dts: qcom: milos: Add Iris VPU v2.0
2026-07-05 10:10 ` [PATCH v3 3/3] arm64: dts: qcom: milos: Add Iris VPU v2.0 Alexander Koskovich
2026-07-06 11:13 ` Konrad Dybcio
@ 2026-07-06 14:24 ` Dmitry Baryshkov
1 sibling, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2026-07-06 14:24 UTC (permalink / raw)
To: Alexander Koskovich
Cc: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-media, linux-arm-msm, devicetree, linux-kernel,
Krzysztof Kozlowski
On Sun, Jul 05, 2026 at 10:10:43AM +0000, Alexander Koskovich wrote:
> Add devicetree nodes for the Iris codec (VPU 2.0) found on the Milos
> platform.
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
> ---
> arch/arm64/boot/dts/qcom/milos.dtsi | 85 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 85 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 0/3] Add support for the Iris codec on Milos
2026-07-06 14:01 ` [PATCH v3 0/3] Add support for the Iris codec on Milos Dmitry Baryshkov
@ 2026-07-06 15:36 ` Alexander Koskovich
0 siblings, 0 replies; 10+ messages in thread
From: Alexander Koskovich @ 2026-07-06 15:36 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-media, linux-arm-msm, devicetree, linux-kernel,
Krzysztof Kozlowski
On Monday, July 6th, 2026 at 10:44 AM, Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> wrote:
> On Sun, Jul 05, 2026 at 10:10:18AM +0000, Alexander Koskovich wrote:
> > This series adds the bindings, nodes and platform data for the Milos platform
> > for the Iris video codec, allowing Milos to use hardware‑accelerated video
> > encoding and decoding.
> >
> > Ran v4l2-compliance and some fluster tests, though a concerning amount of them
> > failed. Attaching v4l2-compliance output and the full fluster results below.
> >
> > nothing-asteroids:~$ v4l2-compliance -d /dev/video1 -s
> > v4l2-compliance 1.32.0, 64 bits, 64-bit time_t
> >
> >
> > nothing-asteroids:~/fluster$ ./fluster.py --no-emoji run -ts JVT-AVC_V1 -d GStreamer-H.264-V4L2
>
> Could you please run the tests against the full test suite and submit
> the results to https://github.com/linux-msm/fluster-tests ? There is a
> script to run the tests.
Will do.
>
> > ****************************************************************************************************
> > Running test suite JVT-AVC_V1 with decoder GStreamer-H.264-V4L2
> > Using 8 parallel job(s)
>
> -j1 might also be nicer.
Yeah I did run -j1 for VP9, but I kept the other two at defaults since I was
trying to match the testing done here since it's another vpu2 gen2 platform,
and assumed there was a specific reason only VP9 was set to -j1:
https://lore.kernel.org/linux-arm-msm/20260529-kodiak-gen2-support-v4-v6-0-9a81bfa797d9@oss.qualcomm.com
Will make sure to use -j1 for all of the tests going forward (assuming the
script you mentioned does that).
>
> > ****************************************************************************************************
> >
>
> --
> With best wishes
> Dmitry
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-07-06 15:37 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-05 10:10 [PATCH v3 0/3] Add support for the Iris codec on Milos Alexander Koskovich
2026-07-05 10:10 ` [PATCH v3 1/3] dt-bindings: media: qcom,milos-iris: Add Milos video codec Alexander Koskovich
2026-07-05 10:10 ` [PATCH v3 2/3] media: iris: Add support for Milos (VPU v2.0) Alexander Koskovich
2026-07-05 10:27 ` sashiko-bot
2026-07-06 13:59 ` Dmitry Baryshkov
2026-07-05 10:10 ` [PATCH v3 3/3] arm64: dts: qcom: milos: Add Iris VPU v2.0 Alexander Koskovich
2026-07-06 11:13 ` Konrad Dybcio
2026-07-06 14:24 ` Dmitry Baryshkov
2026-07-06 14:01 ` [PATCH v3 0/3] Add support for the Iris codec on Milos Dmitry Baryshkov
2026-07-06 15:36 ` Alexander Koskovich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox