[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <42c0fd8acfb5a99fd33cb5245a54ed9037124f4f.camel@mediatek.com>
Date: Fri, 8 Jul 2022 13:35:42 +0800
From: "yunfei.dong@...iatek.com" <yunfei.dong@...iatek.com>
To: Chen-Yu Tsai <wenst@...omium.org>,
Tiffany Lin <tiffany.lin@...iatek.com>,
Andrew-CT Chen <andrew-ct.chen@...iatek.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Hans Verkuil <hverkuil-cisco@...all.nl>
CC: <linux-media@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-mediatek@...ts.infradead.org>,
Matthias Brugger <matthias.bgg@...il.com>
Subject: Re: [PATCH] media: mediatek: vcodec: Initialize decoder parameters
for each instance
Hi Chen-Yu,
Thanks for your patch.
Reviewed-by: Yunfei Dong <yunfei.dong@...iatek.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@...omium.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);
Powered by blists - more mailing lists