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.