linux/arch
Paul Mundt baf4326e49 sh: interrupt exception handling rework
Kill off interrupt_table for all of the CPU subtypes, we now
default in to stepping in to do_IRQ() for _all_ IRQ exceptions
and counting the spurious ones, rather than simply flipping on
the ones we cared about. This and enabling the IRQ by default
automatically has already uncovered a couple of bugs and IRQs
that weren't being caught, as well as some that are being
generated far too often (SCI Tx Data Empty, for example).

The general rationale is to use a marker for interrupt exceptions,
test for it in the handle_exception() path, and skip out to
do_IRQ() if it's found. Everything else follows the same behaviour
of finding the cached EXPEVT value in r2/r2_bank, we just rip out
the INTEVT read from entry.S entirely (except for in the kGDB NMI
case, which is another matter).

Note that while this changes the do_IRQ() semantics regarding r4
handling, they were fundamentally broken anyways (relying entirely
on r2_bank for the cached code). With this, we do the INTEVT read
from do_IRQ() itself (in the CONFIG_CPU_HAS_INTEVT case), or fall
back on r4 for the muxed IRQ number, which should also be closer
to what SH-2 and SH-2A want anyways.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-10-12 12:03:04 +09:00
..
alpha Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
arm [PATCH] atmel_serial: Pass fixed register mappings through platform_data 2006-10-04 10:25:05 -07:00
arm26 Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
avr32 [PATCH] AVR32: Allow renumbering of serial devices 2006-10-04 10:25:06 -07:00
cris more misc typo fixes 2006-10-03 22:34:14 +02:00
frv IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
h8300 Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
i386 Merge git://git.infradead.org/~dhowells/irq-2.6 2006-10-05 16:32:01 -07:00
ia64 IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
m32r Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
m68k Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
m68knommu Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
mips IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
parisc [PA-RISC] Fix time.c for new do_timer() calling convention 2006-10-05 01:48:18 +00:00
powerpc [PATCH] powerpc: irq change build breaks 2006-10-05 18:39:04 -07:00
ppc Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
s390 [S390] Remove open-coded mem_map usage. 2006-10-04 20:02:23 +02:00
sh sh: interrupt exception handling rework 2006-10-12 12:03:04 +09:00
sh64 fix file specification in comments 2006-10-03 23:01:26 +02:00
sparc Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
sparc64 Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
um Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
v850 Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
x86_64 Merge git://git.infradead.org/~dhowells/irq-2.6 2006-10-05 16:32:01 -07:00
xtensa fix file specification in comments 2006-10-03 23:01:26 +02:00