[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4a6e111d-49ef-449d-af9d-b0bd4fb468a5@collabora.com>
Date: Tue, 27 Jan 2026 13:07:25 +0100
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
To: Kyrie Wu <kyrie.wu@...iatek.com>, Tiffany Lin <tiffany.lin@...iatek.com>,
Andrew-CT Chen <andrew-ct.chen@...iatek.com>,
Yunfei Dong <yunfei.dong@...iatek.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley
<conor+dt@...nel.org>, Matthias Brugger <matthias.bgg@...il.com>,
Hans Verkuil <hverkuil@...all.nl>,
Nicolas Dufresne <nicolas.dufresne@...labora.com>,
Nathan Hebert <nhebert@...omium.org>, Arnd Bergmann <arnd@...db.de>,
Irui Wang <irui.wang@...iatek.com>, George Sun <george.sun@...iatek.com>,
linux-media@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org
Cc: Neil Armstrong <neil.armstrong@...aro.org>,
Andrzej Pietrasiewicz <andrzejtp2010@...il.com>,
Yilong Zhou <yilong.zhou@...iatek.com>
Subject: Re: [PATCH v7 05/10] media: mediatek: vcodec: Add Decoder profile &
level Initialization
Il 27/01/26 03:42, Kyrie Wu ha scritto:
> This commit initializes codec profile & level for VDEC. It sets
> default values for H264, H265, and VP9 codecs across multiple
> chipset configurations.
>
The previous patch "Refactor decoder profile and level handling" will break the
driver if this patch is not also applied at the same time.
The change looks good, but you should squash 05/10 in 04/10, and assign the params
that you're adding here along with the refactoring, so that you get one single
patch that, if applied, doesn't break anything as it doesn't depend on additional
(future, as this is number 5) patch.
Please squash
Cheers,
Angelo
> Signed-off-by: Kyrie Wu <kyrie.wu@...iatek.com>
> ---
> .../vcodec/decoder/mtk_vcodec_dec_stateful.c | 12 +++
> .../vcodec/decoder/mtk_vcodec_dec_stateless.c | 84 +++++++++++++++++++
> 2 files changed, 96 insertions(+)
>
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateful.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateful.c
> index 8ddb61670dc6..a47906b9d717 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateful.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateful.c
> @@ -619,4 +619,16 @@ const struct mtk_vcodec_dec_pdata mtk_vdec_8173_pdata = {
> .is_subdev_supported = false,
> .hw_arch = MTK_VDEC_PURE_SINGLE_CORE,
> .chip_name = 8173,
> + .h264_params = {
> + .level = V4L2_MPEG_VIDEO_H264_LEVEL_4_1,
> + .profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
> + },
> + .h265_params = {
> + .level = V4L2_MPEG_VIDEO_HEVC_LEVEL_4,
> + .profile = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE,
> + },
> + .vp9_params = {
> + .level = V4L2_MPEG_VIDEO_VP9_LEVEL_4_0,
> + .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_1,
> + },
> };
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> index a1f419202a24..b571c4ed3f79 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> @@ -830,6 +830,18 @@ const struct mtk_vcodec_dec_pdata mtk_vdec_8183_pdata = {
> .is_subdev_supported = false,
> .hw_arch = MTK_VDEC_PURE_SINGLE_CORE,
> .chip_name = 8183,
> + .h264_params = {
> + .level = V4L2_MPEG_VIDEO_H264_LEVEL_4_2,
> + .profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
> + },
> + .h265_params = {
> + .level = V4L2_MPEG_VIDEO_HEVC_LEVEL_4,
> + .profile = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE,
> + },
> + .vp9_params = {
> + .level = V4L2_MPEG_VIDEO_VP9_LEVEL_4_0,
> + .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_1,
> + },
> };
>
> /* This platform data is used for one lat and one core architecture. */
> @@ -869,24 +881,72 @@ const struct mtk_vcodec_dec_pdata mtk_vdec_8188_pdata = {
> MTK_STATELESS_DEC_DATA,
> .hw_arch = MTK_VDEC_LAT_SINGLE_CORE,
> .chip_name = 8188,
> + .h264_params = {
> + .level = V4L2_MPEG_VIDEO_H264_LEVEL_5_2,
> + .profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10,
> + },
> + .h265_params = {
> + .level = V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1,
> + .profile = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10,
> + },
> + .vp9_params = {
> + .level = V4L2_MPEG_VIDEO_VP9_LEVEL_5_1,
> + .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_2,
> + },
> };
>
> const struct mtk_vcodec_dec_pdata mtk_vdec_8192_pdata = {
> MTK_STATELESS_DEC_DATA,
> .hw_arch = MTK_VDEC_LAT_SINGLE_CORE,
> .chip_name = 8192,
> + .h264_params = {
> + .level = V4L2_MPEG_VIDEO_H264_LEVEL_5_2,
> + .profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
> + },
> + .h265_params = {
> + .level = V4L2_MPEG_VIDEO_HEVC_LEVEL_4,
> + .profile = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE,
> + },
> + .vp9_params = {
> + .level = V4L2_MPEG_VIDEO_VP9_LEVEL_5_1,
> + .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_1,
> + },
> };
>
> const struct mtk_vcodec_dec_pdata mtk_vdec_8195_pdata = {
> MTK_STATELESS_DEC_DATA,
> .hw_arch = MTK_VDEC_LAT_SINGLE_CORE,
> .chip_name = 8195,
> + .h264_params = {
> + .level = V4L2_MPEG_VIDEO_H264_LEVEL_6_0,
> + .profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10,
> + },
> + .h265_params = {
> + .level = V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2,
> + .profile = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10,
> + },
> + .vp9_params = {
> + .level = V4L2_MPEG_VIDEO_VP9_LEVEL_5_2,
> + .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_2,
> + },
> };
>
> const struct mtk_vcodec_dec_pdata mtk_vdec_8196_pdata = {
> MTK_STATELESS_DEC_DATA,
> .hw_arch = MTK_VDEC_LAT_SINGLE_CORE,
> .chip_name = 8196,
> + .h264_params = {
> + .level = V4L2_MPEG_VIDEO_H264_LEVEL_6_0,
> + .profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10,
> + },
> + .h265_params = {
> + .level = V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2,
> + .profile = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10,
> + },
> + .vp9_params = {
> + .level = V4L2_MPEG_VIDEO_VP9_LEVEL_5_2,
> + .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_2,
> + },
> };
>
> const struct mtk_vcodec_dec_pdata mtk_vdec_single_core_pdata = {
> @@ -910,6 +970,18 @@ const struct mtk_vcodec_dec_pdata mtk_vdec_8186_pdata = {
> MTK_STATELESS_DEC_DATA,
> .hw_arch = MTK_VDEC_PURE_SINGLE_CORE,
> .chip_name = 8186,
> + .h264_params = {
> + .level = V4L2_MPEG_VIDEO_H264_LEVEL_4_2,
> + .profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
> + },
> + .h265_params = {
> + .level = V4L2_MPEG_VIDEO_HEVC_LEVEL_4,
> + .profile = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE,
> + },
> + .vp9_params = {
> + .level = V4L2_MPEG_VIDEO_VP9_LEVEL_4_1,
> + .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_1,
> + },
> };
>
> const struct mtk_vcodec_dec_pdata mtk_vdec_8189_pdata = {
> @@ -928,4 +1000,16 @@ const struct mtk_vcodec_dec_pdata mtk_vdec_8189_pdata = {
> .is_subdev_supported = true,
> .hw_arch = MTK_VDEC_PURE_SINGLE_CORE,
> .chip_name = 8189,
> + .h264_params = {
> + .level = V4L2_MPEG_VIDEO_H264_LEVEL_5_2,
> + .profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10,
> + },
> + .h265_params = {
> + .level = V4L2_MPEG_VIDEO_HEVC_LEVEL_4,
> + .profile = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE,
> + },
> + .vp9_params = {
> + .level = V4L2_MPEG_VIDEO_VP9_LEVEL_5_2,
> + .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_2,
> + },
> };
Powered by blists - more mailing lists