summaryrefslogtreecommitdiffstats
path: root/kernel/irq/manage.c
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2011-10-21 17:14:27 -0500
committerArnd Bergmann <arnd@arndb.de>2011-10-31 14:03:27 +0100
commitf37a53cc5d8a8fb199e41386d125d8c2ed9e54ef (patch)
treeccf7658e1dae54e7b3eeaa8413dd86d4b865eaec /kernel/irq/manage.c
parentb3f7ed0324091e2cb23fe1b3c10570700f614014 (diff)
downloadop-kernel-dev-f37a53cc5d8a8fb199e41386d125d8c2ed9e54ef.zip
op-kernel-dev-f37a53cc5d8a8fb199e41386d125d8c2ed9e54ef.tar.gz
ARM: gic: fix irq_alloc_descs handling for sparse irq
Commit "ARM: gic: add irq_domain support" (b49b6ff) breaks SPARSE_IRQ on platforms with GIC. When SPARSE_IRQ is enabled, all NR_IRQS or mach_desc->nr_irqs will be allocated by arch_probe_nr_irqs(). This caused irq_alloc_descs to allocate irq_descs after the pre-allocated space. Make irq_alloc_descs search for an exact irq range and assume it has been pre-allocated on failure. For DT probing dynamic allocation is used. DT enabled platforms should set their nr_irqs to NR_IRQ_LEGACY and have all irq_chips allocate their irq_descs with irq_alloc_descs if SPARSE_IRQ is enabled. gic_init irq_start param is changed to be signed with negative meaning do dynamic Linux irq assigment. Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Diffstat (limited to 'kernel/irq/manage.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud