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

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

From: Haojian Zhuang <hidden>
Date: 2011-08-01 14:42:04
Also in: linux-arm-kernel

Possibly related (same subject, not in this thread)

On Mon, Aug 1, 2011 at 10:10 PM, Grant Likely [off-list ref] wrote:
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.

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