X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fmips%2Fgalileo-boards%2Fev96100%2Firq.c;h=97bf094da4fe07f2af22c77aed110a003f5e7b1c;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=ee5d6720f23bf614c8a6ea18ae985a5386e4f894;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/arch/mips/galileo-boards/ev96100/irq.c b/arch/mips/galileo-boards/ev96100/irq.c index ee5d6720f..97bf094da 100644 --- a/arch/mips/galileo-boards/ev96100/irq.c +++ b/arch/mips/galileo-boards/ev96100/irq.c @@ -40,6 +40,8 @@ #include #include +extern asmlinkage void ev96100IRQ(void); + static inline unsigned int ffz8(unsigned int word) { unsigned long k; @@ -52,26 +54,13 @@ static inline unsigned int ffz8(unsigned int word) return k; } -extern void mips_timer_interrupt(struct pt_regs *regs); - -asmlinkage void ev96100_cpu_irq(unsigned int pending, struct pt_regs *regs) +asmlinkage void ev96100_cpu_irq(unsigned int pendin) { do_IRQ(ffz8(pending >> 8), regs); } -asmlinkage void plat_irq_dispatch(struct pt_regs *regs) -{ - unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM; - - if (pending & CAUSEF_IP7) - mips_timer_interrupt(regs); - else if (pending) - ev96100_cpu_irq(pending, regs); - else - spurious_interrupt(regs); -} - void __init arch_init_irq(void) { + set_except_vector(0, ev96100IRQ); mips_cpu_irq_init(0); }