| From 10188333a01d34499c18ef18f31d7d44fcd1cd83 Mon Sep 17 00:00:00 2001 |
| From: Magnus Damm <damm@opensource.se> |
| Date: Tue, 17 Jan 2012 20:10:49 +0900 |
| Subject: ARM: mach-shmobile: sh73a0 IRQ sparse alloc fix |
| |
| Fix the sh73a0 external IRQ pin code to properly support |
| CONFIG_SPARSE_IRQ=y by allocating IRQ descriptors for the |
| cascaded IRQs associated with external IRQ pins. |
| |
| Without this fix it is impossible to request IRQ0->IRQ31 |
| on the Kota2 board when sparse IRQs are enabled. |
| |
| Signed-off-by: Magnus Damm <damm@opensource.se> |
| Signed-off-by: Paul Mundt <lethal@linux-sh.org> |
| (cherry picked from commit e2c31b3fdd48274e9deb450e21279e54dfa02ccd) |
| |
| Signed-off-by: Simon Horman <horms@verge.net.au> |
| --- |
| arch/arm/mach-shmobile/intc-sh73a0.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/arch/arm/mach-shmobile/intc-sh73a0.c b/arch/arm/mach-shmobile/intc-sh73a0.c |
| index 1eda6b0..9857595 100644 |
| --- a/arch/arm/mach-shmobile/intc-sh73a0.c |
| +++ b/arch/arm/mach-shmobile/intc-sh73a0.c |
| @@ -19,6 +19,7 @@ |
| #include <linux/kernel.h> |
| #include <linux/init.h> |
| #include <linux/interrupt.h> |
| +#include <linux/module.h> |
| #include <linux/irq.h> |
| #include <linux/io.h> |
| #include <linux/sh_intc.h> |
| @@ -445,6 +446,7 @@ void __init sh73a0_init_irq(void) |
| setup_irq(gic_spi(1 + k), &sh73a0_irq_pin_cascade[k]); |
| |
| n = intcs_evt2irq(to_intc_vect(gic_spi(1 + k))); |
| + WARN_ON(irq_alloc_desc_at(n, numa_node_id()) != n); |
| irq_set_chip_and_handler_name(n, &intca_gic_irq_chip, |
| handle_level_irq, "level"); |
| set_irq_flags(n, IRQF_VALID); /* yuck */ |
| -- |
| 1.7.10.2.565.gbd578b5 |
| |