Re: [PATCH v7 05/10] media: mediatek: vcodec: Add Decoder profile & level Initialization
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date: 2026-03-19 18:06:00
Also in:
linux-devicetree, linux-media, linux-mediatek, lkml
Hi, Just to recap my expectations. Le mardi 27 janvier 2026 à 10:42 +0800, Kyrie Wu a écrit :
quoted hunk ↗ jump to hunk
This commit initializes codec profile & level for VDEC. It sets default values for H264, H265, and VP9 codecs across multiple chipset configurations. Signed-off-by: Kyrie Wu <redacted> --- .../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, + }, };
All of the above should be squashed into patch 04. Patch 04 should be moved before any patches related to 8189.
quoted hunk ↗ jump to hunk
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, + }, };
This hunk should be squashed with what is actually patch 03. regards, Nicolas
Attachments
- signature.asc [application/pgp-signature] 228 bytes