| From c34ffc57b8418fc59b50da4c3384b661dbb6ff48 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 4 Jul 2022 09:49:30 +0100 |
| Subject: media: mediatek: vcodec: Initialize decoder parameters for each |
| instance |
| |
| From: Chen-Yu Tsai <wenst@chromium.org> |
| |
| [ Upstream commit fe3d651627d61210c6905339e5281d3b9db75033 ] |
| |
| 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@chromium.org> |
| Reviewed-by: Yunfei Dong <yunfei.dong@mediatek.com> |
| Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 99d7b15f2b9d..eed11a62febf 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); |
| -- |
| 2.35.1 |
| |