ARC: Allow embedded arc-intc to be properly placed in DT intc hierarchy
authorVineet Gupta <vgupta@synopsys.com>
Thu, 11 Apr 2013 09:17:36 +0000 (14:47 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Tue, 7 May 2013 08:13:57 +0000 (13:43 +0530)
commitc93d8b8c781f99d578ee499d178929323ca5cbc7
treecd01e88038b65cf1872b0b86fb28b58a72f6c2db
parent9593a933d538a726b341cb06b3362d74931aa281
ARC: Allow embedded arc-intc to be properly placed in DT intc hierarchy

arc-intc is initialized in arc common code as it is applicable to all
platforms. However platforms with their own external intc still need to
refer to it for correct DT interrupt tree hierarchy setup,

e.g.
static struct of_device_id __initdata tb10x_irq_ids[] = {
{ .compatible = "snps,arc700-intc", .data = dummy_init_irq },
{ .compatible = "abilis,tb10x_ictl", .data = tb10x_init_irq },
{},
};

The fix is to use the generic irqchip framework to tie all irqchips in
a special linker section and then call irqchip_init() which calls the
DT of_irq_init() for all the intc in one go.

That way the platform code need not be aware of arc-intc at all.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/kernel/irq.c