diff mbox series

media: mediatek: vcodec: Initialize decoder parameters after getting dec_capability

Message ID 20220618072929.28783-1-yunfei.dong@mediatek.com (mailing list archive)
State New, archived
Headers show
Series media: mediatek: vcodec: Initialize decoder parameters after getting dec_capability | expand

Commit Message

Yunfei Dong June 18, 2022, 7:29 a.m. UTC
Need to get dec_capability from scp first, then initialize decoder
supported format and other parameters according to dec_capability value.

Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
---
 drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c     | 2 --
 drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c | 2 ++
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Chen-Yu Tsai June 20, 2022, 4:54 a.m. UTC | #1
On Sat, Jun 18, 2022 at 3:29 PM Yunfei Dong <yunfei.dong@mediatek.com> wrote:
>
> Need to get dec_capability from scp first, then initialize decoder
> supported format and other parameters according to dec_capability value.
>
> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>

Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Tested-by: Chen-Yu Tsai <wenst@chromium.org>

Tested on MT8183 on mainline 20220617-next with the vcodec-dec DT node
copied from the ChromeOS v5.10 kernel.

This fixes an issue where the first attempt to enumerate formats on the
device right after boot returns an empty list.
Chen-Yu Tsai June 20, 2022, 5:25 a.m. UTC | #2
On Mon, Jun 20, 2022 at 12:54 PM Chen-Yu Tsai <wenst@chromium.org> wrote:
>
> On Sat, Jun 18, 2022 at 3:29 PM Yunfei Dong <yunfei.dong@mediatek.com> wrote:
> >
> > Need to get dec_capability from scp first, then initialize decoder
> > supported format and other parameters according to dec_capability value.
> >
> > Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
>
> Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
> Tested-by: Chen-Yu Tsai <wenst@chromium.org>
>
> Tested on MT8183 on mainline 20220617-next with the vcodec-dec DT node
> copied from the ChromeOS v5.10 kernel.
>
> This fixes an issue where the first attempt to enumerate formats on the
> device right after boot returns an empty list.

BTW, this should have a Fixes tag.

Either

Fixes: 7a7ae26fd458 ("media: mediatek: vcodec: support stateless VP8 decoding")

which looks like the first instance of when firmware capability really is
considered, or

Fixes: fd00d90330d1 ("media: mtk-vcodec: vdec: move stateful ops into
their own file")

which matches when ctx->dev->vdec_pdata->init_vdec_params(ctx) was first added.


ChenYu
Yunfei Dong June 20, 2022, 6:31 a.m. UTC | #3
Hi Chen-Yu,

Thanks for your suggestion.
On Mon, 2022-06-20 at 13:25 +0800, Chen-Yu Tsai wrote:
> On Mon, Jun 20, 2022 at 12:54 PM Chen-Yu Tsai <wenst@chromium.org>
> wrote:
> > 
> > On Sat, Jun 18, 2022 at 3:29 PM Yunfei Dong <
> > yunfei.dong@mediatek.com> wrote:
> > > 
> > > Need to get dec_capability from scp first, then initialize
> > > decoder
> > > supported format and other parameters according to dec_capability
> > > value.
> > > 
> > > Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> > 
> > Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
> > Tested-by: Chen-Yu Tsai <wenst@chromium.org>
> > 
> > Tested on MT8183 on mainline 20220617-next with the vcodec-dec DT
> > node
> > copied from the ChromeOS v5.10 kernel.
> > 
> > This fixes an issue where the first attempt to enumerate formats on
> > the
> > device right after boot returns an empty list.
> 
> BTW, this should have a Fixes tag.
> 
> Either
> 
> Fixes: 7a7ae26fd458 ("media: mediatek: vcodec: support stateless VP8
> decoding")
> 
> which looks like the first instance of when firmware capability
> really is
> considered, or
> 
> Fixes: fd00d90330d1 ("media: mtk-vcodec: vdec: move stateful ops into
> their own file")
> 
> which matches when ctx->dev->vdec_pdata->init_vdec_params(ctx) was
> first added.
> 
> 
> ChenYu

I will fix the patch in v2.

Best Regards,
Yunfei Dong
Nicolas Dufresne June 21, 2022, 2:20 p.m. UTC | #4
Hi Yunfei,

Le samedi 18 juin 2022 à 15:29 +0800, Yunfei Dong a écrit :
> Need to get dec_capability from scp first, then initialize decoder
> supported format and other parameters according to dec_capability value.

Perhaps something to improve in the future. On top of describing the fix, it
could be useful to describe what issues is being fixed, and which platform will
benefit.

> 
> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>

To add to this, this looks like a bug fix, can you relate it to an original
commit and add a Fixes: tag here ?

regards,
Nicolas

> ---
>  drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c     | 2 --
>  drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c | 2 ++
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> index 1465ddff1c6b..41589470da32 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> @@ -112,8 +112,6 @@ void mtk_vcodec_dec_set_default_params(struct mtk_vcodec_ctx *ctx)
>  {
>  	struct mtk_q_data *q_data;
>  
> -	ctx->dev->vdec_pdata->init_vdec_params(ctx);
> -
>  	ctx->m2m_ctx->q_lock = &ctx->dev->dev_mutex;
>  	ctx->fh.m2m_ctx = ctx->m2m_ctx;
>  	ctx->fh.ctrl_handler = &ctx->ctrl_hdl;
> 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 4103d7c1b638..99d7b15f2b9d 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
> @@ -208,6 +208,8 @@ 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);
>  	}
>
Yunfei Dong June 22, 2022, 1:44 a.m. UTC | #5
Hi Nicolas,

Thanks for your comments.

I already sent patch v2 to add fixes table in June 20.

Best Regards,
Yunfei Dong
On Tue, 2022-06-21 at 10:20 -0400, Nicolas Dufresne wrote:
> Hi Yunfei,
> 
> Le samedi 18 juin 2022 à 15:29 +0800, Yunfei Dong a écrit :
> > Need to get dec_capability from scp first, then initialize decoder
> > supported format and other parameters according to dec_capability
> > value.
> 
> Perhaps something to improve in the future. On top of describing the
> fix, it
> could be useful to describe what issues is being fixed, and which
> platform will
> benefit.
> 
> > 
> > Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> 
> To add to this, this looks like a bug fix, can you relate it to an
> original
> commit and add a Fixes: tag here ?
> 
> regards,
> Nicolas
> 
> > ---
> >  drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c     | 2 --
> >  drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c | 2 ++
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git
> > a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> > b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> > index 1465ddff1c6b..41589470da32 100644
> > --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> > +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> > @@ -112,8 +112,6 @@ void mtk_vcodec_dec_set_default_params(struct
> > mtk_vcodec_ctx *ctx)
> >  {
> >  	struct mtk_q_data *q_data;
> >  
> > -	ctx->dev->vdec_pdata->init_vdec_params(ctx);
> > -
> >  	ctx->m2m_ctx->q_lock = &ctx->dev->dev_mutex;
> >  	ctx->fh.m2m_ctx = ctx->m2m_ctx;
> >  	ctx->fh.ctrl_handler = &ctx->ctrl_hdl;
> > 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 4103d7c1b638..99d7b15f2b9d 100644
> > --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
> > +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
> > @@ -208,6 +208,8 @@ 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);
> >  	}
> >  
> 
>
diff mbox series

Patch

diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
index 1465ddff1c6b..41589470da32 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
+++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
@@ -112,8 +112,6 @@  void mtk_vcodec_dec_set_default_params(struct mtk_vcodec_ctx *ctx)
 {
 	struct mtk_q_data *q_data;
 
-	ctx->dev->vdec_pdata->init_vdec_params(ctx);
-
 	ctx->m2m_ctx->q_lock = &ctx->dev->dev_mutex;
 	ctx->fh.m2m_ctx = ctx->m2m_ctx;
 	ctx->fh.ctrl_handler = &ctx->ctrl_hdl;
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 4103d7c1b638..99d7b15f2b9d 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
+++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
@@ -208,6 +208,8 @@  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);
 	}