aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2014-03-09 03:32:26 -0400
committerOlof Johansson <olof@lixom.net>2014-03-09 03:32:26 -0400
commit63261d76c81ff89638d15a181d5ef5adb03c0e30 (patch)
tree07461c0864dcf3f2e1b8f5a376af6bd23a42a647 /arch/arm
parentc37abe5ad2607b163244ac4686debd6687d5b5aa (diff)
parent9594274201ac3c67d5c569aae63792e58bcd33e6 (diff)
Merge tag 'omap-for-v3.15/crossbar-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/drivers
Merge OMAP crossbar support from Tony Lindgren: Add support for GIC crossbar that routes interrupts on newer omaps. Looks like people wanted these merged via the omap tree as it's the only user for the GIC crossbar. * tag 'omap-for-v3.15/crossbar-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: DRA: Enable Crossbar IP support for DRA7XX ARM: OMAP4+: Correct Wakeup-gen code to use physical irq number DRIVERS: IRQCHIP: CROSSBAR: Add support for Crossbar IP DRIVERS: IRQCHIP: IRQ-GIC: Add support for routable irqs Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/Kconfig1
-rw-r--r--arch/arm/mach-omap2/omap-wakeupgen.c4
-rw-r--r--arch/arm/mach-omap2/omap4-common.c4
3 files changed, 7 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index e2ce4f8366a7..46f8c538d2bc 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -85,6 +85,7 @@ config SOC_DRA7XX
85 select CPU_V7 85 select CPU_V7
86 select HAVE_SMP 86 select HAVE_SMP
87 select HAVE_ARM_ARCH_TIMER 87 select HAVE_ARM_ARCH_TIMER
88 select IRQ_CROSSBAR
88 89
89config ARCH_OMAP2PLUS 90config ARCH_OMAP2PLUS
90 bool 91 bool
diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
index 3664562f9148..693fe486e917 100644
--- a/arch/arm/mach-omap2/omap-wakeupgen.c
+++ b/arch/arm/mach-omap2/omap-wakeupgen.c
@@ -138,7 +138,7 @@ static void wakeupgen_mask(struct irq_data *d)
138 unsigned long flags; 138 unsigned long flags;
139 139
140 raw_spin_lock_irqsave(&wakeupgen_lock, flags); 140 raw_spin_lock_irqsave(&wakeupgen_lock, flags);
141 _wakeupgen_clear(d->irq, irq_target_cpu[d->irq]); 141 _wakeupgen_clear(d->hwirq, irq_target_cpu[d->hwirq]);
142 raw_spin_unlock_irqrestore(&wakeupgen_lock, flags); 142 raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);
143} 143}
144 144
@@ -150,7 +150,7 @@ static void wakeupgen_unmask(struct irq_data *d)
150 unsigned long flags; 150 unsigned long flags;
151 151
152 raw_spin_lock_irqsave(&wakeupgen_lock, flags); 152 raw_spin_lock_irqsave(&wakeupgen_lock, flags);
153 _wakeupgen_set(d->irq, irq_target_cpu[d->irq]); 153 _wakeupgen_set(d->hwirq, irq_target_cpu[d->hwirq]);
154 raw_spin_unlock_irqrestore(&wakeupgen_lock, flags); 154 raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);
155} 155}
156 156
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index 6cd3f3772ecf..95e171a055f3 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -22,6 +22,7 @@
22#include <linux/of_platform.h> 22#include <linux/of_platform.h>
23#include <linux/export.h> 23#include <linux/export.h>
24#include <linux/irqchip/arm-gic.h> 24#include <linux/irqchip/arm-gic.h>
25#include <linux/irqchip/irq-crossbar.h>
25#include <linux/of_address.h> 26#include <linux/of_address.h>
26#include <linux/reboot.h> 27#include <linux/reboot.h>
27 28
@@ -288,5 +289,8 @@ void __init omap_gic_of_init(void)
288 289
289skip_errata_init: 290skip_errata_init:
290 omap_wakeupgen_init(); 291 omap_wakeupgen_init();
292#ifdef CONFIG_IRQ_CROSSBAR
293 irqcrossbar_init();
294#endif
291 irqchip_init(); 295 irqchip_init();
292} 296}