aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-armada-370-xp.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/irqchip/irq-armada-370-xp.c')
-rw-r--r--drivers/irqchip/irq-armada-370-xp.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index df60eabaf49e..3e238cd049e6 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -387,13 +387,15 @@ static void armada_370_xp_handle_msi_irq(struct pt_regs *regs, bool is_chained)
387 if (!(msimask & BIT(msinr))) 387 if (!(msimask & BIT(msinr)))
388 continue; 388 continue;
389 389
390 irq = irq_find_mapping(armada_370_xp_msi_domain, 390 if (is_chained) {
391 msinr - 16); 391 irq = irq_find_mapping(armada_370_xp_msi_domain,
392 392 msinr - 16);
393 if (is_chained)
394 generic_handle_irq(irq); 393 generic_handle_irq(irq);
395 else 394 } else {
396 handle_IRQ(irq, regs); 395 irq = msinr - 16;
396 handle_domain_irq(armada_370_xp_msi_domain,
397 irq, regs);
398 }
397 } 399 }
398} 400}
399#else 401#else
@@ -438,9 +440,8 @@ armada_370_xp_handle_irq(struct pt_regs *regs)
438 break; 440 break;
439 441
440 if (irqnr > 1) { 442 if (irqnr > 1) {
441 irqnr = irq_find_mapping(armada_370_xp_mpic_domain, 443 handle_domain_irq(armada_370_xp_mpic_domain,
442 irqnr); 444 irqnr, regs);
443 handle_IRQ(irqnr, regs);
444 continue; 445 continue;
445 } 446 }
446 447