2022-08-26 04:48:11

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v2, 4/6] media: mediatek: vcodec: Remove encoder driver get IRQ resource

Hi,

On Wed, Jul 20, 2022 at 4:58 PM Irui Wang <[email protected]> wrote:
>
> The "platform_get_resource(pdev, IORESOURCE_IRQ, 0)" is no longer
> used after commit a1a2b7125e107("of/platform: Drop static setup of
> IRQ resource from DT core"), so just remove the function in
> encoder driver to avoid driver probe failed.
>
> Signed-off-by: Irui Wang <[email protected]>
> ---
> .../media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c | 8 --------
> 1 file changed, 8 deletions(-)
>
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
> index ea667b867b56..6d8964fb4fa2 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
> @@ -228,7 +228,6 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
> {
> struct mtk_vcodec_dev *dev;
> struct video_device *vfd_enc;
> - struct resource *res;
> phandle rproc_phandle;
> enum mtk_vcodec_fw_type fw_type;
> int ret;
> @@ -272,13 +271,6 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
> goto err_res;
> }
>
> - res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
> - if (res == NULL) {
> - dev_err(&pdev->dev, "failed to get irq resource");
> - ret = -ENOENT;
> - goto err_res;
> - }
> -
> dev->enc_irq = platform_get_irq(pdev, 0);

platform_get_irq() returns a negative number on failure. You should
check for errors here as the previous check was removed.

The description of platform_get_irq() explicitly mentions:

Device drivers should check the return value for errors so as to
not pass a negative integer value to the request_irq() APIs.

Hans has queued up this patch, so maybe you could provide a follow-up
patch to fix this?


Regards
ChenYu


> irq_set_status_flags(dev->enc_irq, IRQ_NOAUTOEN);
> ret = devm_request_irq(&pdev->dev, dev->enc_irq,
> --
> 2.18.0
>


2022-08-26 10:03:06

by Irui Wang (王瑞)

[permalink] [raw]
Subject: Re: [PATCH v2, 4/6] media: mediatek: vcodec: Remove encoder driver get IRQ resource

Dear Chen-Yu,

many thanks for your comments.

On Fri, 2022-08-26 at 12:08 +0800, Chen-Yu Tsai wrote:
> Hi,
>
> On Wed, Jul 20, 2022 at 4:58 PM Irui Wang <[email protected]>
> wrote:
> >
> > The "platform_get_resource(pdev, IORESOURCE_IRQ, 0)" is no longer
> > used after commit a1a2b7125e107("of/platform: Drop static setup of
> > IRQ resource from DT core"), so just remove the function in
> > encoder driver to avoid driver probe failed.
> >
> > Signed-off-by: Irui Wang <[email protected]>
> > ---
> > .../media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c | 8 ----
> > ----
> > 1 file changed, 8 deletions(-)
> >
> > diff --git
> > a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
> > b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
> > index ea667b867b56..6d8964fb4fa2 100644
> > --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
> > +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
> > @@ -228,7 +228,6 @@ static int mtk_vcodec_probe(struct
> > platform_device *pdev)
> > {
> > struct mtk_vcodec_dev *dev;
> > struct video_device *vfd_enc;
> > - struct resource *res;
> > phandle rproc_phandle;
> > enum mtk_vcodec_fw_type fw_type;
> > int ret;
> > @@ -272,13 +271,6 @@ static int mtk_vcodec_probe(struct
> > platform_device *pdev)
> > goto err_res;
> > }
> >
> > - res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
> > - if (res == NULL) {
> > - dev_err(&pdev->dev, "failed to get irq resource");
> > - ret = -ENOENT;
> > - goto err_res;
> > - }
> > -
> > dev->enc_irq = platform_get_irq(pdev, 0);
>
> platform_get_irq() returns a negative number on failure. You should
> check for errors here as the previous check was removed.
>
> The description of platform_get_irq() explicitly mentions:
>
> Device drivers should check the return value for errors so as to
> not pass a negative integer value to the request_irq() APIs.
>
> Hans has queued up this patch, so maybe you could provide a follow-up
> patch to fix this?
>
Another same patch has been already merged into linux-next tree, so
this current patch can be dropped.

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c?id=750a914adb7ded3669b47daed6d9d749110b4107


Thanks
Best Regards
>
> Regards
> ChenYu
>
>
> > irq_set_status_flags(dev->enc_irq, IRQ_NOAUTOEN);
> > ret = devm_request_irq(&pdev->dev, dev->enc_irq,
> > --
> > 2.18.0
> >