irq: tegra: add IRQF_NO_THREAD flag for doorbell

Doorbell irq's are used for communication with BPMP.
Adding IRQF_NO_THREAD flag in request_irq() for doorbell
interrupts to prevent converting irq handler to thread.
Converting to thread was causing crash as kthread is not
available during early kernel init.

Patch Added: 354

Bug 200511477

Change-Id: Id7c6797cfa0a3ec44745f9b0fc3f9cc58ad6968c
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2218138
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Sumit Gupta 2019-10-15 11:23:43 +05:30 committed by mobile promotions
parent 069b7c9952
commit f62e37003c

View File

@ -0,0 +1,38 @@
From acf8828acb4aedd612148f27c75a0d5de4497c4c Mon Sep 17 00:00:00 2001
From: Sumit Gupta <sumitg@nvidia.com>
Date: Mon, 14 Oct 2019 18:27:33 +0530
Subject: [PATCH 354/354] irq: tegra: add IRQF_NO_THREAD flag for doorbell
X-NVConfidentiality: public
Doorbell irq's are used for communication with BPMP.
Adding IRQF_NO_THREAD flag in request_irq() for doorbell
interrupts to prevent converting irq hanlder to thread.
Converting to thread was causing crash as kthread is not
available during early kernel init.
Bug 200511477
Change-Id: Id927221ce9dd601ef5127f886f07eb34dfc27763
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
---
drivers/irqchip/irq-tegra.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/irqchip/irq-tegra.c b/drivers/irqchip/irq-tegra.c
index 2311084..0e5f4fa 100644
--- a/drivers/irqchip/irq-tegra.c
+++ b/drivers/irqchip/irq-tegra.c
@@ -515,8 +515,8 @@ static int __init tegra_ictlr_init(struct device_node *node,
break;
doorbells[idx].hwirq = irq_to_desc(irq)->irq_data.hwirq - 32;
- err = request_irq(doorbells[idx].irq, doorbell_handler, 0,
- "doorbell", &doorbells[idx]);
+ err = request_irq(doorbells[idx].irq, doorbell_handler,
+ IRQF_NO_THREAD, "doorbell", &doorbells[idx]);
if (err < 0) {
pr_err("doorbell %d irq %d request failure\n",
idx, irq);
--
2.7.4