diff options
Diffstat (limited to 'arch/mips/sgi-ip27/ip27-irq.c')
-rw-r--r-- | arch/mips/sgi-ip27/ip27-irq.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c index 270ecd3e6b4a..319f8803ef6f 100644 --- a/arch/mips/sgi-ip27/ip27-irq.c +++ b/arch/mips/sgi-ip27/ip27-irq.c | |||
@@ -332,34 +332,19 @@ static inline void disable_bridge_irq(unsigned int irq) | |||
332 | intr_disconnect_level(cpu, swlevel); | 332 | intr_disconnect_level(cpu, swlevel); |
333 | } | 333 | } |
334 | 334 | ||
335 | static void mask_and_ack_bridge_irq(unsigned int irq) | ||
336 | { | ||
337 | disable_bridge_irq(irq); | ||
338 | } | ||
339 | |||
340 | static void end_bridge_irq(unsigned int irq) | ||
341 | { | ||
342 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)) && | ||
343 | irq_desc[irq].action) | ||
344 | enable_bridge_irq(irq); | ||
345 | } | ||
346 | |||
347 | static struct irq_chip bridge_irq_type = { | 335 | static struct irq_chip bridge_irq_type = { |
348 | .typename = "bridge", | 336 | .typename = "bridge", |
349 | .startup = startup_bridge_irq, | 337 | .startup = startup_bridge_irq, |
350 | .shutdown = shutdown_bridge_irq, | 338 | .shutdown = shutdown_bridge_irq, |
351 | .enable = enable_bridge_irq, | 339 | .ack = disable_bridge_irq, |
352 | .disable = disable_bridge_irq, | 340 | .mask = disable_bridge_irq, |
353 | .ack = mask_and_ack_bridge_irq, | 341 | .mask_ack = disable_bridge_irq, |
354 | .end = end_bridge_irq, | 342 | .unmask = enable_bridge_irq, |
355 | }; | 343 | }; |
356 | 344 | ||
357 | void __devinit register_bridge_irq(unsigned int irq) | 345 | void __devinit register_bridge_irq(unsigned int irq) |
358 | { | 346 | { |
359 | irq_desc[irq].status = IRQ_DISABLED; | 347 | set_irq_chip_and_handler(irq, &bridge_irq_type, handle_level_irq); |
360 | irq_desc[irq].action = 0; | ||
361 | irq_desc[irq].depth = 1; | ||
362 | irq_desc[irq].chip = &bridge_irq_type; | ||
363 | } | 348 | } |
364 | 349 | ||
365 | int __devinit request_bridge_irq(struct bridge_controller *bc) | 350 | int __devinit request_bridge_irq(struct bridge_controller *bc) |