Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy...
[sfrench/cifs-2.6.git] / arch / mips / sgi-ip27 / ip27-irq.c
index 270ecd3e6b4a5fe1990cc104b4585c8f6f6d874d..60ade7690e09861aafcfa0ca3f09da1eef8230a5 100644 (file)
@@ -332,34 +332,19 @@ static inline void disable_bridge_irq(unsigned int irq)
        intr_disconnect_level(cpu, swlevel);
 }
 
-static void mask_and_ack_bridge_irq(unsigned int irq)
-{
-       disable_bridge_irq(irq);
-}
-
-static void end_bridge_irq(unsigned int irq)
-{
-       if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)) &&
-           irq_desc[irq].action)
-               enable_bridge_irq(irq);
-}
-
 static struct irq_chip bridge_irq_type = {
-       .typename       = "bridge",
+       .name           = "bridge",
        .startup        = startup_bridge_irq,
        .shutdown       = shutdown_bridge_irq,
-       .enable         = enable_bridge_irq,
-       .disable        = disable_bridge_irq,
-       .ack            = mask_and_ack_bridge_irq,
-       .end            = end_bridge_irq,
+       .ack            = disable_bridge_irq,
+       .mask           = disable_bridge_irq,
+       .mask_ack       = disable_bridge_irq,
+       .unmask         = enable_bridge_irq,
 };
 
 void __devinit register_bridge_irq(unsigned int irq)
 {
-       irq_desc[irq].status    = IRQ_DISABLED;
-       irq_desc[irq].action    = 0;
-       irq_desc[irq].depth     = 1;
-       irq_desc[irq].chip      = &bridge_irq_type;
+       set_irq_chip_and_handler(irq, &bridge_irq_type, handle_level_irq);
 }
 
 int __devinit request_bridge_irq(struct bridge_controller *bc)