asmlinkage void plat_irq_dispatch(void) { unsigned long pending; pending = read_c0_status() & read_c0_cause() & ST0_IM; if (pending & STATUSF_IP7) do_IRQ(AR71XX_CPU_IRQ_TIMER); #ifdef CONFIG_PCI else if (pending & STATUSF_IP2) ar71xx_pci_irq_dispatch(); #endif else if (pending & STATUSF_IP4) do_IRQ(AR71XX_CPU_IRQ_GE0); else if (pending & STATUSF_IP5) do_IRQ(AR71XX_CPU_IRQ_GE1); else if (pending & STATUSF_IP3) do_IRQ(AR71XX_CPU_IRQ_USB); else if (pending & STATUSF_IP6) ar71xx_misc_irq_dispatch(); else spurious_interrupt(); }
asmlinkage void plat_irq_dispatch(void) { unsigned long pending; pending = read_c0_status() & read_c0_cause() & ST0_IM; if (pending & STATUSF_IP7) do_IRQ(AR71XX_CPU_IRQ_TIMER); else if (pending & STATUSF_IP2) ip2_handler(); else if (pending & STATUSF_IP4) do_IRQ(AR71XX_CPU_IRQ_GE0); else if (pending & STATUSF_IP5) do_IRQ(AR71XX_CPU_IRQ_GE1); else if (pending & STATUSF_IP3) ip3_handler(); else if (pending & STATUSF_IP6) ar71xx_misc_irq_dispatch(); else spurious_interrupt(); }