aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/lasat/interrupt.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/lasat/interrupt.c')
-rw-r--r--arch/mips/lasat/interrupt.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/mips/lasat/interrupt.c b/arch/mips/lasat/interrupt.c
index 5f35289bfff5..ba9692be3564 100644
--- a/arch/mips/lasat/interrupt.c
+++ b/arch/mips/lasat/interrupt.c
@@ -26,6 +26,7 @@
26#include <linux/kernel_stat.h> 26#include <linux/kernel_stat.h>
27 27
28#include <asm/bootinfo.h> 28#include <asm/bootinfo.h>
29#include <asm/irq_cpu.h>
29#include <asm/lasat/lasatint.h> 30#include <asm/lasat/lasatint.h>
30#include <asm/time.h> 31#include <asm/time.h>
31#include <asm/gdb-stub.h> 32#include <asm/gdb-stub.h>
@@ -88,7 +89,7 @@ asmlinkage void plat_irq_dispatch(void)
88 int irq; 89 int irq;
89 90
90 if (cause & CAUSEF_IP7) { /* R4000 count / compare IRQ */ 91 if (cause & CAUSEF_IP7) { /* R4000 count / compare IRQ */
91 ll_timer_interrupt(7); 92 do_IRQ(7);
92 return; 93 return;
93 } 94 }
94 95
@@ -96,7 +97,7 @@ asmlinkage void plat_irq_dispatch(void)
96 97
97 /* if int_status == 0, then the interrupt has already been cleared */ 98 /* if int_status == 0, then the interrupt has already been cleared */
98 if (int_status) { 99 if (int_status) {
99 irq = ls1bit32(int_status); 100 irq = LASATINT_BASE + ls1bit32(int_status);
100 101
101 do_IRQ(irq); 102 do_IRQ(irq);
102 } 103 }
@@ -125,6 +126,7 @@ void __init arch_init_irq(void)
125 panic("arch_init_irq: mips_machtype incorrect"); 126 panic("arch_init_irq: mips_machtype incorrect");
126 } 127 }
127 128
128 for (i = 0; i <= LASATINT_END; i++) 129 mips_cpu_irq_init();
130 for (i = LASATINT_BASE; i <= LASATINT_END; i++)
129 set_irq_chip_and_handler(i, &lasat_irq_type, handle_level_irq); 131 set_irq_chip_and_handler(i, &lasat_irq_type, handle_level_irq);
130} 132}