diff options
author | James Hogan <james.hogan@imgtec.com> | 2012-10-09 13:54:47 +0400 |
---|---|---|
committer | James Hogan <james.hogan@imgtec.com> | 2013-03-03 00:09:48 +0400 |
commit | 5698c50d9da4ab2f57d98c64ea97675dcaf2a608 (patch) | |
tree | 5b82a24daa8bbb85703489340cbfdcb00a2f20a4 /arch | |
parent | 63047ea36070d11f902ab7d09a5a18aea037c0f7 (diff) | |
download | linux-5698c50d9da4ab2f57d98c64ea97675dcaf2a608.tar.xz |
metag: Internal and external irqchips
Meta core internal interrupts (from HWSTATMETA and friends) are vectored
onto the TR1 core trigger for the current thread. This is demultiplexed
in irq-metag.c to individual Linux IRQs for each internal interrupt.
External SoC interrupts (from HWSTATEXT and friends) are vectored onto
the TR2 core trigger for the current thread. This is demultiplexed in
irq-metag-ext.c to individual Linux IRQs for each external SoC interrupt.
The external irqchip has devicetree bindings for configuring the number
of irq banks and the type of masking available.
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Rob Landley <rob@landley.net>
Cc: Dom Cobley <popcornmix@gmail.com>
Cc: Simon Arlott <simon@fire.lp0.eu>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: devicetree-discuss@lists.ozlabs.org
Cc: linux-doc@vger.kernel.org
Diffstat (limited to 'arch')
-rw-r--r-- | arch/metag/kernel/irq.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/metag/kernel/irq.c b/arch/metag/kernel/irq.c index 7c043491e1e3..87707efeb0a3 100644 --- a/arch/metag/kernel/irq.c +++ b/arch/metag/kernel/irq.c @@ -6,6 +6,8 @@ #include <linux/kernel.h> #include <linux/interrupt.h> #include <linux/init.h> +#include <linux/irqchip/metag-ext.h> +#include <linux/irqchip/metag.h> #include <linux/irqdomain.h> #include <linux/ratelimit.h> @@ -258,6 +260,9 @@ void __init init_IRQ(void) irq_ctx_init(smp_processor_id()); + init_internal_IRQ(); + init_external_IRQ(); + if (machine_desc->init_irq) machine_desc->init_irq(); } |