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
|