Hi Tzung-Bi, I made a PR for this series, but I would like a follow-up patch that fixes this sparse warning: SPARSE:mtk-vcodec/mtk_vcodec_dec_stateful.c:615:35: warning: symbol 'mtk_vdec_8173_pdata' was not declared. Should it be static? SPARSE:mtk-vcodec/mtk_vcodec_dec_stateless.c:346:35: warning: symbol 'mtk_vdec_8183_pdata' was not declared. Should it be static? mtk_vcodec_dec.h is probably a good header to put the extern declaration. Regards, Hans On 06/08/2021 06:15, Tzung-Bi Shih wrote: > This series adds support for the stateless API into mtk-vcodec, by first > separating the stateful ops into their own source file, and introducing > a new set of ops suitable for stateless decoding. As such, support for > stateful decoders should remain completely unaffected. > > This series has been tested with both MT8183 and MT8173. Decoding was > working for both chips, and in the case of MT8173 no regression has been > spotted. > > Patches 1-5 fix a few compliance issues with the decoder and encoder, most > notably by adding support for the START and STOP command for the latter. These > patches were last up until v4 but have been moved to the beginning so they can > be applied sooner. > > Patches 6-9 separates the "stateful" part of the driver into its own file and > add support for the new firmware and pixel format used by MT8183. > > Patches 10-14 add support for H.264 stateless decoding and MT8183. > > Note that a few checkpatch issues have been left unadressed on purpose: > * Conversion from e.g. uint32_t to u32 can't be done without breaking > consistency. This should be done by a driver-wide patch. > * Some macro warning suggesting parentheses for parameters expanded as struct > members, which is obviously not applicable here. > * Warnings about adding new files without an update the MAINTAINERS, which is > irrelevant as the new files are already covered by the existing wildcards. > > Changes since v6: > (https://patchwork.linuxtv.org/project/linux-media/cover/20210705053258.1614177-1-acourbot@xxxxxxxxxxxx/) > * Fix errors from 'checkpatch.pl --strict'. > * Fix missing kerneldoc issue. > * Fix wrong device minor number reference. > > Changes since v5: > * Rebased against latest media tree. > * Applied most suggestions of `checkpatch.pl --strict`. Some proposed fixes were > not applied because they would require a larger refactoring (i.e. large-scale > type changes) of the code. > * Applied Reviewed-by and fix suggestions from Tzung-bi. > * Check for ABORT state in vidioc_encoder_cmd. > > Changes since v4: > * Reorganized fixup patches first. > * Select MEDIA_CONTROLLER_REQUEST_API. > * Properly capitalize MM21's format description string. > * Reorganize stateless code as suggested by Hans. > * Fix compilation errors when DEBUG is defined. > * Merge double-free fixup patch into the patch that introduced the issue. > > Changes since v3: > * Stop checking that controls are set for every request. > * Add V4L2_CID_STATELESS_H264_START_CODE control. > * Stop mapping OUTPUT buffers and getting the NAL type from them, use the > nal_ref_idc field instead. > * Make V4L2_CID_MIN_BUFFERS_FOR_CAPTURE control stateful-only. > * Set vb2_buffer's field to V4L2_FIELD_NONE in buffer validation hook. > > Changes since v2: > * Add follow-up patches fixing support for START/STOP commands for the > encoder, and stateful decoder. > > Alexandre Courbot (8): > media: mtk-vcodec: vdec: use helpers in VIDIOC_(TRY_)DECODER_CMD > media: mtk-vcodec: vdec: clamp OUTPUT resolution to hardware limits > media: mtk-vcodec: make flush buffer reusable by encoder > media: mtk-vcodec: venc: support START and STOP commands > media: mtk-vcodec: vdec: handle firmware version field > media: mtk-vcodec: support version 2 of decoder firmware ABI > media: add Mediatek's MM21 format > dt-bindings: media: document mediatek,mt8183-vcodec-dec > > Hirokazu Honda (1): > media: mtk-vcodec: vdec: Support H264 profile control > > Yunfei Dong (5): > media: mtk-vcodec: vdec: move stateful ops into their own file > media: mtk-vcodec: vdec: support stateless API > media: mtk-vcodec: vdec: support stateless H.264 decoding > media: mtk-vcodec: vdec: add media device if using stateless api > media: mtk-vcodec: enable MT8183 decoder > > .../bindings/media/mediatek-vcodec.txt | 1 + > .../media/v4l/pixfmt-reserved.rst | 7 + > drivers/media/platform/Kconfig | 3 + > drivers/media/platform/mtk-vcodec/Makefile | 3 + > .../platform/mtk-vcodec/mtk_vcodec_dec.c | 820 +++--------------- > .../platform/mtk-vcodec/mtk_vcodec_dec.h | 25 +- > .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 68 +- > .../mtk-vcodec/mtk_vcodec_dec_stateful.c | 628 ++++++++++++++ > .../mtk-vcodec/mtk_vcodec_dec_stateless.c | 360 ++++++++ > .../platform/mtk-vcodec/mtk_vcodec_drv.h | 58 +- > .../platform/mtk-vcodec/mtk_vcodec_enc.c | 140 ++- > .../platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 6 +- > .../mtk-vcodec/vdec/vdec_h264_req_if.c | 774 +++++++++++++++++ > .../media/platform/mtk-vcodec/vdec_drv_if.c | 3 + > .../media/platform/mtk-vcodec/vdec_drv_if.h | 1 + > .../media/platform/mtk-vcodec/vdec_ipi_msg.h | 23 +- > .../media/platform/mtk-vcodec/vdec_vpu_if.c | 43 +- > .../media/platform/mtk-vcodec/vdec_vpu_if.h | 5 + > drivers/media/v4l2-core/v4l2-ioctl.c | 1 + > include/uapi/linux/videodev2.h | 1 + > 20 files changed, 2241 insertions(+), 729 deletions(-) > create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_stateful.c > create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_stateless.c > create mode 100644 drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c >