|
@@ -393,13 +393,15 @@ static void armada_370_xp_handle_msi_irq(struct pt_regs *regs, bool is_chained)
|
|
|
if (!(msimask & BIT(msinr)))
|
|
|
continue;
|
|
|
|
|
|
- irq = irq_find_mapping(armada_370_xp_msi_domain,
|
|
|
- msinr - 16);
|
|
|
-
|
|
|
- if (is_chained)
|
|
|
+ if (is_chained) {
|
|
|
+ irq = irq_find_mapping(armada_370_xp_msi_domain,
|
|
|
+ msinr - 16);
|
|
|
generic_handle_irq(irq);
|
|
|
- else
|
|
|
- handle_IRQ(irq, regs);
|
|
|
+ } else {
|
|
|
+ irq = msinr - 16;
|
|
|
+ handle_domain_irq(armada_370_xp_msi_domain,
|
|
|
+ irq, regs);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
#else
|
|
@@ -444,9 +446,8 @@ armada_370_xp_handle_irq(struct pt_regs *regs)
|
|
|
break;
|
|
|
|
|
|
if (irqnr > 1) {
|
|
|
- irqnr = irq_find_mapping(armada_370_xp_mpic_domain,
|
|
|
- irqnr);
|
|
|
- handle_IRQ(irqnr, regs);
|
|
|
+ handle_domain_irq(armada_370_xp_mpic_domain,
|
|
|
+ irqnr, regs);
|
|
|
continue;
|
|
|
}
|
|
|
|