Re: [PATCH v4, 00/15] media: mtk-vcodec: support for MT8192 decoder

From: Nicolas Dufresne
Date: Tue Jan 11 2022 - 14:55:43 EST


Hello Yunfei,

Le lundi 10 janvier 2022 à 16:34 +0800, Yunfei Dong a écrit :
> This series adds support for mt8192 h264/vp8/vp9 decoder drivers. Firstly, refactor
> power/clock/interrupt interfaces for mt8192 is lat and core architecture.
>
> Secondly, add new functions to get frame buffer size and resolution according
> to decoder capability from scp side. Then add callback function to get/put
> capture buffer in order to enable lat and core decoder in parallel.
>
> Then add to support MT21C compressed mode and fix v4l2-compliance fail.

Perhaps you wanted to append the referred v4l2-compliance output (fixed) ?

As we started doing with other codec driver submission (just did last month for
NXP), can you state which software this driver was tested with ? I have started
receiving feedback from third party that MTK driver support is not reproducible,
I would like to work with you to fix the situation.

regards,
Nicolas

>
> Next, extract H264 request api driver to let mt8183 and mt8192 use the same
> code, and adds mt8192 frame based h264 driver for stateless decoder.
>
> Lastly, add vp8 and vp9 stateless decoder drivers.
>
> Patches 1 to refactor power/clock/interrupt interface.
> Patches 2~4 get frame buffer size and resolution according to decoder capability.
> Patches 5~6 enable lat and core decode in parallel.
> Patch 7~10 add to support MT21C compressed mode and fix v4l2-compliance fail.
> patch 11 record capture queue format type.
> Patch 12~13 extract h264 driver and add mt8192 frame based driver for h264 decoder.
> Patch 14~15 add vp8 and vp9 stateless decoder drivers.
> ----
> Dependents on "Support multi hardware decode using of_platform_populate"[1].
>
> This patches are the second part used to add mt8192 h264 decoder. And the base part is [1].
>
> [1]https://patchwork.linuxtv.org/project/linux-media/cover/20211215061552.8523-1-yunfei.dong@xxxxxxxxxxxx/
> ---
> changes compared with v3:
> - remove enum mtk_chip for patch 2.
> - add vp8 stateless decoder drivers for patch 14.
> - add vp9 stateless decoder drivers for patch 15.
> changes compared with v2:
> - add new patch 11 to record capture queue format type.
> - separate patch 4 according to tzung-bi's suggestion.
> - re-write commit message for patch 5 according to tzung-bi's suggestion.
> changes compared with v1:
> - rewrite commit message for patch 12.
> - rewrite cover-letter message.
> ---
> Yunfei Dong (15):
> media: mtk-vcodec: Add vdec enable/disable hardware helpers
> media: mtk-vcodec: Using firmware type to separate different firmware
> architecture
> media: mtk-vcodec: get capture queue buffer size from scp
> media: mtk-vcodec: Read max resolution from dec_capability
> media: mtk-vcodec: Call v4l2_m2m_set_dst_buffered() set capture buffer
> buffered
> media: mtk-vcodec: Refactor get and put capture buffer flow
> media: mtk-vcodec: Refactor supported vdec formats and framesizes
> media: mtk-vcodec: Add format to support MT21C
> media: mtk-vcodec: disable vp8 4K capability
> media: mtk-vcodec: Fix v4l2-compliance fail
> media: mtk-vcodec: record capture queue format type
> media: mtk-vcodec: Extract H264 common code
> media: mtk-vcodec: Add h264 decoder driver for mt8192
> media: mtk-vcodec: Add vp8 decoder driver for mt8192
> media: mtk-vcodec: Add vp9 decoder driver for mt8192
>
> drivers/media/platform/mtk-vcodec/Makefile | 4 +
> .../platform/mtk-vcodec/mtk_vcodec_dec.c | 49 +-
> .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 5 -
> .../platform/mtk-vcodec/mtk_vcodec_dec_pm.c | 168 +-
> .../platform/mtk-vcodec/mtk_vcodec_dec_pm.h | 6 +-
> .../mtk-vcodec/mtk_vcodec_dec_stateful.c | 14 +-
> .../mtk-vcodec/mtk_vcodec_dec_stateless.c | 284 ++-
> .../platform/mtk-vcodec/mtk_vcodec_drv.h | 40 +-
> .../platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 5 -
> .../media/platform/mtk-vcodec/mtk_vcodec_fw.c | 6 +
> .../media/platform/mtk-vcodec/mtk_vcodec_fw.h | 1 +
> .../mtk-vcodec/vdec/vdec_h264_req_common.c | 311 +++
> .../mtk-vcodec/vdec/vdec_h264_req_common.h | 254 ++
> .../mtk-vcodec/vdec/vdec_h264_req_if.c | 416 +---
> .../mtk-vcodec/vdec/vdec_h264_req_multi_if.c | 605 +++++
> .../mtk-vcodec/vdec/vdec_vp8_req_if.c | 445 ++++
> .../mtk-vcodec/vdec/vdec_vp9_req_lat_if.c | 2066 +++++++++++++++++
> .../media/platform/mtk-vcodec/vdec_drv_if.c | 36 +-
> .../media/platform/mtk-vcodec/vdec_drv_if.h | 3 +
> .../media/platform/mtk-vcodec/vdec_ipi_msg.h | 37 +
> .../platform/mtk-vcodec/vdec_msg_queue.c | 2 +
> .../media/platform/mtk-vcodec/vdec_vpu_if.c | 54 +-
> .../media/platform/mtk-vcodec/vdec_vpu_if.h | 15 +
> .../media/platform/mtk-vcodec/venc_vpu_if.c | 2 +-
> include/linux/remoteproc/mtk_scp.h | 2 +
> 25 files changed, 4248 insertions(+), 582 deletions(-)
> create mode 100644 drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_common.c
> create mode 100644 drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_common.h
> create mode 100644 drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_multi_if.c
> create mode 100644 drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_req_if.c
> create mode 100644 drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_req_lat_if.c
>