drm/msm/adreno: Use IRQF_NO_AUTOEN flag in request_irq()
authorJinjie Ruan <ruanjinjie@huawei.com>
Thu, 12 Sep 2024 08:30:20 +0000 (16:30 +0800)
committerRob Clark <robdclark@chromium.org>
Sun, 27 Oct 2024 15:23:32 +0000 (08:23 -0700)
disable_irq() after request_irq() still has a time gap in which
interrupts can come. request_irq() with IRQF_NO_AUTOEN flag will
disable IRQ auto-enable when request IRQ.

Fixes: 4b565ca5a2cb ("drm/msm: Add A6XX device support")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Patchwork: https://patchwork.freedesktop.org/patch/614075/
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/adreno/a6xx_gmu.c

index 37927bd..14db737 100644 (file)
@@ -1522,15 +1522,13 @@ static int a6xx_gmu_get_irq(struct a6xx_gmu *gmu, struct platform_device *pdev,
 
        irq = platform_get_irq_byname(pdev, name);
 
-       ret = request_irq(irq, handler, IRQF_TRIGGER_HIGH, name, gmu);
+       ret = request_irq(irq, handler, IRQF_TRIGGER_HIGH | IRQF_NO_AUTOEN, name, gmu);
        if (ret) {
                DRM_DEV_ERROR(&pdev->dev, "Unable to get interrupt %s %d\n",
                              name, ret);
                return ret;
        }
 
-       disable_irq(irq);
-
        return irq;
 }