media: mediatek: vcodec: Drop platform_get_resource(IORESOURCE_IRQ)
authorNícolas F. R. A. Prado <nfraprado@collabora.com>
Fri, 17 Jun 2022 20:39:06 +0000 (21:39 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Tue, 27 Sep 2022 08:24:44 +0000 (10:24 +0200)
Commit a1a2b7125e10 ("of/platform: Drop static setup of IRQ resource
from DT core") removed support for calling platform_get_resource(...,
IORESOURCE_IRQ, ...) on DT-based drivers, but the probe() function of
mtk-vcodec's encoder was still making use of it. This caused the encoder
driver to fail probe.

Since the platform_get_resource() call was only being used to check for
the presence of the interrupt (its returned resource wasn't even used)
and platform_get_irq() was already being used to get the IRQ, simply
drop the use of platform_get_resource(IORESOURCE_IRQ) and handle the
failure of platform_get_irq(), to get the driver probing again.

[hverkuil: drop unused struct resource *res]

Fixes: a1a2b7125e10 ("of/platform: Drop static setup of IRQ resource from DT core")
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c

index 95e8c29..d2f5f30 100644 (file)
@@ -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,14 +271,12 @@ 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;
+       dev->enc_irq = platform_get_irq(pdev, 0);
+       if (dev->enc_irq < 0) {
+               ret = dev->enc_irq;
                goto err_res;
        }
 
-       dev->enc_irq = platform_get_irq(pdev, 0);
        irq_set_status_flags(dev->enc_irq, IRQ_NOAUTOEN);
        ret = devm_request_irq(&pdev->dev, dev->enc_irq,
                               mtk_vcodec_enc_irq_handler,