patch-2.4.2 linux/arch/mips/cobalt/int-handler.S

Next file: linux/arch/mips/cobalt/pci.c
Previous file: linux/arch/mips/cobalt/hw-access.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.1/linux/arch/mips/cobalt/int-handler.S linux/arch/mips/cobalt/int-handler.S
@@ -1,140 +0,0 @@
-/*
- * arch/mips/cobalt/int-handler.S
- */
-#include <asm/asm.h>
-#include <asm/mipsconfig.h>
-#include <asm/mipsregs.h>
-#include <asm/cobalt.h>
-#include <asm/irq.h>
-#include <asm/regdef.h>
-#include <asm/stackframe.h>
-
-/*
- * cobalt_handle_int: Interrupt handler for the twenty-seven board.
- */
-		.align	5
-		.set	noreorder
-		NESTED(cobalt_handle_int, PT_SIZE, ra)
-		.set	noat
-		SAVE_ALL
-		REG_S	sp,PT_OR2(sp)
-		CLI
-		.set	at
-		mfc0	t0,CP0_CAUSE
-		mfc0	t1,CP0_STATUS
-		and	t0,t1
-		xor	t1,t0
-		mtc0	t1,CP0_STATUS	# mask all active ints
-		/* Such a kind of cascade is optimal for R5000 */
-
-		andi	t1,t0,STATUSF_IP2
-		bnez	t1,ll_galileo_irq
-		 andi	t1,t0,STATUSF_IP3
-		bnez	t1,ll_ethernet0_irq
-/*
- * This should be conditional, and not used for the cube-1, but
- * there is not a config flag that is useful.
- */
-	
-		 andi	t1,t0,STATUSF_IP4
-		bnez	t1,ll_ethernet1_irq
-/* #endif  */
-		 andi	t1,t0,STATUSF_IP6
-		bnez	t1,ll_via_irq
-		 andi	t1,t0,STATUSF_IP5
-		bnez	t1,ll_serial_irq
-		 andi	t1,t0,STATUSF_IP7
-		bnez	t1,ll_pci_irq
-		  nop
-		/* wrong alarm ... */
-		j	spurious_interrupt
-		 nop
-		END(cobalt_handle_int)
-	
-
-		.align	5
-		.set	reorder
-ll_galileo_irq:	move	a0,sp
-		INC_INTR_COUNT(s1,s2)
-		jal	galileo_irq
-		  nop
-		DEC_INTR_COUNT(s1,s2)
-		j	ret_from_irq
-		  nop
-
-		.align	5
-		.set	reorder
-ll_via_irq:	move	a0,sp
-		INC_INTR_COUNT(s1,s2)
-		jal	via_irq
-		  nop
-		DEC_INTR_COUNT(s1,s2)
-		j	ret_from_irq
-		  nop
-
-		.align	5
-		.set	reorder
-ll_ethernet0_irq:
-		INC_INTR_COUNT(s1,s2)
-		mfc0	s0,CP0_STATUS		# mask interrupt
-		ori	t0,s0,(STATUSF_IP3 | STATUSF_IP4)
-		xori	t0,(STATUSF_IP3 | STATUSF_IP4)
-		mtc0	t0,CP0_STATUS
-		li	a0,4
-		move	a1,sp
-		jal     do_IRQ
-		  nop
-		mtc0	s0,CP0_STATUS
-		DEC_INTR_COUNT(s1,s2)
-		j	ret_from_irq
-		  nop
-
-		.align	5
-		.set	reorder
-ll_serial_irq:	li	a0,7
-		INC_INTR_COUNT(s1,s2)
-		move	a1,sp
-		jal     do_IRQ
-		  nop
-		DEC_INTR_COUNT(s1,s2)
-		j	ret_from_irq
-		  nop
-
-
-		.align	5
-		.set	reorder
-ll_ethernet1_irq:
-		INC_INTR_COUNT(s1,s2)
-		mfc0	s0,CP0_STATUS		# mask interrupt
-
-		ori	t0,s0, (STATUSF_IP3 | STATUSF_IP4)
-		xori	t0,(STATUSF_IP3 | STATUSF_IP4)
-
-		mtc0	t0,CP0_STATUS
-		li	a0,13
-		move	a1,sp
-		jal     do_IRQ
-		  nop
-		mtc0	s0,CP0_STATUS
-		DEC_INTR_COUNT(s1,s2)
-		j	ret_from_irq
-		  nop
-
-	#
-	# This is pretty weird.  The "pci" interrupt on the hardware
-	# skematic is from the PCI side of the galileo, so we would
-	# only get interrupts here if WE write the control register
-	# that normally enables the cpu to send interrupts to the PCI.
-	#
-	# If you want to interrupt a PCI card, look elsewhere.
-	#
-		.align	5
-		.set	reorder
-ll_pci_irq:	li	a0,7
-		INC_INTR_COUNT(s1,s2)
-		move	a1,sp
-		jal     do_IRQ
-		  nop
-		DEC_INTR_COUNT(s1,s2)
-		j	ret_from_irq
-		  nop

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)