diff options
author | Manuel Lauss <manuel.lauss@googlemail.com> | 2009-10-04 08:55:26 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2010-02-27 06:52:50 -0500 |
commit | 7e50b2b741bb4f9dbddc9f56972ef82a7d4b33ed (patch) | |
tree | 3302cb551b83f715827e967e3f8fd7188d952b91 /arch/mips/alchemy/common | |
parent | 95a437966dba642870a93d16bf82af8926bb2082 (diff) |
MIPS: Alchemy: remove board_init_irq() function.
remove board_init_irq(): On all in-kernel boards it is sufficient to
initialize board interrupts in an arch_initcall by using the default
linux irq functions.
Some small irqmap.c files have been folded into board_setup files.
Run-tested on DB1200; compile-tested on all other affected boards.
Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/alchemy/common')
-rw-r--r-- | arch/mips/alchemy/common/irq.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/arch/mips/alchemy/common/irq.c b/arch/mips/alchemy/common/irq.c index d670928afcfd..422ecc632c23 100644 --- a/arch/mips/alchemy/common/irq.c +++ b/arch/mips/alchemy/common/irq.c | |||
@@ -40,8 +40,11 @@ | |||
40 | static int au1x_ic_settype(unsigned int irq, unsigned int flow_type); | 40 | static int au1x_ic_settype(unsigned int irq, unsigned int flow_type); |
41 | 41 | ||
42 | /* per-processor fixed function irqs */ | 42 | /* per-processor fixed function irqs */ |
43 | struct au1xxx_irqmap au1xxx_ic0_map[] __initdata = { | 43 | struct au1xxx_irqmap { |
44 | 44 | int im_irq; | |
45 | int im_type; | ||
46 | int im_request; | ||
47 | } au1xxx_ic0_map[] __initdata = { | ||
45 | #if defined(CONFIG_SOC_AU1000) | 48 | #if defined(CONFIG_SOC_AU1000) |
46 | { AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, | 49 | { AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, |
47 | { AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, | 50 | { AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, |
@@ -547,7 +550,7 @@ spurious: | |||
547 | } | 550 | } |
548 | 551 | ||
549 | /* setup edge/level and assign request 0/1 */ | 552 | /* setup edge/level and assign request 0/1 */ |
550 | void __init au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count) | 553 | static void __init setup_irqmap(struct au1xxx_irqmap *map, int count) |
551 | { | 554 | { |
552 | unsigned int bit, irq_nr; | 555 | unsigned int bit, irq_nr; |
553 | 556 | ||
@@ -619,11 +622,7 @@ void __init arch_init_irq(void) | |||
619 | /* | 622 | /* |
620 | * Initialize IC0, which is fixed per processor. | 623 | * Initialize IC0, which is fixed per processor. |
621 | */ | 624 | */ |
622 | au1xxx_setup_irqmap(au1xxx_ic0_map, ARRAY_SIZE(au1xxx_ic0_map)); | 625 | setup_irqmap(au1xxx_ic0_map, ARRAY_SIZE(au1xxx_ic0_map)); |
623 | |||
624 | /* Boards can register additional (GPIO-based) IRQs. | ||
625 | */ | ||
626 | board_init_irq(); | ||
627 | 626 | ||
628 | set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3); | 627 | set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3); |
629 | } | 628 | } |