mtk_vcodec_probe() calls platform_get_resource(pdev, IORESOURCE_IRQ, ..)
to check if IRQ resource exists and later calls platform_get_irq(pdev, ..)
to get the actual IRQ.
This patch drops an unnecessary call to platform_get_resource() and
checks the return value of platform_get_irq(pdev, ..) to check if the
IRQ line is valid.
Signed-off-by: Lad Prabhakar <[email protected]>
---
v1->v2
* No change.
---
.../media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 11 ++++-------
.../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 10 +++-------
2 files changed, 7 insertions(+), 14 deletions(-)
diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
index 40c39e1e596b..1509c2a4de84 100644
--- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
+++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
@@ -200,7 +200,6 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
{
struct mtk_vcodec_dev *dev;
struct video_device *vfd_dec;
- struct resource *res;
phandle rproc_phandle;
enum mtk_vcodec_fw_type fw_type;
int i, ret;
@@ -244,14 +243,12 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
mtk_v4l2_debug(2, "reg[%d] base=%p", i, dev->reg_base[i]);
}
- res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
- if (res == NULL) {
- dev_err(&pdev->dev, "failed to get irq resource");
- ret = -ENOENT;
+ ret = platform_get_irq(pdev, 0);
+ if (ret < 0)
goto err_res;
- }
- dev->dec_irq = platform_get_irq(pdev, 0);
+ dev->dec_irq = ret;
+
irq_set_status_flags(dev->dec_irq, IRQ_NOAUTOEN);
ret = devm_request_irq(&pdev->dev, dev->dec_irq,
mtk_vcodec_dec_irq_handler, 0, pdev->name, dev);
diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
index aeaecb8d416e..86e70d826754 100644
--- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
+++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
@@ -236,7 +236,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;
@@ -280,14 +279,11 @@ 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;
+ ret = platform_get_irq(pdev, 0);
+ if (ret < 0)
goto err_res;
- }
- dev->enc_irq = platform_get_irq(pdev, 0);
+ dev->enc_irq = ret;
irq_set_status_flags(dev->enc_irq, IRQ_NOAUTOEN);
ret = devm_request_irq(&pdev->dev, dev->enc_irq,
mtk_vcodec_enc_irq_handler,
--
2.17.1
Hi Prabhakar,
I'm skipping this patch since if I am not mistaken this patch fixes this as well
(as part of a larger overhaul):
https://patchwork.linuxtv.org/project/linux-media/patch/[email protected]/
I posted a PR for that series, so that's on the way in.
Please confirm so I can mark your patch as Superseded.
Regards,
Hans
On 11/01/2022 01:23, Lad Prabhakar wrote:
> mtk_vcodec_probe() calls platform_get_resource(pdev, IORESOURCE_IRQ, ..)
> to check if IRQ resource exists and later calls platform_get_irq(pdev, ..)
> to get the actual IRQ.
>
> This patch drops an unnecessary call to platform_get_resource() and
> checks the return value of platform_get_irq(pdev, ..) to check if the
> IRQ line is valid.
>
> Signed-off-by: Lad Prabhakar <[email protected]>
> ---
> v1->v2
> * No change.
> ---
> .../media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 11 ++++-------
> .../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 10 +++-------
> 2 files changed, 7 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> index 40c39e1e596b..1509c2a4de84 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> @@ -200,7 +200,6 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
> {
> struct mtk_vcodec_dev *dev;
> struct video_device *vfd_dec;
> - struct resource *res;
> phandle rproc_phandle;
> enum mtk_vcodec_fw_type fw_type;
> int i, ret;
> @@ -244,14 +243,12 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
> mtk_v4l2_debug(2, "reg[%d] base=%p", i, dev->reg_base[i]);
> }
>
> - res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
> - if (res == NULL) {
> - dev_err(&pdev->dev, "failed to get irq resource");
> - ret = -ENOENT;
> + ret = platform_get_irq(pdev, 0);
> + if (ret < 0)
> goto err_res;
> - }
>
> - dev->dec_irq = platform_get_irq(pdev, 0);
> + dev->dec_irq = ret;
> +
> irq_set_status_flags(dev->dec_irq, IRQ_NOAUTOEN);
> ret = devm_request_irq(&pdev->dev, dev->dec_irq,
> mtk_vcodec_dec_irq_handler, 0, pdev->name, dev);
> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
> index aeaecb8d416e..86e70d826754 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
> @@ -236,7 +236,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;
> @@ -280,14 +279,11 @@ 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;
> + ret = platform_get_irq(pdev, 0);
> + if (ret < 0)
> goto err_res;
> - }
>
> - dev->enc_irq = platform_get_irq(pdev, 0);
> + dev->enc_irq = ret;
> irq_set_status_flags(dev->enc_irq, IRQ_NOAUTOEN);
> ret = devm_request_irq(&pdev->dev, dev->enc_irq,
> mtk_vcodec_enc_irq_handler,
Hi Hans,
On Thu, Jan 13, 2022 at 1:05 PM Hans Verkuil <[email protected]> wrote:
>
> Hi Prabhakar,
>
> I'm skipping this patch since if I am not mistaken this patch fixes this as well
> (as part of a larger overhaul):
>
> https://patchwork.linuxtv.org/project/linux-media/patch/[email protected]/
>
> I posted a PR for that series, so that's on the way in.
>
> Please confirm so I can mark your patch as Superseded.
>
Ack.
Cheers,
Prabhakar