asmlinkage void plat_irq_dispatch(void) { unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM; if (pending & STATUSF_IP7) do_IRQ(CPU_IRQ_BASE + 7); else if (pending & VR5477INTS) vrc5477_irq_dispatch(); else if (pending & STATUSF_IP0) do_IRQ(CPU_IRQ_BASE); else if (pending & STATUSF_IP1) do_IRQ(CPU_IRQ_BASE + 1); else spurious_interrupt(); }
asmlinkage void plat_irq_dispatch(struct pt_regs *regs) { unsigned int pending = read_c0_cause() & read_c0_status(); if (pending & STATUSF_IP7) do_IRQ(CPU_IRQ_BASE + 7, regs); else if (pending & VR5477INTS) vrc5477_irq_dispatch(regs); else if (pending & STATUSF_IP0) do_IRQ(CPU_IRQ_BASE, regs); else if (pending & STATUSF_IP1) do_IRQ(CPU_IRQ_BASE + 1, regs); else spurious_interrupt(regs); }