diff options
author | Olof Johansson <olof@lixom.net> | 2014-03-09 03:32:26 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2014-03-09 03:32:26 -0400 |
commit | 63261d76c81ff89638d15a181d5ef5adb03c0e30 (patch) | |
tree | 07461c0864dcf3f2e1b8f5a376af6bd23a42a647 /arch/arm | |
parent | c37abe5ad2607b163244ac4686debd6687d5b5aa (diff) | |
parent | 9594274201ac3c67d5c569aae63792e58bcd33e6 (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/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap-wakeupgen.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap4-common.c | 4 |
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 | ||
89 | config ARCH_OMAP2PLUS | 90 | config 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 | ||
289 | skip_errata_init: | 290 | skip_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 | } |