Commit e851b58c authored by Catalin Marinas's avatar Catalin Marinas

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: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent a9a193ff
...@@ -19,5 +19,6 @@ ...@@ -19,5 +19,6 @@
#define __ASM_EXCEPTION_H #define __ASM_EXCEPTION_H
#define __exception __attribute__((section(".exception.text"))) #define __exception __attribute__((section(".exception.text")))
#define __exception_irq_entry __exception
#endif /* __ASM_EXCEPTION_H */ #endif /* __ASM_EXCEPTION_H */
...@@ -49,4 +49,9 @@ static inline void ack_bad_irq(unsigned int irq) ...@@ -49,4 +49,9 @@ static inline void ack_bad_irq(unsigned int irq)
extern void handle_IRQ(unsigned int, struct pt_regs *); extern void handle_IRQ(unsigned int, struct pt_regs *);
/*
* No arch-specific IRQ flags.
*/
#define set_irq_flags(irq, flags)
#endif /* __ASM_HARDIRQ_H */ #endif /* __ASM_HARDIRQ_H */
...@@ -4,5 +4,6 @@ ...@@ -4,5 +4,6 @@
#include <asm-generic/irq.h> #include <asm-generic/irq.h>
extern void (*handle_arch_irq)(struct pt_regs *); extern void (*handle_arch_irq)(struct pt_regs *);
extern void set_handle_irq(void (*handle_irq)(struct pt_regs *));
#endif #endif
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/of_irq.h> #include <linux/irqchip.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/ratelimit.h> #include <linux/ratelimit.h>
...@@ -67,18 +67,17 @@ void handle_IRQ(unsigned int irq, struct pt_regs *regs) ...@@ -67,18 +67,17 @@ void handle_IRQ(unsigned int irq, struct pt_regs *regs)
set_irq_regs(old_regs); set_irq_regs(old_regs);
} }
/* void __init set_handle_irq(void (*handle_irq)(struct pt_regs *))
* Interrupt controllers supported by the kernel. {
*/ if (handle_arch_irq)
static const struct of_device_id intctrl_of_match[] __initconst = { return;
/* IRQ controllers { .compatible, .data } info to go here */
{} handle_arch_irq = handle_irq;
}; }
void __init init_IRQ(void) void __init init_IRQ(void)
{ {
of_irq_init(intctrl_of_match); irqchip_init();
if (!handle_arch_irq) if (!handle_arch_irq)
panic("No interrupt controller found."); panic("No interrupt controller found.");
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment