drm/exynos: move to use request_irq by IRQF_NO_AUTOEN flag
authorTian Tao <tiantao6@hisilicon.com>
Mon, 15 Mar 2021 11:49:37 +0000 (19:49 +0800)
committerInki Dae <inki.dae@samsung.com>
Mon, 29 Mar 2021 11:37:17 +0000 (20:37 +0900)
After this patch cbe16f35bee68 genirq: Add IRQF_NO_AUTOEN for
request_irq/nmi() is merged. request_irq() after setting
IRQ_NOAUTOEN as below

irq_set_status_flags(irq, IRQ_NOAUTOEN);
request_irq(dev, irq...);
can be replaced by request_irq() with IRQF_NO_AUTOEN flag.

v2:
Fix the problem of using wrong flags

Signed-off-by: Tian Tao <tiantao6@hisilicon.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos5433_drm_decon.c
drivers/gpu/drm/exynos/exynos_drm_dsi.c

index 1f79bc2a881e1f3889e5161ef14fbba33d1764be..c277d2fc50c66dcf961f486ae7f4ab0f9d38db60 100644 (file)
@@ -775,8 +775,8 @@ static int decon_conf_irq(struct decon_context *ctx, const char *name,
                        return irq;
                }
        }
-       irq_set_status_flags(irq, IRQ_NOAUTOEN);
-       ret = devm_request_irq(ctx->dev, irq, handler, flags, "drm_decon", ctx);
+       ret = devm_request_irq(ctx->dev, irq, handler,
+                              flags | IRQF_NO_AUTOEN, "drm_decon", ctx);
        if (ret < 0) {
                dev_err(ctx->dev, "IRQ %s request failed\n", name);
                return ret;
index 83ab6b343f5190d77e678e4efb41a16c79d6fa0d..44e402b7cdfb6e399a4ac3416778e1a6573a8441 100644 (file)
@@ -1352,10 +1352,9 @@ static int exynos_dsi_register_te_irq(struct exynos_dsi *dsi,
        }
 
        te_gpio_irq = gpio_to_irq(dsi->te_gpio);
-       irq_set_status_flags(te_gpio_irq, IRQ_NOAUTOEN);
 
        ret = request_threaded_irq(te_gpio_irq, exynos_dsi_te_irq_handler, NULL,
-                                       IRQF_TRIGGER_RISING, "TE", dsi);
+                                  IRQF_TRIGGER_RISING | IRQF_NO_AUTOEN, "TE", dsi);
        if (ret) {
                dev_err(dsi->dev, "request interrupt failed with %d\n", ret);
                gpio_free(dsi->te_gpio);
@@ -1802,9 +1801,9 @@ static int exynos_dsi_probe(struct platform_device *pdev)
        if (dsi->irq < 0)
                return dsi->irq;
 
-       irq_set_status_flags(dsi->irq, IRQ_NOAUTOEN);
        ret = devm_request_threaded_irq(dev, dsi->irq, NULL,
-                                       exynos_dsi_irq, IRQF_ONESHOT,
+                                       exynos_dsi_irq,
+                                       IRQF_ONESHOT | IRQF_NO_AUTOEN,
                                        dev_name(dev), dsi);
        if (ret) {
                dev_err(dev, "failed to request dsi irq\n");