summaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel/irq.c
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2013-01-14 13:39:31 +0100
committerCatalin Marinas <catalin.marinas@arm.com>2013-03-26 17:02:23 +0100
commite851b58cb77b47a5c14267723bd6b76655d21840 (patch)
tree19fbccd2ee863b6739947fa748e623afebf386c1 /arch/arm64/kernel/irq.c
parentarm64: psci: Use the MPIDR values from cpu_logical_map for cpu ids. (diff)
downloadlinux-e851b58cb77b47a5c14267723bd6b76655d21840.tar.xz
linux-e851b58cb77b47a5c14267723bd6b76655d21840.zip
arm64: Use irqchip_init() for interrupt controller initialisation
This patch uses the generic irqchip_init() function for initialising the interrupt controller on arm64. It also adds several definitions required by the ARM GIC irqchip driver but does not enable ARM_GIC yet. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/kernel/irq.c')
-rw-r--r--arch/arm64/kernel/irq.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/arch/arm64/kernel/irq.c b/arch/arm64/kernel/irq.c
index 0373c6609eaf..ecb3354292ed 100644
--- a/arch/arm64/kernel/irq.c
+++ b/arch/arm64/kernel/irq.c
@@ -25,7 +25,7 @@
#include <linux/irq.h>
#include <linux/smp.h>
#include <linux/init.h>
-#include <linux/of_irq.h>
+#include <linux/irqchip.h>
#include <linux/seq_file.h>
#include <linux/ratelimit.h>
@@ -67,18 +67,17 @@ void handle_IRQ(unsigned int irq, struct pt_regs *regs)
set_irq_regs(old_regs);
}
-/*
- * Interrupt controllers supported by the kernel.
- */
-static const struct of_device_id intctrl_of_match[] __initconst = {
- /* IRQ controllers { .compatible, .data } info to go here */
- {}
-};
+void __init set_handle_irq(void (*handle_irq)(struct pt_regs *))
+{
+ if (handle_arch_irq)
+ return;
+
+ handle_arch_irq = handle_irq;
+}
void __init init_IRQ(void)
{
- of_irq_init(intctrl_of_match);
-
+ irqchip_init();
if (!handle_arch_irq)
panic("No interrupt controller found.");
}