linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / mips / dec / setup.c
index d43241c..7c1ca8f 100644 (file)
@@ -48,6 +48,8 @@ extern void dec_machine_halt(void);
 extern void dec_machine_power_off(void);
 extern irqreturn_t dec_intr_halt(int irq, void *dev_id, struct pt_regs *regs);
 
+extern asmlinkage void decstation_handle_int(void);
+
 unsigned long dec_kn_slot_base, dec_kn_slot_size;
 
 EXPORT_SYMBOL(dec_kn_slot_base);
@@ -105,7 +107,7 @@ static struct irqaction fpuirq = {
 };
 
 static struct irqaction busirq = {
-       .flags = IRQF_DISABLED,
+       .flags = SA_INTERRUPT,
        .name = "bus error",
 };
 
@@ -124,7 +126,7 @@ static void __init dec_be_init(void)
        case MACH_DS23100:      /* DS2100/DS3100 Pmin/Pmax */
                board_be_handler = dec_kn01_be_handler;
                busirq.handler = dec_kn01_be_interrupt;
-               busirq.flags |= IRQF_SHARED;
+               busirq.flags |= SA_SHIRQ;
                dec_kn01_be_init();
                break;
        case MACH_DS5000_1XX:   /* DS5000/1xx 3min */
@@ -145,11 +147,13 @@ static void __init dec_be_init(void)
 
 
 extern void dec_time_init(void);
+extern void dec_timer_setup(struct irqaction *);
 
-void __init plat_mem_setup(void)
+void __init plat_setup(void)
 {
        board_be_init = dec_be_init;
        board_time_init = dec_time_init;
+       board_timer_setup = dec_timer_setup;
 
        wbflush_setup();
 
@@ -740,6 +744,7 @@ void __init arch_init_irq(void)
                panic("Don't know how to set this up!");
                break;
        }
+       set_except_vector(0, decstation_handle_int);
 
        /* Free the FPU interrupt if the exception is present. */
        if (!cpu_has_nofpuex) {