sh: irq: Teach ipr and intc about dynamically allocating irq_descs.
authorPaul Mundt <lethal@linux-sh.org>
Thu, 21 May 2009 16:28:33 +0000 (01:28 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Thu, 21 May 2009 16:28:33 +0000 (01:28 +0900)
commit05ff3004d278b54760abd71530506d803182c71d
treed00343e85051b7cf4d671b9131581dfa6ad35456
parentfa1d43ab451084785153d37ae559c4fdd1546a5b
sh: irq: Teach ipr and intc about dynamically allocating irq_descs.

This hooks in irq_to_desc_alloc_cpu() to the necessary code paths in the
intc and ipr controller registration paths. As these are the primary call
paths for all SH CPUs, this alone will make all CPUs sparse IRQ ready.

There is the added benefit now that each CPU contains specific IPR and
INTC tables, so only the vectors with interrupt sources backing them will
ever see an irq_desc instantiation. This effectively packs irq_desc
down to match the CPU, rather than padding NR_IRQS out to cover the valid
vector range.

Boards with extra sources will still have to fiddle with the nr_irqs
setting, but they can continue doing so through the machvec as before.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/cpu/irq/ipr.c
drivers/sh/intc.c