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

Jinjie Ruan posted 5 patches 2 months, 2 weeks ago
[PATCH v2 2/5] drm/imx/dcss: 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")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
v2:
- Add Reviewed-by.
---
 drivers/gpu/drm/imx/dcss/dcss-dtg.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/imx/dcss/dcss-dtg.c b/drivers/gpu/drm/imx/dcss/dcss-dtg.c
index 2968f5d5bd41..6bbfd9aa27ac 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-dtg.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-dtg.c
@@ -134,14 +134,12 @@ static int dcss_dtg_irq_config(struct dcss_dtg *dtg,
 		    dtg->base_reg + DCSS_DTG_INT_MASK);
 
 	ret = request_irq(dtg->ctxld_kick_irq, dcss_dtg_irq_handler,
-			  0, "dcss_ctxld_kick", dtg);
+			  IRQF_NO_AUTOEN, "dcss_ctxld_kick", dtg);
 	if (ret) {
 		dev_err(dtg->dev, "dtg: irq request failed.\n");
 		return ret;
 	}
 
-	disable_irq(dtg->ctxld_kick_irq);
-
 	dtg->ctxld_kick_irq_en = false;
 
 	return 0;
-- 
2.34.1
Re: [PATCH v2 2/5] drm/imx/dcss: Use IRQF_NO_AUTOEN flag in request_irq()
Posted by Laurentiu Palcu 2 months, 1 week ago
On Thu, Sep 12, 2024 at 04:30:17PM +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")
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>

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

Thanks,
Laurentiu

> ---
> v2:
> - Add Reviewed-by.
> ---
>  drivers/gpu/drm/imx/dcss/dcss-dtg.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/imx/dcss/dcss-dtg.c b/drivers/gpu/drm/imx/dcss/dcss-dtg.c
> index 2968f5d5bd41..6bbfd9aa27ac 100644
> --- a/drivers/gpu/drm/imx/dcss/dcss-dtg.c
> +++ b/drivers/gpu/drm/imx/dcss/dcss-dtg.c
> @@ -134,14 +134,12 @@ static int dcss_dtg_irq_config(struct dcss_dtg *dtg,
>  		    dtg->base_reg + DCSS_DTG_INT_MASK);
>  
>  	ret = request_irq(dtg->ctxld_kick_irq, dcss_dtg_irq_handler,
> -			  0, "dcss_ctxld_kick", dtg);
> +			  IRQF_NO_AUTOEN, "dcss_ctxld_kick", dtg);
>  	if (ret) {
>  		dev_err(dtg->dev, "dtg: irq request failed.\n");
>  		return ret;
>  	}
>  
> -	disable_irq(dtg->ctxld_kick_irq);
> -
>  	dtg->ctxld_kick_irq_en = false;
>  
>  	return 0;
> -- 
> 2.34.1
>