diff options
Diffstat (limited to 'arch/mips/dec/irq.c')
-rw-r--r-- | arch/mips/dec/irq.c | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/arch/mips/dec/irq.c b/arch/mips/dec/irq.c index 2f1951887..ce1ccb994 100644 --- a/arch/mips/dec/irq.c +++ b/arch/mips/dec/irq.c @@ -25,6 +25,15 @@ #include <asm/dec/interrupts.h> +extern void dec_init_kn01(void); +extern void dec_init_kn230(void); +extern void dec_init_kn02(void); +extern void dec_init_kn02ba(void); +extern void dec_init_kn02ca(void); +extern void dec_init_kn03(void); + +extern asmlinkage void decstation_handle_int(void); + unsigned long spurious_count = 0; static inline void mask_irq(unsigned int irq_nr) @@ -255,5 +264,34 @@ int probe_irq_off(unsigned long irqs) void __init init_IRQ(void) { - irq_setup(); + switch (mips_machtype) { + case MACH_DS23100: + dec_init_kn01(); + break; + case MACH_DS5100: /* DS5100 MIPSMATE */ + dec_init_kn230(); + break; + case MACH_DS5000_200: /* DS5000 3max */ + dec_init_kn02(); + break; + case MACH_DS5000_1XX: /* DS5000/100 3min */ + dec_init_kn02ba(); + break; + case MACH_DS5000_2X0: /* DS5000/240 3max+ */ + dec_init_kn03(); + break; + case MACH_DS5000_XX: /* Personal DS5000/2x */ + dec_init_kn02ca(); + break; + case MACH_DS5800: /* DS5800 Isis */ + panic("Don't know how to set this up!"); + break; + case MACH_DS5400: /* DS5400 MIPSfair */ + panic("Don't know how to set this up!"); + break; + case MACH_DS5500: /* DS5500 MIPSfair-2 */ + panic("Don't know how to set this up!"); + break; + } + set_except_vector(0, decstation_handle_int); } |