From: Alexandre Courbot <acourbot@chromium.org> To: Tiffany Lin <tiffany.lin@mediatek.com>, Andrew-CT Chen <andrew-ct.chen@mediatek.com>, Hans Verkuil <hverkuil-cisco@xs4all.nl>, Dafna Hirschfeld <dafna.hirschfeld@collabora.com>, Yunfei Dong <yunfei.dong@mediatek.com> Cc: Mauro Carvalho Chehab <mchehab@kernel.org>, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, Alexandre Courbot <acourbot@chromium.org> Subject: [PATCH v5 00/14] media: mtk-vcodec: support for MT8183 decoder Date: Wed, 19 May 2021 23:29:57 +0900 [thread overview] Message-ID: <20210519143011.1175546-1-acourbot@chromium.org> (raw) 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 .../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 | 817 +++--------------- .../platform/mtk-vcodec/mtk_vcodec_dec.h | 27 +- .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 66 +- .../mtk-vcodec/mtk_vcodec_dec_stateful.c | 668 ++++++++++++++ .../mtk-vcodec/mtk_vcodec_dec_stateless.c | 366 ++++++++ .../platform/mtk-vcodec/mtk_vcodec_drv.h | 58 +- .../platform/mtk-vcodec/mtk_vcodec_enc.c | 135 ++- .../platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 4 + .../mtk-vcodec/vdec/vdec_h264_req_if.c | 780 +++++++++++++++++ .../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, 2290 insertions(+), 722 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 -- 2.31.1.751.gd2f1c929bd-goog
WARNING: multiple messages have this Message-ID (diff)
From: Alexandre Courbot <acourbot@chromium.org> To: Tiffany Lin <tiffany.lin@mediatek.com>, Andrew-CT Chen <andrew-ct.chen@mediatek.com>, Hans Verkuil <hverkuil-cisco@xs4all.nl>, Dafna Hirschfeld <dafna.hirschfeld@collabora.com>, Yunfei Dong <yunfei.dong@mediatek.com> Cc: Mauro Carvalho Chehab <mchehab@kernel.org>, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, Alexandre Courbot <acourbot@chromium.org> Subject: [PATCH v5 00/14] media: mtk-vcodec: support for MT8183 decoder Date: Wed, 19 May 2021 23:29:57 +0900 [thread overview] Message-ID: <20210519143011.1175546-1-acourbot@chromium.org> (raw) 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 .../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 | 817 +++--------------- .../platform/mtk-vcodec/mtk_vcodec_dec.h | 27 +- .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 66 +- .../mtk-vcodec/mtk_vcodec_dec_stateful.c | 668 ++++++++++++++ .../mtk-vcodec/mtk_vcodec_dec_stateless.c | 366 ++++++++ .../platform/mtk-vcodec/mtk_vcodec_drv.h | 58 +- .../platform/mtk-vcodec/mtk_vcodec_enc.c | 135 ++- .../platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 4 + .../mtk-vcodec/vdec/vdec_h264_req_if.c | 780 +++++++++++++++++ .../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, 2290 insertions(+), 722 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 -- 2.31.1.751.gd2f1c929bd-goog _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek
next reply other threads:[~2021-05-19 14:30 UTC|newest] Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-19 14:29 Alexandre Courbot [this message] 2021-05-19 14:29 ` [PATCH v5 00/14] media: mtk-vcodec: support for MT8183 decoder Alexandre Courbot 2021-05-19 14:29 ` [PATCH v5 01/14] media: mtk-vcodec: vdec: Support H264 profile control Alexandre Courbot 2021-05-19 14:29 ` Alexandre Courbot 2021-05-21 13:36 ` Tzung-Bi Shih 2021-05-21 13:36 ` Tzung-Bi Shih 2021-05-19 14:29 ` [PATCH v5 02/14] media: mtk-vcodec: vdec: use helpers in VIDIOC_(TRY_)DECODER_CMD Alexandre Courbot 2021-05-19 14:29 ` Alexandre Courbot 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-19 14:30 ` [PATCH v5 03/14] media: mtk-vcodec: vdec: clamp OUTPUT resolution to hardware limits Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-19 14:30 ` [PATCH v5 04/14] media: mtk-vcodec: make flush buffer reusable by encoder Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-19 14:30 ` [PATCH v5 05/14] media: mtk-vcodec: venc: support START and STOP commands Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-27 10:10 ` Alexandre Courbot 2021-05-27 10:10 ` Alexandre Courbot 2021-05-28 7:03 ` Dafna Hirschfeld 2021-05-28 7:03 ` Dafna Hirschfeld 2021-05-28 7:43 ` Dafna Hirschfeld 2021-05-28 7:43 ` Dafna Hirschfeld 2021-07-05 5:04 ` Alexandre Courbot 2021-07-05 5:04 ` Alexandre Courbot 2021-07-05 5:04 ` Alexandre Courbot 2021-07-05 5:04 ` Alexandre Courbot 2021-07-06 15:17 ` Enric Balletbo Serra 2021-07-06 15:17 ` Enric Balletbo Serra 2021-05-19 14:30 ` [PATCH v5 06/14] media: mtk-vcodec: vdec: move stateful ops into their own file Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-27 10:10 ` Alexandre Courbot 2021-05-27 10:10 ` Alexandre Courbot 2021-05-19 14:30 ` [PATCH v5 07/14] media: mtk-vcodec: vdec: handle firmware version field Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-19 14:30 ` [PATCH v5 08/14] media: mtk-vcodec: support version 2 of decoder firmware ABI Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-19 14:30 ` [PATCH v5 09/14] media: add Mediatek's MM21 format Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-21 13:37 ` Tzung-Bi Shih 2021-05-19 14:30 ` [PATCH v5 10/14] media: mtk-vcodec: vdec: support stateless API Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:38 ` Tzung-Bi Shih 2021-05-21 13:38 ` Tzung-Bi Shih 2021-05-19 14:30 ` [PATCH v5 11/14] media: mtk-vcodec: vdec: support stateless H.264 decoding Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:38 ` Tzung-Bi Shih 2021-05-21 13:38 ` Tzung-Bi Shih 2021-05-27 10:10 ` Alexandre Courbot 2021-05-27 10:10 ` Alexandre Courbot 2021-05-19 14:30 ` [PATCH v5 12/14] media: mtk-vcodec: vdec: add media device if using stateless api Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:38 ` Tzung-Bi Shih 2021-05-21 13:38 ` Tzung-Bi Shih 2021-05-19 14:30 ` [PATCH v5 13/14] dt-bindings: media: document mediatek,mt8183-vcodec-dec Alexandre Courbot 2021-05-19 14:30 ` [PATCH v5 13/14] dt-bindings: media: document mediatek, mt8183-vcodec-dec Alexandre Courbot 2021-05-19 14:30 ` [PATCH v5 14/14] media: mtk-vcodec: enable MT8183 decoder Alexandre Courbot 2021-05-19 14:30 ` Alexandre Courbot 2021-05-21 13:38 ` Tzung-Bi Shih 2021-05-21 13:38 ` Tzung-Bi Shih 2021-05-27 8:08 ` [PATCH v5 00/14] media: mtk-vcodec: support for " Hans Verkuil 2021-05-27 8:08 ` Hans Verkuil 2021-05-27 10:10 ` Alexandre Courbot 2021-05-27 10:10 ` Alexandre Courbot 2021-05-27 10:18 ` Hans Verkuil 2021-05-27 10:18 ` Hans Verkuil
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210519143011.1175546-1-acourbot@chromium.org \ --to=acourbot@chromium.org \ --cc=andrew-ct.chen@mediatek.com \ --cc=dafna.hirschfeld@collabora.com \ --cc=hverkuil-cisco@xs4all.nl \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=mchehab@kernel.org \ --cc=tiffany.lin@mediatek.com \ --cc=yunfei.dong@mediatek.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.