Rationalise interrupt handling on ARM. With the old code, we had
authorRussell King <rmk@flint.arm.linux.org.uk>
Mon, 25 Feb 2002 19:43:27 +0000 (19:43 +0000)
committerRussell King <rmk@flint.arm.linux.org.uk>
Mon, 25 Feb 2002 19:43:27 +0000 (19:43 +0000)
commit3991853c68cc42b2b590b0e3a92190b283d10e7a
tree6e5720e0bd32a8bed2251ec22250415d48ca6d68
parent1ea95bdc4aadc0d7b5f540bc83e2d6208eae6be5
Rationalise interrupt handling on ARM.  With the old code, we had
loops within loops within loops checking until each IRQ level didn't
have any more interrupts for us.  This caused both latency problems,
and locked out any chance of handling a second interrupt from down
the chain while one on that chain was already in progress.

The new structure splits out the machine specific IRQ handlers from
the Linux driver specific IRQ handlers, giving the machine specific
handlers much greater flexibility in handling the interrupt.  We
also suck the SA1100 IRQ edge selection function into the IRQ core.
61 files changed:
Documentation/arm/Interrupts [new file with mode: 0644]
arch/arm/kernel/armksyms.c
arch/arm/kernel/ecard.c
arch/arm/kernel/entry-armo.S
arch/arm/kernel/irq.c
arch/arm/kernel/time.c
arch/arm/mach-clps711x/irq.c
arch/arm/mach-ebsa110/core.c
arch/arm/mach-epxa10db/irq.c
arch/arm/mach-footbridge/Makefile
arch/arm/mach-footbridge/irq.c
arch/arm/mach-footbridge/isa-irq.c [new file with mode: 0644]
arch/arm/mach-integrator/irq.c
arch/arm/mach-iop310/iop310-irq.c
arch/arm/mach-iop310/iq80310-irq.c
arch/arm/mach-iop310/iq80310-time.c
arch/arm/mach-iop310/xs80200-irq.c
arch/arm/mach-rpc/irq.c
arch/arm/mach-sa1100/assabet.c
arch/arm/mach-sa1100/cerf.c
arch/arm/mach-sa1100/graphicsclient.c
arch/arm/mach-sa1100/graphicsmaster.c
arch/arm/mach-sa1100/irq.c
arch/arm/mach-sa1100/neponset.c
arch/arm/mach-sa1100/sa1111.c
arch/arm/mach-sa1100/simpad.c
arch/arm/mach-shark/irq.c
include/asm-arm/arch-adifcc/irq.h [deleted file]
include/asm-arm/arch-adifcc/irqs.h
include/asm-arm/arch-anakin/irq.h [deleted file]
include/asm-arm/arch-anakin/time.h
include/asm-arm/arch-arc/irq.h [deleted file]
include/asm-arm/arch-arc/time.h
include/asm-arm/arch-cl7500/time.h
include/asm-arm/arch-clps711x/irq.h [deleted file]
include/asm-arm/arch-clps711x/time.h
include/asm-arm/arch-ebsa110/irq.h [deleted file]
include/asm-arm/arch-ebsa110/time.h
include/asm-arm/arch-ebsa285/irq.h [deleted file]
include/asm-arm/arch-ebsa285/time.h
include/asm-arm/arch-epxa10db/irq.h [deleted file]
include/asm-arm/arch-epxa10db/time.h
include/asm-arm/arch-integrator/irq.h [deleted file]
include/asm-arm/arch-integrator/time.h
include/asm-arm/arch-iop310/irq.h [deleted file]
include/asm-arm/arch-l7200/irq.h [deleted file]
include/asm-arm/arch-l7200/time.h
include/asm-arm/arch-nexuspci/irq.h [deleted file]
include/asm-arm/arch-nexuspci/time.h
include/asm-arm/arch-rpc/irq.h [deleted file]
include/asm-arm/arch-rpc/time.h
include/asm-arm/arch-sa1100/hardware.h
include/asm-arm/arch-sa1100/ide.h
include/asm-arm/arch-sa1100/irq.h [deleted file]
include/asm-arm/arch-sa1100/irqs.h
include/asm-arm/arch-sa1100/time.h
include/asm-arm/arch-shark/irq.h [deleted file]
include/asm-arm/arch-tbox/irq.h [deleted file]
include/asm-arm/arch-tbox/time.h
include/asm-arm/irq.h
include/asm-arm/mach/irq.h