[MIPS] Rewrite all the assembler interrupt handlers to C.
Saves like 1,600 lines of code, is way easier to debug, compilers frequently do a better job than the cut and paste type of handlers many boards had. And finally having all the stuff done in a single place also means alot of bug potencial for the MT ASE is gone. The only surviving handler in assembler is the DECstation one; I hope Maciej will rewrite it. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
# Makefile for the Cobalt micro systems family specific parts of the kernel
|
||||
#
|
||||
|
||||
obj-y := irq.o int-handler.o reset.o setup.o
|
||||
obj-y := irq.o reset.o setup.o
|
||||
|
||||
obj-$(CONFIG_EARLY_PRINTK) += console.o
|
||||
|
||||
|
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Copyright (C) 1995, 1996, 1997, 2003 by Ralf Baechle
|
||||
* Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv)
|
||||
*/
|
||||
#include <asm/asm.h>
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/mach-cobalt/cobalt.h>
|
||||
#include <asm/regdef.h>
|
||||
#include <asm/stackframe.h>
|
||||
|
||||
.text
|
||||
.align 5
|
||||
NESTED(cobalt_handle_int, PT_SIZE, sp)
|
||||
SAVE_ALL
|
||||
CLI
|
||||
|
||||
PTR_LA ra, ret_from_irq
|
||||
move a0, sp
|
||||
j cobalt_irq
|
||||
|
||||
END(cobalt_handle_int)
|
@@ -20,8 +20,6 @@
|
||||
|
||||
#include <asm/mach-cobalt/cobalt.h>
|
||||
|
||||
extern void cobalt_handle_int(void);
|
||||
|
||||
/*
|
||||
* We have two types of interrupts that we handle, ones that come in through
|
||||
* the CPU interrupt lines, and ones that come in on the via chip. The CPU
|
||||
@@ -79,7 +77,7 @@ static inline void via_pic_irq(struct pt_regs *regs)
|
||||
do_IRQ(irq, regs);
|
||||
}
|
||||
|
||||
asmlinkage void cobalt_irq(struct pt_regs *regs)
|
||||
asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
|
||||
{
|
||||
unsigned pending;
|
||||
|
||||
@@ -122,8 +120,6 @@ void __init arch_init_irq(void)
|
||||
*/
|
||||
GALILEO_OUTL(0, GT_INTRMASK_OFS);
|
||||
|
||||
set_except_vector(0, cobalt_handle_int);
|
||||
|
||||
init_i8259_irqs(); /* 0 ... 15 */
|
||||
mips_cpu_irq_init(COBALT_CPU_IRQ); /* 16 ... 23 */
|
||||
|
||||
|
Reference in New Issue
Block a user