[PATCH 05/10] ARM: s3c64xx: enable sparse IRQ support
From: arnd@arndb.de (Arnd Bergmann)
Date: 2015-03-22 02:54:42
Also in:
linux-samsung-soc
On Wednesday 18 March 2015, Mark Brown wrote:
On Sun, Mar 08, 2015 at 10:42:59PM +0100, Arnd Bergmann wrote:
quoted
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index f395a5617142..cbe353a5450e 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c@@ -855,7 +855,7 @@ static void __init crag6410_machine_init(void) MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410") /* Maintainer: Mark Brown <broonie@opensource.wolfsonmicro.com> */ .atag_offset = 0x100, - .nr_irqs = S3C64XX_NR_IRQS + 160, + .nr_irqs = S3C64XX_NR_IRQS, .init_irq = s3c6410_init_irq, .map_io = crag6410_map_io, .init_machine = crag6410_machine_init,quoted
The samsung-gpio driver does not allocate irq descriptors for itself though, otherwise we could make the S3C64XX_NR_IRQS number smaller.That's not the only thing, I'm still seeing an issue even with the change above. The VICs are also complaining about preallocated descriptors, but they just assume the descriptors were preallocated and carry on happily.
Yes, that is the behavior I expected to see. The VIC driver would be fine in theory with allocating the descriptors dynamically, but the secondary irqchip (s3c_irq_eint) would need significant changes. IIRC, another problem is the way that the first NR_IRQS_LEGACY interrupts are always preallocated, but would not need to, once we fix the eint. Arnd