|
Takashi Iwai |
b5b682 |
From 7d7275b3e866cf8092bd12553ec53ba26864f7bb Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
b5b682 |
From: Grygorii Strashko <grygorii.strashko@ti.com>
|
|
Takashi Iwai |
b5b682 |
Date: Thu, 28 Jan 2021 21:15:48 +0200
|
|
Takashi Iwai |
b5b682 |
Subject: [PATCH] bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD
|
|
Takashi Iwai |
b5b682 |
Git-commit: 7d7275b3e866cf8092bd12553ec53ba26864f7bb
|
|
Takashi Iwai |
b5b682 |
Patch-mainline: v5.12-rc5
|
|
Takashi Iwai |
b5b682 |
References: git-fixes
|
|
Takashi Iwai |
b5b682 |
|
|
Takashi Iwai |
b5b682 |
The main purpose of l3 IRQs is to catch OCP bus access errors and identify
|
|
Takashi Iwai |
b5b682 |
corresponding code places by showing call stack, so it's important to
|
|
Takashi Iwai |
b5b682 |
handle L3 interconnect errors as fast as possible. On RT these IRQs will
|
|
Takashi Iwai |
b5b682 |
became threaded and will be scheduled much more late from the moment actual
|
|
Takashi Iwai |
b5b682 |
error occurred so showing completely useless information.
|
|
Takashi Iwai |
b5b682 |
|
|
Takashi Iwai |
b5b682 |
Hence, mark l3 IRQs as IRQF_NO_THREAD so they will not be forced threaded
|
|
Takashi Iwai |
b5b682 |
on RT or if force_irqthreads = true.
|
|
Takashi Iwai |
b5b682 |
|
|
Takashi Iwai |
b5b682 |
Fixes: 0ee7261c9212 ("drivers: bus: Move the OMAP interconnect driver to drivers/bus/")
|
|
Takashi Iwai |
b5b682 |
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
|
|
Takashi Iwai |
b5b682 |
Signed-off-by: Tony Lindgren <tony@atomide.com>
|
|
Takashi Iwai |
b5b682 |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
b5b682 |
|
|
Takashi Iwai |
b5b682 |
---
|
|
Takashi Iwai |
b5b682 |
drivers/bus/omap_l3_noc.c | 4 ++--
|
|
Takashi Iwai |
b5b682 |
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
Takashi Iwai |
b5b682 |
|
|
Takashi Iwai |
b5b682 |
diff --git a/drivers/bus/omap_l3_noc.c b/drivers/bus/omap_l3_noc.c
|
|
Takashi Iwai |
b5b682 |
index b040447575ad..dcfb32ee5cb6 100644
|
|
Takashi Iwai |
b5b682 |
--- a/drivers/bus/omap_l3_noc.c
|
|
Takashi Iwai |
b5b682 |
+++ b/drivers/bus/omap_l3_noc.c
|
|
Takashi Iwai |
b5b682 |
@@ -285,7 +285,7 @@ static int omap_l3_probe(struct platform_device *pdev)
|
|
Takashi Iwai |
b5b682 |
*/
|
|
Takashi Iwai |
b5b682 |
l3->debug_irq = platform_get_irq(pdev, 0);
|
|
Takashi Iwai |
b5b682 |
ret = devm_request_irq(l3->dev, l3->debug_irq, l3_interrupt_handler,
|
|
Takashi Iwai |
b5b682 |
- 0x0, "l3-dbg-irq", l3);
|
|
Takashi Iwai |
b5b682 |
+ IRQF_NO_THREAD, "l3-dbg-irq", l3);
|
|
Takashi Iwai |
b5b682 |
if (ret) {
|
|
Takashi Iwai |
b5b682 |
dev_err(l3->dev, "request_irq failed for %d\n",
|
|
Takashi Iwai |
b5b682 |
l3->debug_irq);
|
|
Takashi Iwai |
b5b682 |
@@ -294,7 +294,7 @@ static int omap_l3_probe(struct platform_device *pdev)
|
|
Takashi Iwai |
b5b682 |
|
|
Takashi Iwai |
b5b682 |
l3->app_irq = platform_get_irq(pdev, 1);
|
|
Takashi Iwai |
b5b682 |
ret = devm_request_irq(l3->dev, l3->app_irq, l3_interrupt_handler,
|
|
Takashi Iwai |
b5b682 |
- 0x0, "l3-app-irq", l3);
|
|
Takashi Iwai |
b5b682 |
+ IRQF_NO_THREAD, "l3-app-irq", l3);
|
|
Takashi Iwai |
b5b682 |
if (ret)
|
|
Takashi Iwai |
b5b682 |
dev_err(l3->dev, "request_irq failed for %d\n", l3->app_irq);
|
|
Takashi Iwai |
b5b682 |
|
|
Takashi Iwai |
b5b682 |
--
|
|
Takashi Iwai |
b5b682 |
2.26.2
|
|
Takashi Iwai |
b5b682 |
|