--- /dev/null
+From a4e5eed2c6a689ef2b6ad8d7ae86665c69039379 Mon Sep 17 00:00:00 2001
+From: Tian Tao <tiantao6@hisilicon.com>
+Date: Mon, 15 Mar 2021 19:49:37 +0800
+Subject: drm/exynos: move to use request_irq by IRQF_NO_AUTOEN flag
+
+From: Tian Tao <tiantao6@hisilicon.com>
+
+commit a4e5eed2c6a689ef2b6ad8d7ae86665c69039379 upstream.
+
+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>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 4 ++--
+ drivers/gpu/drm/exynos/exynos_drm_dsi.c | 7 +++----
+ 2 files changed, 5 insertions(+), 6 deletions(-)
+
+--- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
++++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
+@@ -775,8 +775,8 @@ static int decon_conf_irq(struct decon_c
+ 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;
+--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
++++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+@@ -1353,10 +1353,9 @@ static int exynos_dsi_register_te_irq(st
+ }
+
+ 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 platf
+ 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");