• Rob Herring's avatar
    ARM: gic: fix irq_alloc_descs handling for sparse irq · f37a53cc
    Rob Herring authored
    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: default avatarRob Herring <rob.herring@calxeda.com>
    f37a53cc
gic.c 16.7 KB