| * This file is subject to the terms and conditions of the GNU General Public |
| * License. See the file "COPYING" in the main directory of this archive |
| * Copyright (C) 1995, 1996, 1997, 2003 by Ralf Baechle |
| #include <linux/kernel.h> |
| #include <linux/interrupt.h> |
| #include <asm/irq_gt641xx.h> |
| asmlinkage void plat_irq_dispatch(void) |
| unsigned pending = read_c0_status() & read_c0_cause() & ST0_IM; |
| if (pending & CAUSEF_IP2) |
| else if (pending & CAUSEF_IP6) { |
| } else if (pending & CAUSEF_IP3) |
| do_IRQ(MIPS_CPU_IRQ_BASE + 3); |
| else if (pending & CAUSEF_IP4) |
| do_IRQ(MIPS_CPU_IRQ_BASE + 4); |
| else if (pending & CAUSEF_IP5) |
| do_IRQ(MIPS_CPU_IRQ_BASE + 5); |
| else if (pending & CAUSEF_IP7) |
| do_IRQ(MIPS_CPU_IRQ_BASE + 7); |
| static struct irqaction cascade = { |
| void __init arch_init_irq(void) |
| setup_irq(GT641XX_CASCADE_IRQ, &cascade); |
| setup_irq(I8259_CASCADE_IRQ, &cascade); |