From e4598d1f9097360d265a55f468db81d751e29a1d Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Mon, 4 Jun 2001 20:18:52 +0000 Subject: Blind attempt at fixing DEC support ... --- arch/mips/dec/irq.c | 40 +++++++++++++++++++++++++++++++++++++++- arch/mips/dec/setup.c | 43 ------------------------------------------- 2 files changed, 39 insertions(+), 44 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 +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); } diff --git a/arch/mips/dec/setup.c b/arch/mips/dec/setup.c index bfb1f38a5..8429563a4 100644 --- a/arch/mips/dec/setup.c +++ b/arch/mips/dec/setup.c @@ -28,14 +28,6 @@ #include #include -extern asmlinkage void decstation_handle_int(void); - -void dec_init_kn01(void); -void dec_init_kn230(void); -void dec_init_kn02(void); -void dec_init_kn02ba(void); -void dec_init_kn02ca(void); -void dec_init_kn03(void); char *dec_rtc_base = (void *) KN01_RTC_BASE; /* Assume DS2100/3100 initially */ @@ -64,40 +56,6 @@ extern int setup_dec_irq(int, struct irqaction *); void (*board_time_init) (struct irqaction * irq); -static void __init dec_irq_setup(void) -{ - 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); -} - /* * enable the periodic interrupts */ @@ -118,7 +76,6 @@ static void __init dec_time_init(struct irqaction *irq) void __init decstation_setup(void) { - irq_setup = dec_irq_setup; board_time_init = dec_time_init; wbflush_setup(); -- cgit v1.2.3