RT-AC66 3.0.0.4.374.130 core
[tomato.git] / release / src-rt-6.x / linux / linux-2.6 / arch / mips / qemu / q-irq.c
blob89891e984b3bc3c67f0c66ee81a65bb691311941
1 #include <linux/init.h>
2 #include <linux/linkage.h>
4 #include <asm/i8259.h>
5 #include <asm/mipsregs.h>
6 #include <asm/qemu.h>
7 #include <asm/system.h>
8 #include <asm/time.h>
10 asmlinkage void plat_irq_dispatch(void)
12 unsigned int pending = read_c0_status() & read_c0_cause();
14 if (pending & 0x8000) {
15 ll_timer_interrupt(Q_COUNT_COMPARE_IRQ);
16 return;
18 if (pending & 0x0400) {
19 int irq = i8259_irq();
21 if (likely(irq >= 0))
22 do_IRQ(irq);
24 return;
28 void __init arch_init_irq(void)
30 mips_hpt_frequency = QEMU_C0_COUNTER_CLOCK; /* 100MHz */
32 init_i8259_irqs();
33 set_c0_status(0x8400);