[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