lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241126080730.srtfsie2p3tkkhpf@basti-XPS-13-9310>
Date: Tue, 26 Nov 2024 09:07:30 +0100
From: Sebastian Fricke <sebastian.fricke@...labora.com>
To: Dikshita Agarwal <quic_dikshita@...cinc.com>
Cc: Vikash Garodia <quic_vgarodia@...cinc.com>,
	Abhinav Kumar <quic_abhinavk@...cinc.com>,
	Mauro Carvalho Chehab <mchehab@...nel.org>,
	Rob Herring <robh@...nel.org>,
	Krzysztof Kozlowski <krzk+dt@...nel.org>,
	Conor Dooley <conor+dt@...nel.org>,
	Philipp Zabel <p.zabel@...gutronix.de>,
	Hans Verkuil <hverkuil@...all.nl>,
	Bryan O'Donoghue <bryan.odonoghue@...aro.org>,
	Dmitry Baryshkov <dmitry.baryshkov@...aro.org>,
	Neil Armstrong <neil.armstrong@...aro.org>,
	Nicolas Dufresne <nicolas@...fresne.ca>,
	Uwe Kleine-König <u.kleine-koenig@...libre.com>,
	Jianhua Lu <lujianhua000@...il.com>, linux-media@...r.kernel.org,
	linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
	Vedang Nagar <quic_vnagar@...cinc.com>
Subject: Re: [PATCH v6 00/28] Qualcomm iris video decoder driver

Hey Dikshita,

On 20.11.2024 20:15, Dikshita Agarwal wrote:
>Introduce support for Qualcomm new video acceleration hardware i.e.
>iris, used for video stream decoding.

Sorry for the delay with my review, I am currently quite busy with other
patches and this set will need a more detailed look from me and my team,
thus I'd like to ask you for a bit more patience, I plan to take a
deeper look into this set in December.

Thank you and regards,
Sebastian

>
>Iris is a multi pipe based hardware that offloads video stream decoding
>from the application processor (AP). It supports H.264 decoding. The AP
>communicates with hardware through a well defined protocol, called as
>host firmware interface (HFI), which provides fine-grained and
>asynchronous control over individual hardware features.
>
>This driver implements upgraded HFI gen2 to communicate with firmware.
>It supports SM8550 which is based out of HFI gen 2. It also supports
>SM8250 which is based out of HFI gen1.
>
>This driver comes with below capabilities:
>- V4L2 complaint video driver with M2M and STREAMING capability.
>- Supports H264 decoder.
>
>This driver comes with below features:
>- Centralized resource management.
>- Centralized management of core and instance states.
>- Defines platform specific capabilities and features. As a results, it
>  provides a single point of control to enable/disable a given feature
>  depending on specific platform capabilities.
>- Handles various video recommended sequences, like DRC, Drain, Seek,
>  EOS.
>- Implements asynchronous communication with hardware to achieve better
>  experience in low latency usecases.
>- Output and capture planes are controlled independently. Thereby
>  providing a way to reconfigure individual plane.
>- Native hardware support of LAST flag which is mandatory to align with
>  port reconfiguration and DRAIN sequence as per V4L guidelines.
>
>Changes since v5:
>- Fixed the memory leak in firmware load (Bryan)
>- Updated all headers s/_LIKE_SO_/__LIKE_SO__ (Bryan)
>- Updated value of IFACEQ_MAX_BUF_COUNT to 64 (Bryan)
>- Removed actual_count from iris buffer structure and cleaned up
>  vb2_queue_setup (Hans)
>- Used VIDEO_MAX_FRAME to set actual buffer to firmware (Hans)
>- Fixed the typo in commit log and subject of patch#12 (Hans)
>- Updated card field to Iris Decoder (Hans)
>- Removed redundant setting of byteused (Hans)
>- s/iris_driver/is_iris_driver (Jianhua)
>- Addressed all other review comments.
>- Link to v5: https://lore.kernel.org/r/20241105-qcom-video-iris-v5-0-a88e7c220f78@quicinc.com
>
>Changes since v4:
>- Fixed commit message length for all patches (Krzysztof)
>- Migrated back to remove from remove_new (Uwe Kleine-König)
>- Removed support for g_volatle_ctrl (Hans)
>- Added changes to update minimum buffer count whenever the hardware
>  requirement changes (Hans)
>- Removed state checks from try/g/s_fmt ioctls (Hans)
>- Removed wait_prepare() and wait_finish callbacks (Hans)
>- Added support for remove_bufs (Hans)
>- Added module param based configurability to select between venus and
>  iris drivers for platforms supported by both drivers (Jianhua, Dmitry)
>- Addressed misc other review comments from Hans.
>- Fixed issues reported by kernel bot.
>- Link to v4: https://lore.kernel.org/r/20241014-qcom-video-iris-v4-v4-0-c5eaa4e9ab9e@quicinc.com
>
>Changes since v3:
>- Fixed the style issues with dt binding (Krzysztof)
>- Pushed  the patch to add maintainers to end of the series (Krzysztof,
>  Dmitry)
>- Moved the resource initialization next to probe in iris_probe.c and
>  squashed the patch of probe and resource initialization (Krzysztof)
>- Removed error prints from probe function (Krzysztof)
>- Defined bit fields used for register read/write with macros for better
>  context (Bryan)
>- Converted if/else to switch/case wherever applicable (Bryan)
>- Removed defensive NULL checks wherever not required (Bryan, Krzysztof)
>- Removed core->state checks except for below scenarios (Bryan)
>  - When reverse thread (firmware) can move the state of the core to
>    error state.
>  - When client can force close the driver and there are still pending
>    firmware responses to be read from shared queues (msg and dbg)
>  - For PM operations, since its a delayed autosuspend work and sys
>    error handler from the reverse thread can move the state to core
>    deinit state anytime.
>- Acquiring core->lock only for below scenarios (Bryan)
>  - Writing to registers.
>- Reading/Writing from/to shared queues.
>  - Traversing the instance list of core.
>  - To protect the core->state when it can changed by reverse thread.
>- Acquiring inst->lock only for below scenario which is needed (Bryan)
>  - Serializing the forward and reverse thread
>  - To protect the inst structure where the values can be modified by
>    firmware.
>- Removed usage of core->power_enabled (Krzysztof, Bryan)
>- Removed usage of mutex_is_locked  (Krzysztof, Bryan)
>- Use C structure for instance caps (Dmitry)
>- Split the ctrl ops patch by keeping only the defines, struct and caps
>  needed to intialize the ctrl handler and to implement s/g_ctrl
>  (Dmitry)
>- Removed the instance state checks to allow v4l2-ctl, relying on
>  standard vb2 checks instead. (Hans)
>- Converted APIs to void wherever applicable except for below (Bryan)
>  - iris_hfi_gen2_handle_session_error and
>    iris_hfi_gen2_handle_session_property cannot be converted to void
>    even though they always return 0.
>    Because these are two of the handlers invoked from
>    iris_hfi_gen2_handle_session_response and are of
>    iris_hfi_gen2_inst_hfi_range struct type, where same prototype is
>    followed for all handlers and return type of all handers should be
>    'int'.
>    And we cannot have a switch case/if else to handle these
>    responses from firmware because we need to parse the responses in a
>    particular sequence.
>    That's why we opted for this handler based design instead of
>    introducing multiple for loop with code duplication.
>- Fixed issues reported by kernel bot.
>- Fixed v4l2 compliance issue reported with "-s" options based on the
>  inputs from Hans.
>- Addressed all other review comments and made some code improvements.
>
>Changes since v2:
>- introduced support for HFI gen1.
>- deprecated Encoder and HEVC, VP9 codecs.
>- removed custom vb2 mem ops and used standard framework instead.
>- added support for mmap streaming mode.
>- migrated all the buffer APIs to mem2mem helper functions.
>- registered iris buffer with vb2 framework.
>- migrated to clk_bulk, reset_bulk and icc_bulk APIs.
>- used pm_domain_attach/detach_list APIs.
>- migrated to read/writel and other available helpers for register
>  access instead of custom wrappers.
>- added documentation for various structures.
>- addressed many other review comments from v2.
>
>Note: A harmless onetime error log "Lucid PLL latch failed. Output may
>be unstable!" is seen during bootup.  It doesn't impact any video
>usecase and is currently under discussion.
>
>Static tools like checkpatch, smatch, dt_binding_check, sparse and
>Coccinelle run successfully with this driver.
>
>This driver is tested with v4l2-ctl[1] and Gstreamer[2].
>
>[1]: v4l2-ctl --verbose --set-fmt-video-out=pixelformat=H264
>--set-fmt-video=pixelformat=NV12 --stream-mmap --stream-out-mmap
>--stream-from /media/FVDO_Freeway_720p.264 --stream-to out.NV12
>
>[2]: gst-launch-1.0 filesrc location=/media/media/4k_decode_clip.264 !
>h264parse ! v4l2h264dec capture-io-mode=dmabuf ! kmssink
>
>The driver is tested with v4l2-compliance.
>
>Result on SM8550:
>
>v4l2-compliance --stream-from /media/FVDO_Freeway_720p.264 -s250
>
>v4l2-compliance 1.29.0-5273, 64 bits, 64-bit time_t
>v4l2-compliance SHA: 0ed98432fe68 2024-11-13 12:54:45
>
>Compliance test for iris_driver device /dev/video0:
>
>Driver Info:
>        Driver name      : iris_driver
>        Card type        : iris_decoder
>        Bus info         : platform:aa00000.video-codec
>        Driver version   : 6.12.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: 5 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)
>        test MMAP (select, REQBUFS): OK
>        test MMAP (epoll, REQBUFS): OK
>        test MMAP (select, CREATE_BUFS): OK
>        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
>
>Result on SM8250:
>
>v4l2-compliance --stream-from /media/FVDO_Freeway_720p.264 -s250
>
>v4l2-compliance 1.29.0-5273, 64 bits, 64-bit time_t
>v4l2-compliance SHA: 0ed98432fe68 2024-11-13 12:54:45
>
>Compliance test for iris_driver device /dev/video0:
>
>Driver Info:
>        Driver name      : iris_driver
>        Card type        : iris_decoder
>        Bus info         : platform:aa00000.video-codec
>        Driver version   : 6.12.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: 5 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)
>        test MMAP (select, REQBUFS): OK
>        test MMAP (epoll, REQBUFS): OK
>        test MMAP (select, CREATE_BUFS): OK
>        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
>
>The result of fluster test on SM8550:
>
>77/135 while testing JVT-AVC_V1 with
>GStreamer-H.264-V4L2-Gst1.0.JVT-AVC_V1.
>The failing tests are:
>- 52 test vectors failed due to interlaced clips: Interlaced decoding is
>  not supported in iris driver.
>  Test Vectors:
>        cabac_mot_fld0_full
>        cabac_mot_mbaff0_full
>        cabac_mot_picaff0_full
>        CABREF3_Sand_D
>        CAFI1_SVA_C
>        CAMA1_Sony_C
>        CAMA1_TOSHIBA_B
>        cama1_vtc_c
>        cama2_vtc_b
>        CAMA3_Sand_E
>        cama3_vtc_b
>        CAMACI3_Sony_C
>        CAMANL1_TOSHIBA_B
>        CAMANL2_TOSHIBA_B
>        CAMANL3_Sand_E
>        CAMASL3_Sony_B
>        CAMP_MOT_MBAFF_L30
>        CAMP_MOT_MBAFF_L31
>        CANLMA2_Sony_C
>        CANLMA3_Sony_C
>        CAPA1_TOSHIBA_B
>        CAPAMA3_Sand_F
>        cavlc_mot_fld0_full_B
>        cavlc_mot_mbaff0_full_B
>        cavlc_mot_picaff0_full_B
>        CVCANLMA2_Sony_C
>        CVFI1_Sony_D
>        CVFI1_SVA_C
>        CVFI2_Sony_H
>        CVFI2_SVA_C
>        CVMA1_Sony_D
>        CVMA1_TOSHIBA_B
>        CVMANL1_TOSHIBA_B
>        CVMANL2_TOSHIBA_B
>        CVMAPAQP3_Sony_E
>        CVMAQP2_Sony_G
>        CVMAQP3_Sony_D
>        CVMP_MOT_FLD_L30_B
>        CVNLFI1_Sony_C
>        CVNLFI2_Sony_H
>        CVPA1_TOSHIBA_B
>        FI1_Sony_E
>        MR6_BT_B
>        MR7_BT_B
>        MR8_BT_B
>        MR9_BT_B
>        Sharp_MP_Field_1_B
>        Sharp_MP_Field_2_B
>        Sharp_MP_Field_3_B
>        Sharp_MP_PAFF_1r2
>        Sharp_MP_PAFF_2r
>        CVMP_MOT_FRM_L31_B
>- 3 test vectors failed due to unsupported bitstream.
>  num_slice_group_minus1 greater than zero is not supported by the
>  hardware.
>  Test Vectors:
>        FM1_BT_B
>        FM1_FT_E
>        FM2_SVA_C
>- 2 test vectors failed because SP_SLICE type is not supported by the
>  hardware.
>  Test Vectors:
>        SP1_BT_A
>        sp2_bt_b
>- 1 test vector failed due to unsupported profile:
>  V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED is being deprecated from sm8550
>  onwards due to hardware issues.
>  Test Vectors:
>        BA3_SVA_C
>
>23/69 while testing JVT-FR-EXT with
>GStreamer-H.264-V4L2-Gst1.0.JVT-AVC_V1.
>The failing tests are:
>- 21 test vectors failed due to interlaced clips: Interlaced decoding is
>  not supported in iris driver.
>  Test Vectors:
>        brcm_freh4
>        brcm_freh5
>        brcm_freh6
>        brcm_freh10
>        brcm_freh11
>        freh7_b
>        FREXT01_JVC_D
>        FREXT02_JVC_C
>        FRExt2_Panasonic_C
>        FRExt4_Panasonic_B
>        HCAFF1_HHI_B
>        HCAMFF1_HHI_B
>        HCHP3_HHI_A
>        HPCAFL_BRCM_C
>        HPCAFLNL_BRCM_C
>        HVLCFI0_Sony_B
>        HVLCMFF0_Sony_B
>        HVLCPFF0_Sony_B
>        HPCAMAPALQ_BRCM_B
>        HPCVFL_BRCM_A
>        HPCVFLNL_BRCM_A
>- 2 test vectors failed due to 10bit bitstream: 10bit decoding is not
>  supported in iris driver
>  Test Vectors:
>        FREH10-1
>        FREH10-2
>- 21 test vectors failed due to unsupported profile:
>  V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422 is not supported by the
>  hardware.
>  Test Vectors:
>        FREXT1_TANDBERG_A
>        FREXT2_TANDBERG_A
>        FREXT3_TANDBERG_A
>        Hi422FR1_SONY_A
>        Hi422FR2_SONY_A
>        Hi422FR3_SONY_A
>        Hi422FR4_SONY_A
>        Hi422FR6_SONY_A
>        Hi422FR7_SONY_A
>        Hi422FR8_SONY_A
>        Hi422FR9_SONY_A
>        Hi422FR10_SONY_A
>        Hi422FR11_SONY_A
>        Hi422FR12_SONY_A
>        Hi422FR13_SONY_A
>        Hi422FR14_SONY_A
>        Hi422FR15_SONY_A
>        Hi422FREXT16_SONY_A
>        Hi422FREXT17_SONY_A
>        Hi422FREXT18_SONY_A
>        Hi422FREXT19_SONY_A
>- 2 test vectors failed due to unsupported bitstream.
>  chroma_fmt_idc is equal to 0(monochrome) in the bitstream which is not
>  supported by the hardware.
>  Test Vectors:
>        HPCAMOLQ_BRCM_B
>        HPCVMOLQ_BRCM_B
>
>The result of fluster test on SM8250:
>
>78/135 while testing JVT-AVC_V1 with
>GStreamer-H.264-V4L2-Gst1.0.JVT-AVC_V1.
>The failing tests are:
>- 52 test vectors failed due to interlaced clips: Interlaced decoding is
>  not supported in iris driver.
>  Test Vectors:
>        cabac_mot_fld0_full
>        cabac_mot_mbaff0_full
>        cabac_mot_picaff0_full
>        CABREF3_Sand_D
>        CAFI1_SVA_C
>        CAMA1_Sony_C
>        CAMA1_TOSHIBA_B
>        cama1_vtc_c
>        cama2_vtc_b
>        CAMA3_Sand_E
>        cama3_vtc_b
>        CAMACI3_Sony_C
>        CAMANL1_TOSHIBA_B
>        CAMANL2_TOSHIBA_B
>        CAMANL3_Sand_E
>        CAMASL3_Sony_B
>        CAMP_MOT_MBAFF_L30
>        CAMP_MOT_MBAFF_L31
>        CANLMA2_Sony_C
>        CANLMA3_Sony_C
>        CAPA1_TOSHIBA_B
>        CAPAMA3_Sand_F
>        cavlc_mot_fld0_full_B
>        cavlc_mot_mbaff0_full_B
>        cavlc_mot_picaff0_full_B
>        CVCANLMA2_Sony_C
>        CVFI1_Sony_D
>        CVFI1_SVA_C
>        CVFI2_Sony_H
>        CVFI2_SVA_C
>        CVMA1_Sony_D
>        CVMA1_TOSHIBA_B
>        CVMANL1_TOSHIBA_B
>        CVMANL2_TOSHIBA_B
>        CVMAPAQP3_Sony_E
>        CVMAQP2_Sony_G
>        CVMAQP3_Sony_D
>        CVMP_MOT_FLD_L30_B
>        CVNLFI1_Sony_C
>        CVNLFI2_Sony_H
>        CVPA1_TOSHIBA_B
>        FI1_Sony_E
>        MR6_BT_B
>        MR7_BT_B
>        MR8_BT_B
>        MR9_BT_B
>        Sharp_MP_Field_1_B
>        Sharp_MP_Field_2_B
>        Sharp_MP_Field_3_B
>        Sharp_MP_PAFF_1r2
>        Sharp_MP_PAFF_2r
>        CVMP_MOT_FRM_L31_B
>- 3 test vectors failed due to unsupported bitstream.
>  num_slice_group_minus1 greater than zero is not supported by the
>  hardware.
>  Test Vectors:
>        FM1_BT_B
>        FM1_FT_E
>        FM2_SVA_C
>- 2 test vectors failed because SP_SLICE type is not supported by the
>  hardware.
>  Test Vectors:
>        SP1_BT_A
>        sp2_bt_b
>
>23/69 while testing JVT-FR-EXT with
>GStreamer-H.264-V4L2-Gst1.0.JVT-AVC_V1.
>The failing tests are:
>- 21 test vectors failed due to interlaced clips: Interlaced decoding is
>  not supported in iris driver.
>  Test Vectors:
>        brcm_freh4
>        brcm_freh5
>        brcm_freh6
>        brcm_freh10
>        brcm_freh11
>        freh7_b
>        FREXT01_JVC_D
>        FREXT02_JVC_C
>        FRExt2_Panasonic_C
>        FRExt4_Panasonic_B
>        HCAFF1_HHI_B
>        HCAMFF1_HHI_B
>        HCHP3_HHI_A
>        HPCAFL_BRCM_C
>        HPCAFLNL_BRCM_C
>        HVLCFI0_Sony_B
>        HVLCMFF0_Sony_B
>        HVLCPFF0_Sony_B
>        HPCAMAPALQ_BRCM_B
>        HPCVFL_BRCM_A
>        HPCVFLNL_BRCM_A
>- 2 test vectors failed due to 10bit bitstream: 10bit decoding is not
>  supported in iris driver
>  Test Vectors:
>        FREH10-1
>        FREH10-2
>- 21 test vectors failed due to unsupported profile:
>  V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422 is not supported by the
>  hardware.
>  Test Vectors:
>        FREXT1_TANDBERG_A
>        FREXT2_TANDBERG_A
>        FREXT3_TANDBERG_A
>        Hi422FR1_SONY_A
>        Hi422FR2_SONY_A
>        Hi422FR3_SONY_A
>        Hi422FR4_SONY_A
>        Hi422FR6_SONY_A
>        Hi422FR7_SONY_A
>        Hi422FR8_SONY_A
>        Hi422FR9_SONY_A
>        Hi422FR10_SONY_A
>        Hi422FR11_SONY_A
>        Hi422FR12_SONY_A
>        Hi422FR13_SONY_A
>        Hi422FR14_SONY_A
>        Hi422FR15_SONY_A
>        Hi422FREXT16_SONY_A
>        Hi422FREXT17_SONY_A
>        Hi422FREXT18_SONY_A
>        Hi422FREXT19_SONY_A
>- 2 test vectors failed due to unsupported bitstream.
>  chroma_fmt_idc is equal to 0(monochrome) in the bitstream which is not
>  supported by the hardware.
>  Test Vectors:
>        HPCAMOLQ_BRCM_B
>        HPCVMOLQ_BRCM_B
>
>To: Vikash Garodia <quic_vgarodia@...cinc.com>
>To: Abhinav Kumar <quic_abhinavk@...cinc.com>
>To: Mauro Carvalho Chehab <mchehab@...nel.org>
>To: Rob Herring <robh@...nel.org>
>To: Krzysztof Kozlowski <krzk+dt@...nel.org>
>To: Conor Dooley <conor+dt@...nel.org>
>To: Philipp Zabel <p.zabel@...gutronix.de>
>Cc: Hans Verkuil <hverkuil@...all.nl>
>Cc: Sebastian Fricke <sebastian.fricke@...labora.com>
>Cc: Bryan O'Donoghue <bryan.odonoghue@...aro.org>
>Cc: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
>Cc: Neil Armstrong <neil.armstrong@...aro.org>
>Cc: Nicolas Dufresne <nicolas@...fresne.ca>
>Cc: Uwe Kleine-König <u.kleine-koenig@...libre.com>
>Cc: Jianhua Lu <lujianhua000@...il.com>
>Cc: linux-media@...r.kernel.org
>Cc: linux-arm-msm@...r.kernel.org
>Cc: devicetree@...r.kernel.org
>Cc: linux-kernel@...r.kernel.org
>
>Signed-off-by: Dikshita Agarwal <quic_dikshita@...cinc.com>
>---
>Dikshita Agarwal (18):
>      dt-bindings: media: Add video support for QCOM SM8550 SoC
>      media: iris: add platform driver for iris video device
>      media: iris: implement iris v4l2 file ops
>      media: iris: introduce iris core state management with shared queues
>      media: iris: implement video firmware load/unload
>      media: iris: implement boot sequence of the firmware
>      media: iris: introduce host firmware interface with necessary hooks
>      media: iris: implement power management
>      media: iris: implement reqbuf ioctl with vb2_queue_setup
>      media: iris: implement iris v4l2_ctrl_ops
>      media: iris: implement vb2 streaming ops
>      media: iris: allocate, initialize and queue internal buffers
>      media: iris: implement vb2 ops for buf_queue and firmware response
>      media: iris: add support for dynamic resolution change
>      media: iris: handle streamoff/on from client in dynamic resolution change
>      media: iris: add support for drain sequence
>      media: iris: enable video driver probe of SM8250 SoC
>      media: MAINTAINERS: add Qualcomm iris video accelerator driver
>
>Vedang Nagar (10):
>      media: iris: implement s_fmt, g_fmt and try_fmt ioctls
>      media: iris: implement g_selection ioctl
>      media: iris: implement enum_fmt and enum_framesizes ioctls
>      media: iris: implement subscribe_event and unsubscribe_event ioctls
>      media: iris: implement query_cap ioctl
>      media: iris: implement set properties to firmware during streamon
>      media: iris: subscribe parameters and properties to firmware for hfi_gen2
>      media: iris: add check whether the video session is supported or not
>      media: iris: implement power scaling for vpu2 and vpu3
>      media: iris: add check to allow sub states transitions
>
> .../bindings/media/qcom,sm8550-iris.yaml           | 158 ++++
> MAINTAINERS                                        |  10 +
> drivers/media/platform/qcom/Kconfig                |   1 +
> drivers/media/platform/qcom/Makefile               |   1 +
> drivers/media/platform/qcom/iris/Kconfig           |  13 +
> drivers/media/platform/qcom/iris/Makefile          |  27 +
> drivers/media/platform/qcom/iris/iris_buffer.c     | 624 ++++++++++++++
> drivers/media/platform/qcom/iris/iris_buffer.h     | 117 +++
> drivers/media/platform/qcom/iris/iris_core.c       |  96 +++
> drivers/media/platform/qcom/iris/iris_core.h       | 111 +++
> drivers/media/platform/qcom/iris/iris_ctrls.c      | 259 ++++++
> drivers/media/platform/qcom/iris/iris_ctrls.h      |  22 +
> drivers/media/platform/qcom/iris/iris_firmware.c   | 110 +++
> drivers/media/platform/qcom/iris/iris_firmware.h   |  15 +
> drivers/media/platform/qcom/iris/iris_hfi_common.c | 176 ++++
> drivers/media/platform/qcom/iris/iris_hfi_common.h | 155 ++++
> drivers/media/platform/qcom/iris/iris_hfi_gen1.h   |  16 +
> .../platform/qcom/iris/iris_hfi_gen1_command.c     | 826 ++++++++++++++++++
> .../platform/qcom/iris/iris_hfi_gen1_defines.h     | 448 ++++++++++
> .../platform/qcom/iris/iris_hfi_gen1_response.c    | 666 ++++++++++++++
> drivers/media/platform/qcom/iris/iris_hfi_gen2.h   |  41 +
> .../platform/qcom/iris/iris_hfi_gen2_command.c     | 957 +++++++++++++++++++++
> .../platform/qcom/iris/iris_hfi_gen2_defines.h     | 160 ++++
> .../platform/qcom/iris/iris_hfi_gen2_packet.c      | 292 +++++++
> .../platform/qcom/iris/iris_hfi_gen2_packet.h      | 125 +++
> .../platform/qcom/iris/iris_hfi_gen2_response.c    | 931 ++++++++++++++++++++
> drivers/media/platform/qcom/iris/iris_hfi_queue.c  | 314 +++++++
> drivers/media/platform/qcom/iris/iris_hfi_queue.h  | 182 ++++
> drivers/media/platform/qcom/iris/iris_instance.h   |  79 ++
> .../platform/qcom/iris/iris_platform_common.h      | 186 ++++
> .../platform/qcom/iris/iris_platform_sm8250.c      | 148 ++++
> .../platform/qcom/iris/iris_platform_sm8550.c      | 265 ++++++
> drivers/media/platform/qcom/iris/iris_power.c      | 140 +++
> drivers/media/platform/qcom/iris/iris_power.h      |  13 +
> drivers/media/platform/qcom/iris/iris_probe.c      | 378 ++++++++
> drivers/media/platform/qcom/iris/iris_resources.c  | 131 +++
> drivers/media/platform/qcom/iris/iris_resources.h  |  18 +
> drivers/media/platform/qcom/iris/iris_state.c      | 276 ++++++
> drivers/media/platform/qcom/iris/iris_state.h      | 144 ++++
> drivers/media/platform/qcom/iris/iris_utils.c      |  90 ++
> drivers/media/platform/qcom/iris/iris_utils.h      |  53 ++
> drivers/media/platform/qcom/iris/iris_vb2.c        | 336 ++++++++
> drivers/media/platform/qcom/iris/iris_vb2.h        |  19 +
> drivers/media/platform/qcom/iris/iris_vdec.c       | 662 ++++++++++++++
> drivers/media/platform/qcom/iris/iris_vdec.h       |  25 +
> drivers/media/platform/qcom/iris/iris_vidc.c       | 455 ++++++++++
> drivers/media/platform/qcom/iris/iris_vidc.h       |  15 +
> drivers/media/platform/qcom/iris/iris_vpu2.c       |  38 +
> drivers/media/platform/qcom/iris/iris_vpu3.c       | 122 +++
> drivers/media/platform/qcom/iris/iris_vpu_buffer.c | 270 ++++++
> drivers/media/platform/qcom/iris/iris_vpu_buffer.h |  91 ++
> drivers/media/platform/qcom/iris/iris_vpu_common.c | 369 ++++++++
> drivers/media/platform/qcom/iris/iris_vpu_common.h |  28 +
> .../platform/qcom/iris/iris_vpu_register_defines.h |  17 +
> 54 files changed, 11221 insertions(+)
>---
>base-commit: 698b6e3163bafd61e1b7d13572e2c42974ac85ec
>change-id: 20241028-qcom-video-iris-94d5a12e6d9e
>
>Best regards,
>-- 
>Dikshita Agarwal <quic_dikshita@...cinc.com>
>
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ