Re: [PATCH v5 0/6] media: iris: enable SM8350 and SC8280XP support

From: Dmitry Baryshkov

Date: Tue May 12 2026 - 12:56:54 EST


On Tue, 12 May 2026 at 19:40, Vikash Garodia
<vikash.garodia@xxxxxxxxxxxxxxxx> wrote:
>
>
> On 5/12/2026 6:39 PM, Dmitry Baryshkov wrote:
> > In order to enable wider testing of the Iris driver on the HFI Gen1
> > platforms enable support for Qualcomm SM8350 and SC8280XP platforms.
> >
> > Note, this has been tested only with the Iris driver. Venus driver fails
> > to boot the Iris core on SM8350 pointing out the UC_REGION error.
> >
> > Note, the firmware for SM8250 isn't compatible with SM8350 (nor with
> > SC8280XP). Please use corresponding firmware, extracted from the Windows
> > / Android data.
>
> You can push the tested firmware to linux-firmware

I'd prefer if firmware for devices came from your team.
Firmware for SM8350 which I have here identifies itself as
video-firmware.1.0-6804c210603073037fb32640a3dd6a46fe04edd6

Firmware for SC8280XP (Lenovo X13s):
video-firmware.1.1-b158087140355883dc40b004032856a8feb5d565

>
> >
> > On SM8350 with the Iris driver:
> >
> > $ v4l2-compliance
> > v4l2-compliance 1.30.1, 64 bits, 64-bit time_t
> >
> > Compliance test for iris_driver device /dev/video0:
> >
> > Driver Info:
> > Driver name : iris_driver
> > Card type : Iris Decoder
> > Bus info : platform:aa00000.video-codec
> > Driver version : 7.0.0
> > Capabilities : 0x84204000
> > Video Memory-to-Memory Multiplanar
> > Streaming
> > Extended Pix Format
> > Device Capabilities
> > Device Caps : 0x04204000
> > Video Memory-to-Memory Multiplanar
> > Streaming
> > Extended Pix Format
> > Detected Stateful Decoder
> >
> > Required ioctls:
> > test VIDIOC_QUERYCAP: OK
> > test invalid ioctls: OK
> >
> > Allow for multiple opens:
> > test second /dev/video0 open: OK
> > test VIDIOC_QUERYCAP: OK
> > test VIDIOC_G/S_PRIORITY: OK
> > test for unlimited opens: OK
> >
> > Debug ioctls:
> > test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
> > test VIDIOC_LOG_STATUS: OK (Not Supported)
> >
> > Input ioctls:
> > test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
> > test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> > test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
> > test VIDIOC_ENUMAUDIO: OK (Not Supported)
> > test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
> > test VIDIOC_G/S_AUDIO: OK (Not Supported)
> > Inputs: 0 Audio Inputs: 0 Tuners: 0
> >
> > Output ioctls:
> > test VIDIOC_G/S_MODULATOR: OK (Not Supported)
> > test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> > test VIDIOC_ENUMAUDOUT: OK (Not Supported)
> > test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
> > test VIDIOC_G/S_AUDOUT: OK (Not Supported)
> > Outputs: 0 Audio Outputs: 0 Modulators: 0
> >
> > Input/Output configuration ioctls:
> > test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
> > test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
> > test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
> > test VIDIOC_G/S_EDID: OK (Not Supported)
> >
> > Control ioctls:
> > test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
> > test VIDIOC_QUERYCTRL: OK
> > test VIDIOC_G/S_CTRL: OK
> > test VIDIOC_G/S/TRY_EXT_CTRLS: OK
> > test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
> > test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
> > Standard Controls: 2 Private Controls: 0
> >
> > Format ioctls:
> > test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
> > test VIDIOC_G/S_PARM: OK (Not Supported)
> > test VIDIOC_G_FBUF: OK (Not Supported)
> > test VIDIOC_G_FMT: OK
> > test VIDIOC_TRY_FMT: OK
> > test VIDIOC_S_FMT: OK
> > test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
> > test Cropping: OK
> > test Composing: OK
> > test Scaling: OK (Not Supported)
> >
> > Codec ioctls:
> > test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
> > test VIDIOC_G_ENC_INDEX: OK (Not Supported)
> > test VIDIOC_(TRY_)DECODER_CMD: OK
> >
> > Buffer ioctls:
> > test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
> > test CREATE_BUFS maximum buffers: OK
> > test VIDIOC_REMOVE_BUFS: OK
> > test VIDIOC_EXPBUF: OK
> > test Requests: OK (Not Supported)
> > test blocking wait: OK
> >
> > Total for iris_driver device /dev/video0: 48, Succeeded: 48, Failed: 0, Warnings: 0
> >
> > |TOTALS|FFmpeg-H.265-v4l2m2m|GStreamer-H.265-V4L2-Gst1.0|FFmpeg-H.264-v4l2m2m|GStreamer-H.264-V4L2-Gst1.0|FFmpeg-VP9-v4l2m2m|GStreamer-VP9-V4L2-Gst1.0|
> > |-|-|-|-|-|-|-|
> > |TOTAL|169/316|128/316|154/447|126/447|159/311|229/311|
> > |TOTAL TIME|242.251s|267.903s|293.458s|261.934s|203.009s|366.936s|
> > |-|-|-|-|-|-|-|
> > |Profile|FFmpeg-H.265-v4l2m2m|GStreamer-H.265-V4L2-Gst1.0|FFmpeg-H.264-v4l2m2m|GStreamer-H.264-V4L2-Gst1.0|FFmpeg-VP9-v4l2m2m|GStreamer-VP9-V4L2-Gst1.0|
> > |BASELINE|0/0|0/0|3/7|4/7|0/0|0/0|
> > |CAVLC_4_4_4|0/0|0/0|0/3|0/3|0/0|0/0|
> > |CAVLC_4_4_4_INTRA|0/0|0/0|0/4|0/4|0/0|0/0|
> > |CONSTRAINED_BASELINE|0/0|0/0|32/33|33/33|0/0|0/0|
> > |EXTENDED|0/0|0/0|1/6|1/6|0/0|0/0|
> > |HIGH|0/0|0/0|22/45|22/45|0/0|0/0|
> > |HIGH_10|0/0|0/0|0/2|0/2|0/0|0/0|
> > |HIGH_10_INTRA|0/0|0/0|0/7|0/7|0/0|0/0|
> > |HIGH_4_2_2|0/0|0/0|0/21|0/21|0/0|0/0|
> > |HIGH_4_2_2_INTRA|0/0|0/0|0/7|0/7|0/0|0/0|
> > |HIGH_4_4_4_INTRA|0/0|0/0|0/6|0/6|0/0|0/0|
> > |HIGH_4_4_4_PREDICTIVE|0/0|0/0|0/11|0/11|0/0|0/0|
> > |MAIN|127/135|126/135|41/90|41/90|0/0|0/0|
> > |MAIN_10|0/11|0/11|0/0|0/0|0/0|0/0|
> > |MAIN_STILL_PICTURE|1/1|1/1|0/0|0/0|0/0|0/0|
> > |-|-|-|-|-|-|-|
>
> Can we do this in the format which we have been following for other SOC
> ? How to make out which is failing and passing test here ?

Sure. I will fix this for the next iteration (tomorrow).

>
> Regards,
> Vikash



--
With best wishes
Dmitry