Thread (1 message) 1 message, 1 author, 2012-01-06

Re: [PATCH] irqdomain: Initialize number of IRQs for simple domains

From: David Brown <hidden>
Date: 2012-01-06 18:52:49
Also in: linux-arm-kernel, linux-arm-msm, linux-omap

On Fri, Jan 06, 2012 at 10:26:17AM -0600, Rob Herring wrote:
On 01/06/2012 10:07 AM, David Brown wrote:
quoted
On Fri, Jan 06, 2012 at 03:28:25PM +0100, Thierry Reding wrote:
quoted
diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c
index 0a11342..a50c7e2 100644
--- a/arch/arm/mach-msm/board-msm8x60.c
+++ b/arch/arm/mach-msm/board-msm8x60.c
@@ -84,8 +84,11 @@ static void __init msm8x60_dt_init(void)
 
 	node = of_find_matching_node_by_address(NULL, msm_dt_gic_match,
 			MSM8X60_QGIC_DIST_PHYS);
-	if (node)
-		irq_domain_add_simple(node, GIC_SPI_START);
+	if (node) {
+		struct irq_domain *domain = irq_domain_add_simple(node,
+				GIC_SPI_START, NR_MSM_IRQS);
+		WARN_ON(IS_ERR(domain));
+	}
 
 	if (of_machine_is_compatible("qcom,msm8660-surf")) {
 		printk(KERN_INFO "Init surf UART registers\n");
This is probably a consequence of MSM not really being "simple", but
just using that.  However, NR_MSM_IRQS is only the number of IRQs on
the MSM core.  There are also GPIO irqs, and potentially board IRQs
(the board has an I2C-based chip with a bunch of IRQ lines on it).

The only define that captures this now is 'NR_IRQS', even though we're
trying to get rid of that.

Ultimately, the correct answer will be to get the various interrupt
controllers using their own domains, but for now, this needs to be a
larger value to avoid missing a bunch of the interrupts.
No. This should only be the number of interrupts for a controller as the
interrupt numbers in the device tree should be relative to a controller
and not the Linux virq number. The numbering in the dts needs to be
correct. You don't need a domain until you start getting the interrupts
from the dts.
Yes, _should only be_.  And, you're probably right that we shouldn't
change this, and should use the NR_MSM_IRQS.  When a DTS device needs
to use a GPIO IRQ, the GPIO controller should properly register its
own domain.  The only IRQ in the DT is an MSM IRQ, so this doesn't
actually break anything.

So, Thierry, please leave it as NR_MSM_IRQS as in your original
patch.  In that form.

Acked-by: David Brown <redacted>

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help