Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / arch / mips / ddb5xxx / ddb5476 / vrc5476_irq.c
index c662dd2..a3c5e7b 100644 (file)
@@ -53,37 +53,33 @@ static void vrc5476_irq_end(uint irq)
 }
 
 static hw_irq_controller vrc5476_irq_controller = {
-       "vrc5476",
-       vrc5476_irq_startup,
-       vrc5476_irq_shutdown,
-       vrc5476_irq_enable,
-       vrc5476_irq_disable,
-       vrc5476_irq_ack,
-       vrc5476_irq_end,
-       NULL                            /* no affinity stuff for UP */
+       .typename = "vrc5476",
+       .startup = vrc5476_irq_startup,
+       .shutdown = vrc5476_irq_shutdown,
+       .enable = vrc5476_irq_enable,
+       .disable = vrc5476_irq_disable,
+       .ack = vrc5476_irq_ack,
+       .end = vrc5476_irq_end
 };
 
 void __init
 vrc5476_irq_init(u32 base)
 {
-       extern irq_desc_t irq_desc[];
        u32 i;
 
        irq_base = base;
        for (i= base; i< base + NUM_VRC5476_IRQ; i++) {
                irq_desc[i].status = IRQ_DISABLED;
                irq_desc[i].action = NULL;
-                irq_desc[i].depth = 1;
-                irq_desc[i].handler = &vrc5476_irq_controller;
+               irq_desc[i].depth = 1;
+               irq_desc[i].handler = &vrc5476_irq_controller;
        }
 }
 
 
-asmlinkage void
+void
 vrc5476_irq_dispatch(struct pt_regs *regs)
 {
-       extern void spurious_interrupt(void);
-
        u32 mask;
        int nile4_irq;
 
@@ -109,5 +105,5 @@ vrc5476_irq_dispatch(struct pt_regs *regs)
                        return;
                }
        }
-       spurious_interrupt();
+       spurious_interrupt(regs);
 }