]> git.baikalelectronics.ru Git - kernel.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 May 2023 09:36:05 +0000 (11:36 +0200)
commit 6d68bcc37e9a33c850436b9c1cd1bacafaf13953 upstream.

After this patch 6f3fc8e9f6ed3 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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/exynos/exynos5433_drm_decon.c
drivers/gpu/drm/exynos/exynos_drm_dsi.c

index 9c262daf5816ea048a245d01cf54e1a70aaf4729..1061430aced2138a6ddcd9590fbc863ef2bb24b2 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 babf3db82ce33a1377afc12b7ada5eeefee4281f..bfcbb89ff40a4d3f21f5700f2656a88b3b5549bb 100644 (file)
@@ -1350,10 +1350,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);
@@ -1792,9 +1791,9 @@ static int exynos_dsi_probe(struct platform_device *pdev)
                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");