aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/alchemy/common
diff options
context:
space:
mode:
authorManuel Lauss <manuel.lauss@googlemail.com>2009-10-04 08:55:26 -0400
committerRalf Baechle <ralf@linux-mips.org>2010-02-27 06:52:50 -0500
commit7e50b2b741bb4f9dbddc9f56972ef82a7d4b33ed (patch)
tree3302cb551b83f715827e967e3f8fd7188d952b91 /arch/mips/alchemy/common
parent95a437966dba642870a93d16bf82af8926bb2082 (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.c15
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 @@
40static int au1x_ic_settype(unsigned int irq, unsigned int flow_type); 40static 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 */
43struct au1xxx_irqmap au1xxx_ic0_map[] __initdata = { 43struct 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 */
550void __init au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count) 553static 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}