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

Irui Wang posted 6 patches 1 month ago
.../media/mediatek,vcodec-encoder.yaml        |  22 +
.../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  |  36 +-
.../vcodec/encoder/mtk_vcodec_enc_drv.c       |  28 +
.../vcodec/encoder/mtk_vcodec_enc_drv.h       |  15 +-
.../vcodec/encoder/venc/venc_common_if.c      | 683 ++++++++++++++++++
.../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     |  47 +-
15 files changed, 856 insertions(+), 52 deletions(-)
create mode 100644 drivers/media/platform/mediatek/vcodec/encoder/venc/venc_common_if.c
[PATCH v5 0/6] Add support for MT8196 video encoder
Posted by Irui Wang 1 month ago
This patch series add support for MT8196 video encoder.
patch 1~3: Add a new encoder driver interface for new VCP firmware.
patch 4: Add new encoder driver platform data.
patch 5: Add dt-bindings.
patch 6: Add compatible 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:
                fail: v4l2-test-controls.cpp(1171): node->codec_mask & STATEFUL_ENCODER
        test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL

This patch set depends on "media: mediatek: vcodec: support video decoder in mt8196"[1]

[1] https://patchwork.linuxtv.org/project/linux-media/list/?series=21718

Change in v5:
 - Rewrite patch5 commit subject.
 - Add else statement in patch5.
 - Link to v4: https://patchwork.linuxtv.org/project/linux-media/list/?series=21757

Change in v4:
 - Rework patch3 commit message.
 - Rework patch5 commit with more details.
 - Rebase patch onto decoder's patch set.
 - Link to v3: https://patchwork.linuxtv.org/project/linux-media/cover/20250814085642.17343-1-kyrie.wu@mediatek.com/

Change in v3:
 - Add venc rc buffer alloc failure error handling.
 - Add mediatek,vcp property definition in dt-bindning.

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
  media: dt-bindings: mediatek,vcodec-encoder: Add MT8196
  media: mediatek: encoder: Add MT8196 encoder compatible data

 .../media/mediatek,vcodec-encoder.yaml        |  22 +
 .../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  |  36 +-
 .../vcodec/encoder/mtk_vcodec_enc_drv.c       |  28 +
 .../vcodec/encoder/mtk_vcodec_enc_drv.h       |  15 +-
 .../vcodec/encoder/venc/venc_common_if.c      | 683 ++++++++++++++++++
 .../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     |  47 +-
 15 files changed, 856 insertions(+), 52 deletions(-)
 create mode 100644 drivers/media/platform/mediatek/vcodec/encoder/venc/venc_common_if.c

-- 
2.45.2
Re: [PATCH v5 0/6] Add support for MT8196 video encoder
Posted by Nicolas Dufresne 1 week, 6 days ago
Hi,

Le lundi 02 mars 2026 à 11:52 +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: Add new encoder driver platform data.
> patch 5: Add dt-bindings.
> patch 6: Add compatible 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:
>                 fail: v4l2-test-controls.cpp(1171): node->codec_mask & STATEFUL_ENCODER
>         test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
> 
> This patch set depends on "media: mediatek: vcodec: support video decoder in mt8196"[1]
> 
> [1] https://patchwork.linuxtv.org/project/linux-media/list/?series=21718

This set obviously does not apply as it has this dependency. The dependency had
issues, and I just asked it to be rebased on the MT8189 series, which include
the refactoring needed and common to both. Please coordinate, the faster I get
an update for MT8189, the faster these two MT8196 will be picked.

regards,
Nicolas

> 
> Change in v5:
>  - Rewrite patch5 commit subject.
>  - Add else statement in patch5.
>  - Link to v4: https://patchwork.linuxtv.org/project/linux-media/list/?series=21757
> 
> Change in v4:
>  - Rework patch3 commit message.
>  - Rework patch5 commit with more details.
>  - Rebase patch onto decoder's patch set.
>  - Link to v3: https://patchwork.linuxtv.org/project/linux-media/cover/20250814085642.17343-1-kyrie.wu@mediatek.com/
> 
> Change in v3:
>  - Add venc rc buffer alloc failure error handling.
>  - Add mediatek,vcp property definition in dt-bindning.
> 
> 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
>   media: dt-bindings: mediatek,vcodec-encoder: Add MT8196
>   media: mediatek: encoder: Add MT8196 encoder compatible data
> 
>  .../media/mediatek,vcodec-encoder.yaml        |  22 +
>  .../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  |  36 +-
>  .../vcodec/encoder/mtk_vcodec_enc_drv.c       |  28 +
>  .../vcodec/encoder/mtk_vcodec_enc_drv.h       |  15 +-
>  .../vcodec/encoder/venc/venc_common_if.c      | 683 ++++++++++++++++++
>  .../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     |  47 +-
>  15 files changed, 856 insertions(+), 52 deletions(-)
>  create mode 100644 drivers/media/platform/mediatek/vcodec/encoder/venc/venc_common_if.c