[PATCH v2 0/6] Add support for MT8196 video encoder

Irui Wang (王瑞) Irui.Wang at mediatek.com
Mon Jun 2 20:33:42 PDT 2025


Dear Nicolas,

Thank you for your reply.

the failed case is VIDIOC_(UN)SUBSCRIBE_EVENT

                fail: v4l2-test-controls.cpp(1171): node->codec_mask &
STATEFUL_ENCODER
        test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL

because encoder driver is not register v4l2_ioctl_ops
.vidioc_(un)subscribe_event


The full report is below:

v4l2-compliance -d /dev/video3
v4l2-compliance 1.28.1, 64 bits, 64-bit time_t

Compliance test for mtk-vcodec-enc device /dev/video3:

Driver Info:
        Driver name      : mtk-vcodec-enc
        Card type        : MT8196 video encoder
        Bus info         : platform:38020000.video-codec
        Driver version   : 6.6.76
        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/video3 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
                fail: v4l2-test-controls.cpp(1171): node->codec_mask &
STATEFUL_ENCODER
        test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
        test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
        Standard Controls: 16 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)

Total for mtk-vcodec-enc device /dev/video3: 47, Succeeded: 46, Failed:
1, Warnings:0

On Fri, 2025-05-30 at 10:40 -0400, Nicolas Dufresne wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> 
> 
> Hi,
> 
> Le mercredi 28 mai 2025 à 14:36 +0800, Irui Wang a écrit :
> > This patch series add support for MT8196 video encoder.
> > patch 1~3: Add a new encoder driver interface for new VCP firmware.
> > patch 4~6: Add MT8196 encoder driver platform data.
> > 
> > About adding new driver support, the v4l2-compliance report shows:
> > "Total for mtk-vcodec-enc device /dev/video3: 47, Succeeded: 46,
> > Failed: 1, Warnings: 0"
> > The 1 Failed case is not caused by current patch set.
> 
> We really want to see the full report, simply reply to this cover
> letter with
> the entire report to fix it.
> 
> Nicolas
> 
> > 
> > This patch set depends on "media: mediatek: vcodec: support video
> > decoder in mt8196"[1]
> > 
> > [1] 
> > https://urldefense.com/v3/__https://patchwork.linuxtv.org/project/linux-media/list/?series=15232__;!!CTRNKA9wMg0ARbw!ne2002IRjhf6EKghCo-bSq_d-P_FNNtNZblQ1BHNJvvRejenXTbX2xvZNG93GyFWHSdydW_3ek9M_8kHU4BI_ZhTiofyWkQ$
> > 
> > Change in v2:
> >  - Add support for VCP encode process.
> >  - Add MT8196 encoder driver platform data.
> >  - Rebase encoder patch onto decoder's patch set.
> >  - Fix some review comments in v1.
> > 
> > Irui Wang (6):
> >   media: mediatek: encoder: Add a new encoder driver interface
> >   media: mediatek: encoder: Add support for common firmware
> > interface
> >   media: mediatek: encoder: Add support for VCP encode process
> >   media: mediatek: encoder: Add a new platform data member
> >   dt-bindings: media: mediatek: encoder: Add encoder dt-bindings
> > for
> >     MT8196
> >   media: mediatek: encoder: Add MT8196 encoder compatible data
> > 
> >  .../media/mediatek,vcodec-encoder.yaml        |  12 +
> >  .../mediatek/vcodec/common/mtk_vcodec_fw.c    |  19 +
> >  .../mediatek/vcodec/common/mtk_vcodec_fw.h    |   2 +
> >  .../vcodec/common/mtk_vcodec_fw_priv.h        |   1 +
> >  .../vcodec/common/mtk_vcodec_fw_vcp.c         |   6 +
> >  .../platform/mediatek/vcodec/encoder/Makefile |   1 +
> >  .../mediatek/vcodec/encoder/mtk_vcodec_enc.c  |  37 +-
> >  .../vcodec/encoder/mtk_vcodec_enc_drv.c       |  28 +
> >  .../vcodec/encoder/mtk_vcodec_enc_drv.h       |  15 +-
> >  .../vcodec/encoder/venc/venc_common_if.c      | 678
> > ++++++++++++++++++
> >  .../vcodec/encoder/venc/venc_h264_if.c        |   8 +-
> >  .../mediatek/vcodec/encoder/venc_drv_if.c     |   3 +-
> >  .../mediatek/vcodec/encoder/venc_drv_if.h     |  11 +-
> >  .../mediatek/vcodec/encoder/venc_ipi_msg.h    |  26 +
> >  .../mediatek/vcodec/encoder/venc_vpu_if.c     |  51 +-
> >  15 files changed, 843 insertions(+), 55 deletions(-)
> >  create mode 100644
> > drivers/media/platform/mediatek/vcodec/encoder/venc/venc_common_if.
> > c


More information about the Linux-mediatek mailing list