[PATCH v3 00/14] media: mediatek: vcodec: support video decoder in mt8196
From: Yunfei Dong <yunfei.dong@mediatek.com>
Date: 2026-02-11 05:42:06
Also in:
linux-devicetree, linux-media, linux-mediatek, lkml
This patch set adds support for the video decoder on the MediaTek MT8196 platform, leveraging the VCP microprocessor for enhanced performance. It introduces new firmware interfaces for kernel-side communication with VCP, adds MT8196 compatible, codec levels/profiles, and private data. Rewrites the AV1 driver to support extended VSI structures, then change irq table and cdf table size. This patch set depends on "Add VCP support for mt8196"[1] [1] https://patchwork.kernel.org/project/linux-remoteproc/patch/20250402092134.12293-2-xiangzhi.tang@mediatek.com/ Compliance Test Result: - v4l2-compliance: 48/49 tests passed, 1 failed (known issue) - fail: v4l2-test-controls.cpp(981): ret (got 13) - test VIDIOC_G/S/TRY_EXT_CTRLS: FAIL Fluster Test Result: - H264: - Ran 95/135 tests successfully in 73.540 secs - H265: - Ran 142/147 tests successfully in 100.168 secs - VP9: - Ran 276/305 tests successfully in 106.804 secs - AV1: - Ran 240/242 tests successfully in 23.991 secs --- Changed in v3: - Depends on change no update - Add Compliance and Fluster test result - Re-write the commit message for patch 12 - Change the patches according to review suggestion for patch: 3/4/5/6/14 Changed in v2: - re-write the commit message for patch 1 --- Yunfei Dong (14): dt-bindings: media: mediatek: vcodec: add decoder dt-bindings for mt8196 media: mediatek: vcodec: add decoder compatible to support mt8196 media: mediatek: vcodec: add driver to support vcp media: mediatek: vcodec: add driver to support vcp encoder media: mediatek: vcodec: get different firmware ipi id media: mediatek: vcodec: get share memory address media: mediatek: vcodec: define MT8196 vcodec levels. media: mediatek: vcodec: support vcp architecture media: mediatek: vcodec: support 36bit iova address media: mediatek: vcodec: clean xpc status media: mediatek: vcodec: add debug information media: mediatek: vcodec: send share memory address to vcp media: mediatek: decoder: fill av1 buffer size with picinfo media: mediatek: decoder: support av1 extend vsi .../media/mediatek,vcodec-subdev-decoder.yaml | 1 + .../media/platform/mediatek/vcodec/Kconfig | 4 + .../platform/mediatek/vcodec/common/Makefile | 4 + .../mediatek/vcodec/common/mtk_vcodec_dbgfs.c | 21 +- .../mediatek/vcodec/common/mtk_vcodec_fw.c | 16 + .../mediatek/vcodec/common/mtk_vcodec_fw.h | 2 + .../vcodec/common/mtk_vcodec_fw_priv.h | 12 + .../vcodec/common/mtk_vcodec_fw_vcp.c | 561 ++++++++++++++++++ .../vcodec/common/mtk_vcodec_fw_vcp.h | 153 +++++ .../vcodec/decoder/mtk_vcodec_dec_drv.c | 16 + .../vcodec/decoder/mtk_vcodec_dec_drv.h | 1 + .../vcodec/decoder/mtk_vcodec_dec_hw.c | 28 + .../vcodec/decoder/mtk_vcodec_dec_hw.h | 13 +- .../vcodec/decoder/mtk_vcodec_dec_stateless.c | 6 + .../vcodec/decoder/vdec/vdec_av1_req_lat_if.c | 113 +++- .../decoder/vdec/vdec_h264_req_multi_if.c | 11 +- .../decoder/vdec/vdec_hevc_req_multi_if.c | 12 +- .../vcodec/decoder/vdec/vdec_vp8_req_if.c | 5 +- .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 29 +- .../mediatek/vcodec/decoder/vdec_ipi_msg.h | 2 + .../mediatek/vcodec/decoder/vdec_vpu_if.c | 12 +- .../mediatek/vcodec/encoder/mtk_vcodec_enc.c | 1 - .../mediatek/vcodec/encoder/mtk_vcodec_enc.h | 2 + 23 files changed, 987 insertions(+), 38 deletions(-) create mode 100644 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vcp.c create mode 100644 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vcp.h -- 2.45.2