diff options
author | Magnus Damm <damm@opensource.se> | 2011-11-22 01:29:54 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-11-24 03:24:04 -0500 |
commit | dcb4ea869877b00fd1c761662bfd9359d15a8c2a (patch) | |
tree | 2a822138c9b005211d2c149cd117bf4e3fd536b6 | |
parent | 1b6cec8a6910ca08d727898453baad22b0122920 (diff) |
ARM: mach-shmobile: Kota2 GIC Sparse IRQ fix
Fix IRQ support on the Kota2 board. The sh73a0 and the Kota2
board make use of the ARM GIC hardware block as main interrupt
controller. The following commit changed the default behaviour
for non-device tree platforms and broke Kota2 irq support:
f37a53c ARM: gic: fix irq_alloc_descs handling for sparse irq
Without this fix the following warning triggers at boot:
NR_IRQS:1024 nr_irqs:1024 1024
------------[ cut here ]------------
WARNING: at arch/arm/common/gic.c:607 gic_init+0x90/0x2e4()
Cannot allocate irq_descs @ IRQ16, assuming pre-allocated
[<c000c868>] (unwind_backtrace+0x0/0xe0) from [<c001857c>] (warn_slowpath_commo)
[<c001857c>] (warn_slowpath_common+0x48/0x60) from [<c00185d8>] (warn_slowpath_)
[<c00185d8>] (warn_slowpath_fmt+0x2c/0x3c) from [<c029ee08>] (gic_init+0x90/0x2)
[<c029ee08>] (gic_init+0x90/0x2e4) from [<c029f278>] (sh73a0_init_irq+0x30/0x18)
[<c029f278>] (sh73a0_init_irq+0x30/0x184) from [<c029c0b4>] (init_IRQ+0x14/0x1c)
[<c029c0b4>] (init_IRQ+0x14/0x1c) from [<c029a5cc>] (start_kernel+0x15c/0x2b8)
[<c029a5cc>] (start_kernel+0x15c/0x2b8) from [<4000803c>] (0x4000803c)
---[ end trace 1b75b31a2719ed1c ]---
With this fix applied interrupts work as expected.
Signed-off-by: Magnus Damm <damm@opensource.se>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r-- | arch/arm/mach-shmobile/board-kota2.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-kota2.c b/arch/arm/mach-shmobile/board-kota2.c index 5e084b9a8404..53e5e45521aa 100644 --- a/arch/arm/mach-shmobile/board-kota2.c +++ b/arch/arm/mach-shmobile/board-kota2.c | |||
@@ -435,6 +435,7 @@ struct sys_timer kota2_timer = { | |||
435 | 435 | ||
436 | MACHINE_START(KOTA2, "kota2") | 436 | MACHINE_START(KOTA2, "kota2") |
437 | .map_io = kota2_map_io, | 437 | .map_io = kota2_map_io, |
438 | .nr_irqs = NR_IRQS_LEGACY, | ||
438 | .init_irq = sh73a0_init_irq, | 439 | .init_irq = sh73a0_init_irq, |
439 | .handle_irq = shmobile_handle_irq_gic, | 440 | .handle_irq = shmobile_handle_irq_gic, |
440 | .init_machine = kota2_init, | 441 | .init_machine = kota2_init, |