diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2006-04-03 12:56:36 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-04-18 22:14:21 -0400 |
commit | e4ac58afdfac792c0583af30dbd9eae53e24c78b (patch) | |
tree | 7517bef2c515fc630e4d3d238867b91cde96f558 /arch/mips/cobalt | |
parent | d35d473c25d43d7db3e5e18b66d558d2a631cca8 (diff) |
[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>
Diffstat (limited to 'arch/mips/cobalt')
-rw-r--r-- | arch/mips/cobalt/Makefile | 2 | ||||
-rw-r--r-- | arch/mips/cobalt/int-handler.S | 25 | ||||
-rw-r--r-- | arch/mips/cobalt/irq.c | 6 |
3 files changed, 2 insertions, 31 deletions
diff --git a/arch/mips/cobalt/Makefile b/arch/mips/cobalt/Makefile index 720e757b2b64..225ac8f34ccd 100644 --- a/arch/mips/cobalt/Makefile +++ b/arch/mips/cobalt/Makefile | |||
@@ -2,7 +2,7 @@ | |||
2 | # Makefile for the Cobalt micro systems family specific parts of the kernel | 2 | # Makefile for the Cobalt micro systems family specific parts of the kernel |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := irq.o int-handler.o reset.o setup.o | 5 | obj-y := irq.o reset.o setup.o |
6 | 6 | ||
7 | obj-$(CONFIG_EARLY_PRINTK) += console.o | 7 | obj-$(CONFIG_EARLY_PRINTK) += console.o |
8 | 8 | ||
diff --git a/arch/mips/cobalt/int-handler.S b/arch/mips/cobalt/int-handler.S deleted file mode 100644 index e75d5e3ca868..000000000000 --- a/arch/mips/cobalt/int-handler.S +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1995, 1996, 1997, 2003 by Ralf Baechle | ||
7 | * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv) | ||
8 | */ | ||
9 | #include <asm/asm.h> | ||
10 | #include <asm/mipsregs.h> | ||
11 | #include <asm/mach-cobalt/cobalt.h> | ||
12 | #include <asm/regdef.h> | ||
13 | #include <asm/stackframe.h> | ||
14 | |||
15 | .text | ||
16 | .align 5 | ||
17 | NESTED(cobalt_handle_int, PT_SIZE, sp) | ||
18 | SAVE_ALL | ||
19 | CLI | ||
20 | |||
21 | PTR_LA ra, ret_from_irq | ||
22 | move a0, sp | ||
23 | j cobalt_irq | ||
24 | |||
25 | END(cobalt_handle_int) | ||
diff --git a/arch/mips/cobalt/irq.c b/arch/mips/cobalt/irq.c index f9a108820d6e..0b75f4fb7195 100644 --- a/arch/mips/cobalt/irq.c +++ b/arch/mips/cobalt/irq.c | |||
@@ -20,8 +20,6 @@ | |||
20 | 20 | ||
21 | #include <asm/mach-cobalt/cobalt.h> | 21 | #include <asm/mach-cobalt/cobalt.h> |
22 | 22 | ||
23 | extern void cobalt_handle_int(void); | ||
24 | |||
25 | /* | 23 | /* |
26 | * We have two types of interrupts that we handle, ones that come in through | 24 | * We have two types of interrupts that we handle, ones that come in through |
27 | * the CPU interrupt lines, and ones that come in on the via chip. The CPU | 25 | * 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) | |||
79 | do_IRQ(irq, regs); | 77 | do_IRQ(irq, regs); |
80 | } | 78 | } |
81 | 79 | ||
82 | asmlinkage void cobalt_irq(struct pt_regs *regs) | 80 | asmlinkage void plat_irq_dispatch(struct pt_regs *regs) |
83 | { | 81 | { |
84 | unsigned pending; | 82 | unsigned pending; |
85 | 83 | ||
@@ -122,8 +120,6 @@ void __init arch_init_irq(void) | |||
122 | */ | 120 | */ |
123 | GALILEO_OUTL(0, GT_INTRMASK_OFS); | 121 | GALILEO_OUTL(0, GT_INTRMASK_OFS); |
124 | 122 | ||
125 | set_except_vector(0, cobalt_handle_int); | ||
126 | |||
127 | init_i8259_irqs(); /* 0 ... 15 */ | 123 | init_i8259_irqs(); /* 0 ... 15 */ |
128 | mips_cpu_irq_init(COBALT_CPU_IRQ); /* 16 ... 23 */ | 124 | mips_cpu_irq_init(COBALT_CPU_IRQ); /* 16 ... 23 */ |
129 | 125 | ||