[PATCH 07/08] ARM: Add CONFIG_DEFAULT_IRQ_DEMUX
Magnus Damm
magnus.damm at gmail.com
Wed Oct 6 03:18:29 EDT 2010
From: Magnus Damm <damm at opensource.se>
Add a CONFIG_DEFAULT_IRQ_DEMUX to allow removing the
default IRQ demuxer from the ARM kernel. This will
reduce the memory footprint and also remove the need
for some of the macros in entry-macro.S.
In the case of CONFIG_DEFAULT_IRQ_DEMUX=n the default
IRQ demux code is omitted from the kernel and the per-
mach/plat demux code must then be registered using the
function setup_irq_stubs(). CONFIG_DEFAULT_IRQ_DEMUX=y
keeps the default IRQ demuxer code as-is in the kernel.
Signed-off-by: Magnus Damm <damm at opensource.se>
---
arch/arm/Kconfig | 3 +++
arch/arm/kernel/entry-armv.S | 13 +++++++++++--
2 files changed, 14 insertions(+), 2 deletions(-)
--- 0001/arch/arm/Kconfig
+++ work/arch/arm/Kconfig 2010-10-05 20:36:45.000000000 +0900
@@ -1337,6 +1337,9 @@ config SPARSE_IRQ
number of off-chip IRQs will want to treat this as
experimental until they have been independently verified.
+config DEFAULT_IRQ_DEMUX
+ def_bool y
+
source "mm/Kconfig"
config FORCE_MAX_ZONEORDER
--- 0009/arch/arm/kernel/entry-armv.S
+++ work/arch/arm/kernel/entry-armv.S 2010-10-05 20:34:16.000000000 +0900
@@ -128,8 +128,9 @@ __dabt_svc:
UNWIND(.fnend )
ENDPROC(__dabt_svc)
+#ifdef CONFIG_DEFAULT_IRQ_DEMUX
__irq_svc default
-
+#endif
.align 5
__und_svc:
#ifdef CONFIG_KPROBES
@@ -258,8 +259,9 @@ __dabt_usr:
UNWIND(.fnend )
ENDPROC(__dabt_usr)
+#ifdef CONFIG_DEFAULT_IRQ_DEMUX
__irq_usr default
-
+#endif
.align 5
__und_usr:
usr_entry
@@ -885,10 +887,17 @@ __stubs_start:
.globl __stubs_irq
__stubs_irq:
+#ifdef CONFIG_DEFAULT_IRQ_DEMUX
.long __irq_usr_default @ 0 (USR_26 / USR_32)
.long __irq_invalid @ 1 (FIQ_26 / FIQ_32)
.long __irq_invalid @ 2 (IRQ_26 / IRQ_32)
.long __irq_svc_default @ 3 (SVC_26 / SVC_32)
+#else
+ .long __irq_invalid @ 0 (USR_26 / USR_32)
+ .long __irq_invalid @ 1 (FIQ_26 / FIQ_32)
+ .long __irq_invalid @ 2 (IRQ_26 / IRQ_32)
+ .long __irq_invalid @ 3 (SVC_26 / SVC_32)
+#endif
.long __irq_invalid @ 4
.long __irq_invalid @ 5
.long __irq_invalid @ 6
More information about the linux-arm-kernel
mailing list