]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/vc4: platform_get_irq_byname() returns an int
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Feb 2026 15:53:39 +0000 (16:53 +0100)
committerMaíra Canal <mcanal@igalia.com>
Thu, 5 Mar 2026 23:55:16 +0000 (20:55 -0300)
platform_get_irq_byname() will return a negative value if an error
happens, so it should be checked and not just passed directly into
devm_request_threaded_irq() hoping all will be ok.

Cc: Maxime Ripard <mripard@kernel.org>
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: Maíra Canal <mcanal@igalia.com>
Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: stable <stable@kernel.org>
Assisted-by: gkh_clanker_2000
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/2026022339-cornflake-t-shirt-2471@gregkh
Signed-off-by: Maíra Canal <mcanal@igalia.com>
drivers/gpu/drm/vc4/vc4_hdmi.c

index 9ce90a694c3c2f2fcb8d9f1239753f3552b20195..9898e5451a07a1dca809fb6db3fec59d07485b95 100644 (file)
@@ -2449,17 +2449,23 @@ static int vc4_hdmi_hotplug_init(struct vc4_hdmi *vc4_hdmi)
        int ret;
 
        if (vc4_hdmi->variant->external_irq_controller) {
-               unsigned int hpd_con = platform_get_irq_byname(pdev, "hpd-connected");
-               unsigned int hpd_rm = platform_get_irq_byname(pdev, "hpd-removed");
+               int hpd = platform_get_irq_byname(pdev, "hpd-connected");
 
-               ret = devm_request_threaded_irq(&pdev->dev, hpd_con,
+               if (hpd < 0)
+                       return hpd;
+
+               ret = devm_request_threaded_irq(&pdev->dev, hpd,
                                                NULL,
                                                vc4_hdmi_hpd_irq_thread, IRQF_ONESHOT,
                                                "vc4 hdmi hpd connected", vc4_hdmi);
                if (ret)
                        return ret;
 
-               ret = devm_request_threaded_irq(&pdev->dev, hpd_rm,
+               hpd = platform_get_irq_byname(pdev, "hpd-removed");
+               if (hpd < 0)
+                       return hpd;
+
+               ret = devm_request_threaded_irq(&pdev->dev, hpd,
                                                NULL,
                                                vc4_hdmi_hpd_irq_thread, IRQF_ONESHOT,
                                                "vc4 hdmi hpd disconnected", vc4_hdmi);