[PATCH v6 06/10] media: mediatek: vcodec: Add 4K prob size supporting for VP9 decoder
Kyrie Wu (吴晗)
Kyrie.Wu at mediatek.com
Wed Dec 24 23:30:23 PST 2025
On Thu, 2025-12-11 at 15:31 -0500, Nicolas Dufresne wrote:
> Hi,
>
> Le mardi 02 décembre 2025 à 15:40 +0800, Kyrie Wu a écrit :
> > From: Kyrie Wu <kyrie.wu at mediatek.corp-partner.google.com>
>
> I don't think you meant to commit with your Google partner email ?
>
> >
> > add config to support prob size both 3840 and 2560.
>
> Prob mean probability ? Commit message is the place to you full
> words. Can you
> extend why the difference, and use defines instead of magic number?
>
> >
> > Signed-off-by: Kyrie Wu <kyrie.wu at mediatek.corp-partner.google.com>
>
> Or even sign it ?
>
> Nicolas
>
Dear Nicolas,
Sorry for this mistake, I will fix it. Thanks.
Regards,
Kyrie.
> > ---
> > .../platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h | 2 ++
> > .../mediatek/vcodec/decoder/mtk_vcodec_dec_stateful.c | 1 +
> > .../mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c | 7
> > +++++++
> > .../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 4 ++-
> > -
> > 4 files changed, 12 insertions(+), 2 deletions(-)
> >
> > diff --git
> > a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv
> > .h
> > b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv
> > .h
> > index a8baeab98477..ecf0d7ad0d54 100644
> > ---
> > a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv
> > .h
> > +++
> > b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv
> > .h
> > @@ -80,10 +80,12 @@ struct vdec_pic_info {
> > * struct mtk_vcodec_dec_params - decoder supported parameters
> > * @level: decoder supported vcodec level
> > * @profile: decoder supported vcodec profile
> > + * @prob_size: vp9 decoder prob size
> > */
> > struct mtk_vcodec_dec_params {
> > s64 level;
> > s64 profile;
> > + size_t prob_size;
> > };
> >
> > /**
> > diff --git
> > a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_sta
> > teful.c
> > b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_sta
> > teful.c
> > index a47906b9d717..99c252e0a2e1 100644
> > ---
> > a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_sta
> > teful.c
> > +++
> > b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_sta
> > teful.c
> > @@ -630,5 +630,6 @@ const struct mtk_vcodec_dec_pdata
> > mtk_vdec_8173_pdata = {
> > .vp9_params = {
> > .level = V4L2_MPEG_VIDEO_VP9_LEVEL_4_0,
> > .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_1,
> > + .prob_size = 2560,
> > },
> > };
> > diff --git
> > a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_sta
> > teless.c
> > b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_sta
> > teless.c
> > index dc3e9a2ccc2c..f18aafd08c76 100644
> > ---
> > a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_sta
> > teless.c
> > +++
> > b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_sta
> > teless.c
> > @@ -841,6 +841,7 @@ const struct mtk_vcodec_dec_pdata
> > mtk_vdec_8183_pdata = {
> > .vp9_params = {
> > .level = V4L2_MPEG_VIDEO_VP9_LEVEL_4_0,
> > .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_1,
> > + .prob_size = 2560,
> > },
> > };
> >
> > @@ -889,6 +890,7 @@ const struct mtk_vcodec_dec_pdata
> > mtk_vdec_8188_pdata = {
> > .vp9_params = {
> > .level = V4L2_MPEG_VIDEO_VP9_LEVEL_5_1,
> > .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_2,
> > + .prob_size = 2560,
> > },
> > };
> >
> > @@ -919,6 +921,7 @@ const struct mtk_vcodec_dec_pdata
> > mtk_vdec_8192_pdata = {
> > .vp9_params = {
> > .level = V4L2_MPEG_VIDEO_VP9_LEVEL_5_1,
> > .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_1,
> > + .prob_size = 2560,
> > },
> > };
> >
> > @@ -949,6 +952,7 @@ const struct mtk_vcodec_dec_pdata
> > mtk_vdec_8195_pdata = {
> > .vp9_params = {
> > .level = V4L2_MPEG_VIDEO_VP9_LEVEL_5_2,
> > .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_2,
> > + .prob_size = 2560,
> > },
> > };
> >
> > @@ -979,6 +983,7 @@ const struct mtk_vcodec_dec_pdata
> > mtk_vdec_8196_pdata = {
> > .vp9_params = {
> > .level = V4L2_MPEG_VIDEO_VP9_LEVEL_5_2,
> > .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_2,
> > + .prob_size = 3840,
> > },
> > };
> >
> > @@ -1026,6 +1031,7 @@ const struct mtk_vcodec_dec_pdata
> > mtk_vdec_8186_pdata =
> > {
> > .vp9_params = {
> > .level = V4L2_MPEG_VIDEO_VP9_LEVEL_4_1,
> > .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_1,
> > + .prob_size = 2560,
> > },
> > };
> >
> > @@ -1056,5 +1062,6 @@ const struct mtk_vcodec_dec_pdata
> > mtk_vdec_8189_pdata =
> > {
> > .vp9_params = {
> > .level = V4L2_MPEG_VIDEO_VP9_LEVEL_5_2,
> > .profile = V4L2_MPEG_VIDEO_VP9_PROFILE_2,
> > + .prob_size = 3840,
> > },
> > };
> > diff --git
> > a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > index 9513ddde7c7c..36a87b455d11 100644
> > ---
> > a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > +++
> > b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > @@ -22,7 +22,6 @@
> > #define VP9_RESET_FRAME_CONTEXT_ALL 3
> >
> > #define VP9_TILE_BUF_SIZE 4096
> > -#define VP9_PROB_BUF_SIZE 2560
> > #define VP9_COUNTS_BUF_SIZE 16384
> >
> > #define HDR_FLAG(x) (!!((hdr)->flags & V4L2_VP9_FRAME_FLAG_##x))
> > @@ -546,6 +545,7 @@ static int
> > vdec_vp9_slice_alloc_working_buffer(struct
> > vdec_vp9_slice_instance *i
> > struct
> > vdec_vp9_slice_vsi
> > *vsi)
> > {
> > struct mtk_vcodec_dec_ctx *ctx = instance->ctx;
> > + struct mtk_vcodec_dec_dev *pdev = ctx->dev;
> > enum vdec_vp9_slice_resolution_level level;
> > /* super blocks */
> > unsigned int max_sb_w;
> > @@ -616,7 +616,7 @@ static int
> > vdec_vp9_slice_alloc_working_buffer(struct
> > vdec_vp9_slice_instance *i
> > }
> >
> > if (!instance->prob.va) {
> > - instance->prob.size = VP9_PROB_BUF_SIZE;
> > + instance->prob.size = pdev->vdec_pdata-
> > >vp9_params.prob_size;
> > if (mtk_vcodec_mem_alloc(ctx, &instance->prob))
> > goto err;
> > }
More information about the Linux-mediatek
mailing list