[PATCH v2 1/5] drm/imx: Use IRQF_NO_AUTOEN flag in request_irq()

Jinjie Ruan posted 5 patches 2 months, 2 weeks ago
[PATCH v2 1/5] drm/imx: Use IRQF_NO_AUTOEN flag in request_irq()
Posted by Jinjie Ruan 2 months, 2 weeks ago
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: 9021c317b770 ("drm/imx: Add initial support for DCSS on iMX8MQ")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
v2:
- Update the commit subject.
---
 drivers/gpu/drm/imx/dcss/dcss-crtc.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/imx/dcss/dcss-crtc.c b/drivers/gpu/drm/imx/dcss/dcss-crtc.c
index 31267c00782f..af91e45b5d13 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-crtc.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-crtc.c
@@ -206,15 +206,13 @@ int dcss_crtc_init(struct dcss_crtc *crtc, struct drm_device *drm)
 	if (crtc->irq < 0)
 		return crtc->irq;
 
-	ret = request_irq(crtc->irq, dcss_crtc_irq_handler,
-			  0, "dcss_drm", crtc);
+	ret = request_irq(crtc->irq, dcss_crtc_irq_handler, IRQF_NO_AUTOEN,
+			  "dcss_drm", crtc);
 	if (ret) {
 		dev_err(dcss->dev, "irq request failed with %d.\n", ret);
 		return ret;
 	}
 
-	disable_irq(crtc->irq);
-
 	return 0;
 }
 
-- 
2.34.1
Re: [PATCH v2 1/5] drm/imx: Use IRQF_NO_AUTOEN flag in request_irq()
Posted by Laurentiu Palcu 2 months, 1 week ago
Hi Jinjie,

On Thu, Sep 12, 2024 at 04:30:16PM +0800, Jinjie Ruan wrote:
> 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: 9021c317b770 ("drm/imx: Add initial support for DCSS on iMX8MQ")
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>

I think the commit subject should start with drm/imx/dcss. Not sure if
this is worth another patch set just for that. I suppose the commiter
could fix it before pushing.

Other than that:
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>

Thanks,
Laurentiu

> ---
> v2:
> - Update the commit subject.
> ---
>  drivers/gpu/drm/imx/dcss/dcss-crtc.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/imx/dcss/dcss-crtc.c b/drivers/gpu/drm/imx/dcss/dcss-crtc.c
> index 31267c00782f..af91e45b5d13 100644
> --- a/drivers/gpu/drm/imx/dcss/dcss-crtc.c
> +++ b/drivers/gpu/drm/imx/dcss/dcss-crtc.c
> @@ -206,15 +206,13 @@ int dcss_crtc_init(struct dcss_crtc *crtc, struct drm_device *drm)
>  	if (crtc->irq < 0)
>  		return crtc->irq;
>  
> -	ret = request_irq(crtc->irq, dcss_crtc_irq_handler,
> -			  0, "dcss_drm", crtc);
> +	ret = request_irq(crtc->irq, dcss_crtc_irq_handler, IRQF_NO_AUTOEN,
> +			  "dcss_drm", crtc);
>  	if (ret) {
>  		dev_err(dcss->dev, "irq request failed with %d.\n", ret);
>  		return ret;
>  	}
>  
> -	disable_irq(crtc->irq);
> -
>  	return 0;
>  }
>  
> -- 
> 2.34.1
>