Re: [PATCH v5 00/14] media: mtk-vcodec: support for MT8183 decoder

From: Alexandre Courbot
Date: Thu May 27 2021 - 06:10:22 EST


On Thu, May 27, 2021 at 5:08 PM Hans Verkuil <hverkuil-cisco@xxxxxxxxx> wrote:
>
> Hi Alexandre,
>
> On 19/05/2021 16:29, Alexandre Courbot 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 in the previous series 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.
> >
> > Changes since v4:
> > * Moved compliance fix patches to the head of the series.
> > * 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 (was
> > a separate patch coming right after the one introducing 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
>
> Running scripts/checkpatch.pl --strict over this patch series gives
> a lot of warnings and checks. A lot of these look like they are easy
> to fix and reasonable.

Apologies, I forgot to use --strict. It's not pretty indeed. I've
fixed most of the problems reported ; a few are more tricky or would
require extra cleanup patches like converting e.g. uint32_t to u32
when adding a member to a struct, which would make sense if we convert
all members of the struct (or better, the whole driver) separately.
Hopefully these can be overlooked for the time being.