#include <asm/system.h>
#include <asm/gt64120.h>
-asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
+asmlinkage inline void pci_intA(struct pt_regs *regs)
{
- unsigned int pending = read_c0_status() & read_c0_cause();
-
- if (pending & STATUSF_IP4) /* int2 hardware line (timer) */
- do_IRQ(4, regs);
- else if (pending & STATUSF_IP2) /* int0 hardware line */
- do_IRQ(GT_INTA, regs);
- else if (pending & STATUSF_IP5) /* int3 hardware line */
- do_IRQ(GT_INTD, regs);
- else if (pending & STATUSF_IP6) /* int4 hardware line */
- do_IRQ(6, regs);
- else if (pending & STATUSF_IP7) /* compare int */
- do_IRQ(7, regs);
- else
- spurious_interrupt(regs);
+ do_IRQ(GT_INTA, regs);
+}
+
+asmlinkage inline void pci_intD(struct pt_regs *regs)
+{
+ do_IRQ(GT_INTD, regs);
}
static void disable_ev64120_irq(unsigned int irq_nr)
void gt64120_irq_setup(void)
{
+ extern asmlinkage void galileo_handle_int(void);
+
/*
* Clear all of the interrupts while we change the able around a bit.
*/
clear_c0_status(ST0_IM);
+ /* Sets the exception_handler array. */
+ set_except_vector(0, galileo_handle_int);
+
local_irq_disable();
/*