+
+asmlinkage void plat_irq_dispatch(void)
+{
+ unsigned int pending = read_c0_status() & read_c0_cause() & ST0_IM;
+
+ if (pending & CAUSEF_IP7)
+ mips_timer_interrupt();
+ else if (pending & CAUSEF_IP2)
+ intc0_req0_irqdispatch();
+ else if (pending & CAUSEF_IP3)
+ intc0_req1_irqdispatch();
+ else if (pending & CAUSEF_IP4)
+ intc1_req0_irqdispatch();
+ else if (pending & CAUSEF_IP5)
+ intc1_req1_irqdispatch();
+ else
+ spurious_interrupt();
+}