media: bcm2835-unicam: Do not replace IRQ retcode during probe
authorRicardo Ribalda <ribalda@chromium.org>
Mon, 6 May 2024 19:24:46 +0000 (19:24 +0000)
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Thu, 9 May 2024 22:08:03 +0000 (01:08 +0300)
platform_get_irq() cannot return the value 0. It will either return a non-zero
irq or a errcode.

If a errcode is returned, we need to populate the error code upwards. It will
give a more accurate reason of why it failed to the caller, who might decide
to retry later.

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://lore.kernel.org/r/20240506-fix-broad-v2-1-e6a2a5c0d609@chromium.org
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
drivers/media/platform/broadcom/bcm2835-unicam.c

index b11bcec5b225ea9c4a212a370ab7ac7310767970..94cd66255b7e5a17aec2d406dd8a7b383d29cfc1 100644 (file)
@@ -2661,9 +2661,8 @@ static int unicam_probe(struct platform_device *pdev)
        }
 
        ret = platform_get_irq(pdev, 0);
-       if (ret <= 0) {
+       if (ret < 0) {
                dev_err(&pdev->dev, "No IRQ resource\n");
-               ret = -EINVAL;
                goto err_unicam_put;
        }
 
@@ -2671,7 +2670,6 @@ static int unicam_probe(struct platform_device *pdev)
                               "unicam_capture0", unicam);
        if (ret) {
                dev_err(&pdev->dev, "Unable to request interrupt\n");
-               ret = -EINVAL;
                goto err_unicam_put;
        }