Thread (18 messages) 18 messages, 5 authors, 2019-11-25

RE: [PATCH 1/4] irqchip: sifive: Support hierarchy irq domain

From: Yash Shah <hidden>
Date: 2019-11-18 07:14:34
Also in: linux-gpio, linux-riscv, lkml

-----Original Message-----
From: Marc Zyngier <maz@kernel.org>
Sent: 12 November 2019 18:13
To: Yash Shah <redacted>
Cc: linus.walleij@linaro.org; bgolaszewski@baylibre.com;
robh+dt@kernel.org; mark.rutland@arm.com; palmer@dabbelt.com; Paul
Walmsley ( Sifive) [off-list ref]; aou@eecs.berkeley.edu;
tglx@linutronix.de; jason@lakedaemon.net; bmeng.cn@gmail.com;
atish.patra@wdc.com; Sagar Kadam [off-list ref]; linux-
gpio@vger.kernel.org; devicetree@vger.kernel.org; linux-
riscv@lists.infradead.org; linux-kernel@vger.kernel.org; Sachin Ghadi
[off-list ref]
Subject: Re: [PATCH 1/4] irqchip: sifive: Support hierarchy irq domain

On 2019-11-12 13:21, Yash Shah wrote:
quoted
Add support for hierarchy irq domains. This is needed as pre-requisite
for gpio-sifive driver.

Signed-off-by: Yash Shah <redacted>
---
 drivers/irqchip/Kconfig           |  1 +
 drivers/irqchip/irq-sifive-plic.c | 41
+++++++++++++++++++++++++++++++++++----
 2 files changed, 38 insertions(+), 4 deletions(-)
diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig index
ccbb897..a398552 100644
--- a/drivers/irqchip/Kconfig
+++ b/drivers/irqchip/Kconfig
@@ -488,6 +488,7 @@ endmenu
 config SIFIVE_PLIC
 	bool "SiFive Platform-Level Interrupt Controller"
 	depends on RISCV
+	select IRQ_DOMAIN_HIERARCHY
 	help
...
quoted
+static int plic_irq_domain_translate(struct irq_domain *d,
+				     struct irq_fwspec *fwspec,
+				     unsigned long *hwirq, unsigned int *type)
{
quoted
+	if (WARN_ON(fwspec->param_count < 1))
+		return -EINVAL;
+	*hwirq = fwspec->param[0];
+	*type = IRQ_TYPE_NONE;
+	return 0;
+}
This is actually what should be called irq_domain_translate_onecell().

Consider implementing that instead, and using it in this driver. I'm pretty sure
other drivers could use it (I spotted irq-nvic.c).
Sure, will implement irq_domain_translate_onecell() and use that instead.
Thanks for your comments!

- Yash
quoted
 static struct irq_domain *plic_irqdomain;
Otherwise, looks OK.

Thanks,

         M.
--
Jazz is not dead. It just smells funny...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help