diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1997-12-01 17:57:09 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1997-12-01 17:57:09 +0000 |
commit | a62a0f262e0179df8c632f529c95abf54ef78332 (patch) | |
tree | 80e6a7a7d407d08e218332bb3fcccdaf9f28fcc1 /arch/mips/dec | |
parent | fd095d09f2d475dc2e8599b1b8bae1cd65e91685 (diff) |
Part #2 merging back my changes ...
Diffstat (limited to 'arch/mips/dec')
-rw-r--r-- | arch/mips/dec/decstation.S | 33 | ||||
-rw-r--r-- | arch/mips/dec/int-handler.S | 40 |
2 files changed, 25 insertions, 48 deletions
diff --git a/arch/mips/dec/decstation.S b/arch/mips/dec/decstation.S index 612fcea0b..ebc618a4c 100644 --- a/arch/mips/dec/decstation.S +++ b/arch/mips/dec/decstation.S @@ -15,7 +15,7 @@ * (Paul, you need to fix this file to comply with NAPS. Won't be * too hard - Ralf) * - * $Id:$ + * $Id: decstation.S,v 1.3 1997/09/20 19:20:06 root Exp $ */ #include <asm/asm.h> #include <asm/mipsconfig.h> @@ -257,19 +257,16 @@ loc_floppy: PANIC("Unimplemented loc_floppy handler") /* * Now call the real handler */ -loc_call: la t0,IRQ_vectors # delay slot - - /* +loc_call: /* * Temporarily disable interrupt source */ /* lhu t2,JAZZ_IO_IRQ_ENABLE */ - addu t0,t3 # make ptr to IRQ handler - LOAD_L t0,(t0) and t2,s1 # delay slot /* sh t2,JAZZ_IO_IRQ_ENABLE */ - jalr t0 # call IRQ handler - nor s1,zero,s1 # delay slot + nor s1,zero,s1 + jal do_IRQ # call IRQ handler + move a1,sp /* * Reenable interrupt @@ -278,7 +275,7 @@ loc_call: la t0,IRQ_vectors # delay slot or t2,s1 /* sh t2,JAZZ_IO_IRQ_ENABLE */ - jr v0 + j ret_from_irq nop # delay slot ll_tc3: PANIC("Unimplemented tc3 interrupt handler") @@ -304,19 +301,15 @@ ll_reset: li a0,0 /* * Now call the real handler */ -call_real: la t0,IRQ_vectors # delay slot - - /* +call_real: /* * temporarily disable interrupt */ mfc0 t2,CP0_STATUS and t2,s1 - - addu t0,t3 - LOAD_L t0,(t0) - mtc0 t2,CP0_STATUS # delay slot - jalr t0 - nor s1,zero,s1 # delay slot + mtc0 t2,CP0_STATUS + nor s1,zero,s1 + jal do_IRQ + move a1,sp /* * reenable interrupt @@ -325,8 +318,8 @@ call_real: la t0,IRQ_vectors # delay slot or t2,s1 mtc0 t2,CP0_STATUS - jr v0 - nop # delay slot + j ret_from_irq + nop # delay slot /* * Just for debugging... load a0 with address of the point inside the diff --git a/arch/mips/dec/int-handler.S b/arch/mips/dec/int-handler.S index 1706dc975..87348b5b1 100644 --- a/arch/mips/dec/int-handler.S +++ b/arch/mips/dec/int-handler.S @@ -12,7 +12,7 @@ * FIXME: still plenty to do in this file, as much of the code hasn't been * modified to suit the DECStation's interrupts. * - * $Id:$ + * $Id: int-handler.S,v 1.3 1997/09/20 19:20:07 root Exp $ */ #include <asm/asm.h> #include <asm/regdef.h> @@ -98,7 +98,7 @@ ll_sw0: li s1,~IE_SW0 PRINT("sw0 received...\n") li t1,1 b call_real - li t3,PTRSIZE # delay slot, re-map to irq level 1 + nop ll_sw1: li s1,~IE_SW1 PANIC("Unimplemented sw1 handler") @@ -108,14 +108,6 @@ loc_sound: PANIC("Unimplemented loc_sound handler") loc_video: PANIC("Unimplemented loc_video handler") loc_scsi: PANIC("Unimplemented loc_scsi handler") -/* - * Ethernet interrupt, remapped to level 15 - * NOTE: Due to a bug somewhere in the kernel I was not able - * to figure out, the PRINT() is necessary. Without this, - * I get a "gfp called nonatomically from interrupt 00000000". - * Only god knows why... Tell me if you find the reason! - * Andy, 6/16/95 - */ loc_ethernet: PANIC("Unimplemented loc_ethernet") /* @@ -148,19 +140,15 @@ loc_floppy: PANIC("Unimplemented loc_floppy handler") /* * Now call the real handler */ -loc_call: la t0,IRQ_vectors # delay slot - - /* +loc_call: /* * Temporarily disable interrupt source */ /* lhu t2,JAZZ_IO_IRQ_ENABLE */ - addu t0,t3 # make ptr to IRQ handler - lw t0,(t0) - and t2,s1 # delay slot + and t2,s1 /* sh t2,JAZZ_IO_IRQ_ENABLE */ - jalr t0 # call IRQ handler - nor s1,zero,s1 # delay slot + jal do_IRQ # call IRQ handler + nor s1,zero,s1 /* * Reenable interrupt @@ -169,7 +157,7 @@ loc_call: la t0,IRQ_vectors # delay slot or t2,s1 /* sh t2,JAZZ_IO_IRQ_ENABLE */ - jr v0 + j ret_from_irq nop # delay slot ll_tc3: PANIC("Unimplemented tc3 interrupt handler") @@ -195,19 +183,15 @@ ll_reset: li a0,0 /* * Now call the real handler */ -call_real: la t0,IRQ_vectors # delay slot - - /* +call_real: /* * temporarily disable interrupt */ mfc0 t2,CP0_STATUS and t2,s1 - addu t0,t3 - lw t0,(t0) - mtc0 t2,CP0_STATUS # delay slot - jalr t0 - nor s1,zero,s1 # delay slot + mtc0 t2,CP0_STATUS + jal do_IRQ + nor s1,zero,s1 /* * reenable interrupt @@ -216,7 +200,7 @@ call_real: la t0,IRQ_vectors # delay slot or t2,s1 mtc0 t2,CP0_STATUS - jr v0 + j ret_from_irq nop # delay slot /* |