From: Paul M. <le...@us...> - 2002-04-21 18:03:14
|
Update of /cvsroot/linux-mips/linux/arch/mips/galileo-boards/ev64120 In directory usw-pr-cvs1:/tmp/cvs-serv9425/arch/mips/galileo-boards/ev64120 Modified Files: int-handler.S Log Message: Sync with OSS. Index: int-handler.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/galileo-boards/ev64120/int-handler.S,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- int-handler.S 2 Jan 2002 18:01:13 -0000 1.3 +++ int-handler.S 21 Apr 2002 18:03:11 -0000 1.4 @@ -11,6 +11,7 @@ #include <asm/stackframe.h> /* + * galileo_handle_int - * We check for the timer first, then check PCI ints A and D. * Then check for serial IRQ and fall through. */ @@ -21,66 +22,93 @@ SAVE_ALL CLI .set at + mfc0 t0,CP0_CAUSE + mfc0 t2,CP0_STATUS - mfc0 t0, CP0_CAUSE - mfc0 t2, CP0_STATUS - - and t0, t2 + and t0,t2 - .set noreorder - andi t1, t0, STATUSF_IP4 /* int2 hardware line (timer) */ - andi t2, t0, STATUSF_IP2 /* int0 hardware line */ - bnez t1, ll_galileo_irq - andi t1, t0, STATUSF_IP5 /* int3 hardware line */ - bnez t2, ll_pci_intA - andi t2, t0, STATUSF_IP6 /* int4 hardware line */ - bnez t1, ll_pci_intD - andi t1, t0, STATUSF_IP7 /* compare int */ - bnez t2, ll_serial_irq - nop - bnez t1, ll_compare_irq + andi t1,t0,STATUSF_IP4 /* int2 hardware line (timer) */ + bnez t1,ll_galileo_irq + andi t1,t0,STATUSF_IP2 /* int0 hardware line */ + bnez t1,ll_pci_intA + andi t1,t0,STATUSF_IP5 /* int3 hardware line */ + bnez t1,ll_pci_intD + andi t1,t0,STATUSF_IP6 /* int4 hardware line */ + bnez t1,ll_serial_irq + andi t1,t0,STATUSF_IP7 /* compare int */ + bnez t1,ll_compare_irq nop - .set reorder + /* wrong alarm or masked ... */ j spurious_interrupt + nop END(galileo_handle_int) + .align 5 -ll_galileo_irq: li a0, 4 - move a1, sp + .set reorder +ll_galileo_irq: + li a0,4 + move a1,sp jal do_IRQ + nop j ret_from_irq + nop .align 5 -ll_compare_irq: li a0, 7 - move a1, sp + .set reorder +ll_compare_irq: + li a0,7 + move a1,sp jal do_IRQ + nop j ret_from_irq + nop .align 5 -ll_pci_intA: move a0, sp + .set reorder +ll_pci_intA: + move a0,sp jal pci_intA + nop j ret_from_irq + nop #if 0 .align 5 -ll_pci_intB: move a0, sp + .set reorder +ll_pci_intB: + move a0,sp jal pci_intB + nop j ret_from_irq + nop .align 5 -ll_pci_intC: move a0, sp + .set reorder +ll_pci_intC: + move a0,sp jal pci_intC + nop j ret_from_irq + nop #endif .align 5 -ll_pci_intD: move a0, sp + .set reorder +ll_pci_intD: + move a0,sp jal pci_intD + nop j ret_from_irq + nop .align 5 -ll_serial_irq: li a0, 6 - move a1, sp + .set reorder +ll_serial_irq: + li a0,6 + move a1,sp jal do_IRQ + nop j ret_from_irq + nop |