[PATCH] media: mediatek: vcodec: Initialize decoder parameters for each instance
yunfei.dong at mediatek.com
yunfei.dong at mediatek.com
Thu Jul 7 22:35:42 PDT 2022
Hi Chen-Yu,
Thanks for your patch.
Reviewed-by: Yunfei Dong <yunfei.dong at mediatek.com>
Best Regards,
Yunfei Dong
On Mon, 2022-07-04 at 16:49 +0800, Chen-Yu Tsai wrote:
> The decoder parameters are stored in each instance's context data.
> This
> needs to be initialized per-instance, but a previous fix incorrectly
> changed it to only be initialized for the first opened instance. This
> resulted in subsequent instances not correctly signaling the
> requirement
> for the Requests API.
>
> Fix this by calling the initializing function outside of the
> v4l2_fh_is_singular() conditional block.
>
> Fixes: faddaa735c20 ("media: mediatek: vcodec: Initialize decoder
> parameters after getting dec_capability")
> Signed-off-by: Chen-Yu Tsai <wenst at chromium.org>
> ---
> This was found during backport of mtk-vcodec patches onto the
> ChromeOS
> v5.10 kernel, which caused one of our tests that does multiple
> concurrent
> decodes to fail, as some decoder instances didn't have their
> requires_requests and supports_requests flags marked correctly.
> Evidently my previous testing of culprit patch was not thorough
> enough.
>
> This fixes commit faddaa735c20 ("media: mediatek: vcodec: Initialize
> decoder
> parameters after getting dec_capability") in the media stage repo.
> This
> could either be queued up after it, or squashed into it.
>
> drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git
> a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
> b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
> index 55dffb61e58c..e0b6ae9d6caa 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
> @@ -208,11 +208,12 @@ static int fops_vcodec_open(struct file *file)
>
> dev->dec_capability =
> mtk_vcodec_fw_get_vdec_capa(dev->fw_handler);
> - ctx->dev->vdec_pdata->init_vdec_params(ctx);
>
> mtk_v4l2_debug(0, "decoder capability %x", dev-
> >dec_capability);
> }
>
> + ctx->dev->vdec_pdata->init_vdec_params(ctx);
> +
> list_add(&ctx->list, &dev->ctx_list);
>
> mutex_unlock(&dev->dev_mutex);
More information about the Linux-mediatek
mailing list