summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-rpc/irq.c
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2012-02-08 18:24:23 -0600
committerRob Herring <rob.herring@calxeda.com>2012-02-21 17:04:33 -0600
commit78cbaaca6908c2ddf1bd26cf58c408938654e3d8 (patch)
tree7e52f81c470138284f40617ffb51126bc3a3c496 /arch/arm/mach-rpc/irq.c
parent13a5045d4ee5a244195062cbf2c651d1b4f22aa7 (diff)
downloadlinux-78cbaaca6908c2ddf1bd26cf58c408938654e3d8.tar.bz2
ARM: rpc: make default fiq handler run-time installed
Only rpc uses disable_fiq macro. Change it to a run-time installed default FIQ handler. The handler is installed before FIQ is enabled so the behavior should be unchanged. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Acked-by: Nicolas Pitre <nico@linaro.org>
Diffstat (limited to 'arch/arm/mach-rpc/irq.c')
-rw-r--r--arch/arm/mach-rpc/irq.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-rpc/irq.c b/arch/arm/mach-rpc/irq.c
index 2e1b5309fbab..cf0e669eaf1a 100644
--- a/arch/arm/mach-rpc/irq.c
+++ b/arch/arm/mach-rpc/irq.c
@@ -5,6 +5,7 @@
#include <asm/mach/irq.h>
#include <asm/hardware/iomd.h>
#include <asm/irq.h>
+#include <asm/fiq.h>
static void iomd_ack_irq_a(struct irq_data *d)
{
@@ -112,6 +113,8 @@ static struct irq_chip iomd_fiq_chip = {
.irq_unmask = iomd_unmask_irq_fiq,
};
+extern unsigned char rpc_default_fiq_start, rpc_default_fiq_end;
+
void __init rpc_init_irq(void)
{
unsigned int irq, flags;
@@ -121,6 +124,9 @@ void __init rpc_init_irq(void)
iomd_writeb(0, IOMD_FIQMASK);
iomd_writeb(0, IOMD_DMAMASK);
+ set_fiq_handler(&rpc_default_fiq_start,
+ &rpc_default_fiq_end - &rpc_default_fiq_start);
+
for (irq = 0; irq < NR_IRQS; irq++) {
flags = IRQF_VALID;