diff options
Diffstat (limited to 'arch/mips/sibyte/bcm1480/irq.c')
-rw-r--r-- | arch/mips/sibyte/bcm1480/irq.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c index 29d3bbb5847d..ed325f0ab28a 100644 --- a/arch/mips/sibyte/bcm1480/irq.c +++ b/arch/mips/sibyte/bcm1480/irq.c | |||
@@ -83,7 +83,7 @@ extern char sb1250_duart_present[]; | |||
83 | #endif | 83 | #endif |
84 | #endif | 84 | #endif |
85 | 85 | ||
86 | static struct hw_interrupt_type bcm1480_irq_type = { | 86 | static struct irq_chip bcm1480_irq_type = { |
87 | .typename = "BCM1480-IMR", | 87 | .typename = "BCM1480-IMR", |
88 | .startup = startup_bcm1480_irq, | 88 | .startup = startup_bcm1480_irq, |
89 | .shutdown = shutdown_bcm1480_irq, | 89 | .shutdown = shutdown_bcm1480_irq, |
@@ -140,7 +140,7 @@ static void bcm1480_set_affinity(unsigned int irq, cpumask_t mask) | |||
140 | { | 140 | { |
141 | int i = 0, old_cpu, cpu, int_on, k; | 141 | int i = 0, old_cpu, cpu, int_on, k; |
142 | u64 cur_ints; | 142 | u64 cur_ints; |
143 | irq_desc_t *desc = irq_desc + irq; | 143 | struct irq_desc *desc = irq_desc + irq; |
144 | unsigned long flags; | 144 | unsigned long flags; |
145 | unsigned int irq_dirty; | 145 | unsigned int irq_dirty; |
146 | 146 | ||
@@ -278,7 +278,7 @@ void __init init_bcm1480_irqs(void) | |||
278 | irq_desc[i].chip = &bcm1480_irq_type; | 278 | irq_desc[i].chip = &bcm1480_irq_type; |
279 | bcm1480_irq_owner[i] = 0; | 279 | bcm1480_irq_owner[i] = 0; |
280 | } else { | 280 | } else { |
281 | irq_desc[i].chip = &no_irq_type; | 281 | irq_desc[i].chip = &no_irq_chip; |
282 | } | 282 | } |
283 | } | 283 | } |
284 | } | 284 | } |
@@ -301,7 +301,7 @@ static struct irqaction bcm1480_dummy_action = { | |||
301 | 301 | ||
302 | int bcm1480_steal_irq(int irq) | 302 | int bcm1480_steal_irq(int irq) |
303 | { | 303 | { |
304 | irq_desc_t *desc = irq_desc + irq; | 304 | struct irq_desc *desc = irq_desc + irq; |
305 | unsigned long flags; | 305 | unsigned long flags; |
306 | int retval = 0; | 306 | int retval = 0; |
307 | 307 | ||
@@ -502,22 +502,23 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs) | |||
502 | #ifdef CONFIG_SIBYTE_BCM1480_PROF | 502 | #ifdef CONFIG_SIBYTE_BCM1480_PROF |
503 | if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */ | 503 | if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */ |
504 | sbprof_cpu_intr(exception_epc(regs)); | 504 | sbprof_cpu_intr(exception_epc(regs)); |
505 | else | ||
505 | #endif | 506 | #endif |
506 | 507 | ||
507 | if (pending & CAUSEF_IP4) | 508 | if (pending & CAUSEF_IP4) |
508 | bcm1480_timer_interrupt(regs); | 509 | bcm1480_timer_interrupt(regs); |
509 | 510 | ||
510 | #ifdef CONFIG_SMP | 511 | #ifdef CONFIG_SMP |
511 | if (pending & CAUSEF_IP3) | 512 | else if (pending & CAUSEF_IP3) |
512 | bcm1480_mailbox_interrupt(regs); | 513 | bcm1480_mailbox_interrupt(regs); |
513 | #endif | 514 | #endif |
514 | 515 | ||
515 | #ifdef CONFIG_KGDB | 516 | #ifdef CONFIG_KGDB |
516 | if (pending & CAUSEF_IP6) | 517 | else if (pending & CAUSEF_IP6) |
517 | bcm1480_kgdb_interrupt(regs); /* KGDB (uart 1) */ | 518 | bcm1480_kgdb_interrupt(regs); /* KGDB (uart 1) */ |
518 | #endif | 519 | #endif |
519 | 520 | ||
520 | if (pending & CAUSEF_IP2) { | 521 | else if (pending & CAUSEF_IP2) { |
521 | unsigned long long mask_h, mask_l; | 522 | unsigned long long mask_h, mask_l; |
522 | unsigned long base; | 523 | unsigned long base; |
523 | 524 | ||
@@ -533,7 +534,7 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs) | |||
533 | mask_l = __raw_readq( | 534 | mask_l = __raw_readq( |
534 | IOADDR(base + R_BCM1480_IMR_INTERRUPT_STATUS_BASE_L)); | 535 | IOADDR(base + R_BCM1480_IMR_INTERRUPT_STATUS_BASE_L)); |
535 | 536 | ||
536 | if (!mask_h) { | 537 | if (mask_h) { |
537 | if (mask_h ^ 1) | 538 | if (mask_h ^ 1) |
538 | do_IRQ(63 - dclz(mask_h), regs); | 539 | do_IRQ(63 - dclz(mask_h), regs); |
539 | else | 540 | else |