drm/bridge: analogix_dp: Add irq flag IRQF_NO_AUTOEN instead of calling disable_irq()
authorDamon Ding <damon.ding@rock-chips.com>
Mon, 10 Mar 2025 10:41:02 +0000 (18:41 +0800)
committerDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Sun, 20 Apr 2025 22:26:06 +0000 (01:26 +0300)
The IRQF_NO_AUTOEN can be used for the drivers that don't want
interrupts to be enabled automatically via devm_request_threaded_irq().
Using this flag can provide be more robust compared to the way of
calling disable_irq() after devm_request_threaded_irq() without the
IRQF_NO_AUTOEN flag.

Suggested-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Link: https://lore.kernel.org/r/20250310104114.2608063-2-damon.ding@rock-chips.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c

index 042154e2d8ccd74ac2dc27fe527e810a50e08a09..bfe0181ff94ef3566beacf17ff03f0f074527aa2 100644 (file)
@@ -1625,10 +1625,10 @@ analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)
                 * that we can get the current state of the GPIO.
                 */
                dp->irq = gpiod_to_irq(dp->hpd_gpiod);
-               irq_flags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING;
+               irq_flags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_NO_AUTOEN;
        } else {
                dp->irq = platform_get_irq(pdev, 0);
-               irq_flags = 0;
+               irq_flags = IRQF_NO_AUTOEN;
        }
 
        if (dp->irq == -ENXIO) {
@@ -1645,7 +1645,6 @@ analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)
                dev_err(&pdev->dev, "failed to request irq\n");
                goto err_disable_clk;
        }
-       disable_irq(dp->irq);
 
        return dp;