Thread (2 messages) 2 messages, 2 authors, 2011-08-01

Re: [PATCH v2 1/7] ARM: mmp: parse irq from DT

From: Grant Likely <hidden>
Date: 2011-08-01 14:43:40
Also in: linux-arm-kernel

Possibly related (same subject, not in this thread)

On Mon, Aug 1, 2011 at 3:42 PM, Haojian Zhuang [off-list ref] wrote:
On Mon, Aug 1, 2011 at 10:10 PM, Grant Likely [off-list ref] wrote:
quoted
On Mon, Aug 01, 2011 at 10:47:06AM +0800, Haojian Zhuang wrote:
quoted
On Sat, Jul 30, 2011 at 12:36 AM, Grant Likely
[off-list ref] wrote:
quoted
quoted
diff --git a/arch/arm/mach-mmp/common.h b/arch/arm/mach-mmp/common.h
index ec8d65d..1c563c2 100644
--- a/arch/arm/mach-mmp/common.h
+++ b/arch/arm/mach-mmp/common.h
@@ -6,3 +6,4 @@ extern void timer_init(int irq);
 extern void __init icu_init_irq(void);
 extern void __init mmp_map_io(void);
+extern void __init mmp_init_intc(void);
diff --git a/arch/arm/mach-mmp/include/mach/irqs.h b/arch/arm/mach-mmp/include/mach/irqs.h
index a09d328..65ec176 100644
--- a/arch/arm/mach-mmp/include/mach/irqs.h
+++ b/arch/arm/mach-mmp/include/mach/irqs.h
@@ -224,6 +224,6 @@
 #define IRQ_BOARD_START                      (IRQ_GPIO_START + IRQ_GPIO_NUM)

-#define NR_IRQS                              (IRQ_BOARD_START)
+#define NR_IRQS                              0
Why is NR_IRQs getting changed?  I think this will break
!CONFIG_SPARSE_IRQS, and it shouldn't be necessary for this
conversion.
If CONFIG_SPARSE_IRQ is enabled, arch_probe_nr_irqs() returns NR_IRQS in arm.
It results registering NR_IRQS in early_irq_init(). If NR_IRQS is 200,
200 irqs are
registered in early_irq_init(). It's not my requirement. What I need
is registering irq
from DT.

So I have to define NR_IRQS to 0. And CONFIG_SPARSE_IRQS is always enabled
in ARCH_MMP. So it's selected in Kconfig by default.
My point is, that applying this patch will break anyone depending on
non-DT mach-mmp support.  I'm completely fine with you doing so, but
you need to be extra careful that it is done in a bisectable way.  At
no point in the commit series should the kernel be unable to build a
working mmp image.

g.
Since .nr_irqs property is assigned in machine descriptor of brownstone.c or
ttc_dkb.c, nr_irqs equals to machine_desc->nr_irqs (arch/arm/kernel/irq.c).

Even NR_IRQS is defined as 0, machine_desc->nr_irqs can help us to
pre-allocate irq numbers while CONFIG_OF isn't defined.

So it's not an issue in ARCH_MMP. And I tested it that everything is well.
Okay, that answers my question.  Thanks.

g.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help