diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2012-06-28 02:42:08 -0400 |
---|---|---|
committer | Shawn Guo <shawn.guo@linaro.org> | 2012-07-01 09:59:19 -0400 |
commit | bc89663aa5c7ca620f58c34ab531ca409119becc (patch) | |
tree | af249454a1660849004f1beb26eeccddba61ba2f /arch/arm/kernel | |
parent | 1ee8f65b5689504b98dacb6641fc8b2cc5618ad4 (diff) |
ARM: fiq: change FIQ_START to a variable
The commit a2be01b (ARM: only include mach/irqs.h for !SPARSE_IRQ)
makes mach/irqs.h only be included for !SPARSE_IRQ build. There are
a nubmer of platforms have FIQ_START defined in mach/irqs.h for FIQ
support.
arch/arm/mach-rpc/include/mach/irqs.h:#define FIQ_START 64
arch/arm/mach-s3c24xx/include/mach/irqs.h:#define FIQ_START IRQ_EINT0
arch/arm/plat-mxc/include/mach/irqs.h:#define FIQ_START 0
If SPARSE_IRQ is enabled for any of these platforms, the following
compile error will be seen.
arch/arm/kernel/fiq.c: In function ‘enable_fiq’:
arch/arm/kernel/fiq.c:127:19: error: ‘FIQ_START’ undeclared (first use in this function)
arch/arm/kernel/fiq.c:127:19: note: each undeclared identifier is reported only once for each function it appears in
arch/arm/kernel/fiq.c: In function ‘disable_fiq’:
arch/arm/kernel/fiq.c:132:20: error: ‘FIQ_START’ undeclared (first use in this function)
The patch changes fiq code to have init_FIQ take FIQ_START from
platforms as a parameter and assign it to variable fiq_start which
is to replace FIQ_START uses in enable_fiq/disable_fiq.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Rob Herring <rob.herring@calxeda.com>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/fiq.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c index c32f8456aa09..2adda11f712f 100644 --- a/arch/arm/kernel/fiq.c +++ b/arch/arm/kernel/fiq.c | |||
@@ -122,14 +122,16 @@ void release_fiq(struct fiq_handler *f) | |||
122 | while (current_fiq->fiq_op(current_fiq->dev_id, 0)); | 122 | while (current_fiq->fiq_op(current_fiq->dev_id, 0)); |
123 | } | 123 | } |
124 | 124 | ||
125 | static int fiq_start; | ||
126 | |||
125 | void enable_fiq(int fiq) | 127 | void enable_fiq(int fiq) |
126 | { | 128 | { |
127 | enable_irq(fiq + FIQ_START); | 129 | enable_irq(fiq + fiq_start); |
128 | } | 130 | } |
129 | 131 | ||
130 | void disable_fiq(int fiq) | 132 | void disable_fiq(int fiq) |
131 | { | 133 | { |
132 | disable_irq(fiq + FIQ_START); | 134 | disable_irq(fiq + fiq_start); |
133 | } | 135 | } |
134 | 136 | ||
135 | EXPORT_SYMBOL(set_fiq_handler); | 137 | EXPORT_SYMBOL(set_fiq_handler); |
@@ -140,7 +142,8 @@ EXPORT_SYMBOL(release_fiq); | |||
140 | EXPORT_SYMBOL(enable_fiq); | 142 | EXPORT_SYMBOL(enable_fiq); |
141 | EXPORT_SYMBOL(disable_fiq); | 143 | EXPORT_SYMBOL(disable_fiq); |
142 | 144 | ||
143 | void __init init_FIQ(void) | 145 | void __init init_FIQ(int start) |
144 | { | 146 | { |
145 | no_fiq_insn = *(unsigned long *)0xffff001c; | 147 | no_fiq_insn = *(unsigned long *)0xffff001c; |
148 | fiq_start = start; | ||
146 | } | 149 | } |