diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-11-02 01:43:20 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-11-02 01:43:20 -0500 |
commit | 45b9deaf14e74543371aa8faea69c14e27b038c6 (patch) | |
tree | 485b9beab7f908557ab816fa473d7a5bdb494841 /arch/sh | |
parent | 3d0de414423a20af741b692243317f423827489b (diff) |
sh: intc: Handle legacy IRQ reservation in vector map.
Different CPUs will have different starting vectors, with varying
amounts of reserved or unusable vector space prior to the first slot.
This introduces a legacy vector reservation system that inserts itself in
between the CPU vector map registration and the platform specific IRQ
setup. This works fine in practice as the only new vectors that boards
need to establish on their own should be dynamically allocated rather
than arbitrarily assigned. As a plus, this also makes all of the
converted platforms sparseirq ready.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/kernel/irq.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c index 7aa89fac1f81..e1913f28f418 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c | |||
@@ -263,6 +263,12 @@ void __init init_IRQ(void) | |||
263 | { | 263 | { |
264 | plat_irq_setup(); | 264 | plat_irq_setup(); |
265 | 265 | ||
266 | /* | ||
267 | * Pin any of the legacy IRQ vectors that haven't already been | ||
268 | * grabbed by the platform | ||
269 | */ | ||
270 | reserve_irq_legacy(); | ||
271 | |||
266 | /* Perform the machine specific initialisation */ | 272 | /* Perform the machine specific initialisation */ |
267 | if (sh_mv.mv_init_irq) | 273 | if (sh_mv.mv_init_irq) |
268 | sh_mv.mv_init_irq(); | 274 | sh_mv.mv_init_irq(); |