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 <diand...@chromium.org>
Reviewed-by: Douglas Anderson <diand...@chromium.org>
Signed-off-by: Damon Ding <damon.d...@rock-chips.com>
---
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c 
b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 817070613b03..5ef6bb6010ca 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1630,10 +1630,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) {
@@ -1649,7 +1649,6 @@ analogix_dp_probe(struct device *dev, struct 
analogix_dp_plat_data *plat_data)
                dev_err(&pdev->dev, "failed to request irq\n");
                return ERR_PTR(ret);
        }
-       disable_irq(dp->irq);
 
        return dp;
 }
-- 
2.34.1

Reply via email to