From: Venkatraman S venkat@linaro.org
This is a work-in-progress of the cleanup work on NR_IRQS that I did at Linaro Connect. The patches do.. a) add nr_irqs field to many board files b) include mach/irqs.h directly to drivers and platform files where needed c) remove the enable_fiq / disable_fiq interface
After applying these patches, it is technically possible to remove #include <mach/irqs.h> from arch/arm/include/asm/irq.h and NR_IRQS would be runtime detected.
But that would break a lot of other platforms whose board files are not updated and whose includes are not fixed. So this is not lakml worthy yet.
I am posting this to get early feedback and correct course, if need be.
Venkatraman S (24): arm: Enable SPARSE_IRQ by default omap2+: update nr_irqs field in machine descriptors omap1: update nr_irqs field in machine descriptors msm: update nr_irqs field in machine descriptors mach-omap2: include mach/irqs.h directly omap1: include mach/irqs.h directly msm: include mach/irqs.h directly exynos4: include mach/irqs.h directly s5p: include mach/irqs.h directly samsung: include mach/irqs.h directly ux500: include mach/irqs.h directly integrator: include mach/irqs.h directly nomadik: include mach/irqs.h directly video: omap: include mach/irqs.h directly gpio: include mach/irqs.h directly mfd: twl4030-irq: include mach/irqs.h directly tty: samsung: include mach/irqs.h directly arm: irq: do not assume NR_IRQS to be defined hack: Define constant IRQ_BITMAP_BITS independent of NR_IRQS irqdesc: do not assume NR_IRQS to be defined mx1_camera: clear the use of fiq arm: rpc-dma: replace fiq enable/disable interface with irq apis sound: imx-pcm-fiq: replace fiq enable/disable interface with irq apis arm: fiq: retire the enable_fiq and disable_fiq interface
arch/arm/Kconfig | 1 + arch/arm/common/gic.c | 8 ++++---- arch/arm/include/asm/fiq.h | 2 -- arch/arm/include/asm/hardirq.h | 6 ++++++ arch/arm/kernel/fiq.c | 12 ------------ arch/arm/kernel/irq.c | 8 +++++++- arch/arm/mach-exynos4/cpu.c | 1 + arch/arm/mach-exynos4/irq-combiner.c | 1 + arch/arm/mach-exynos4/localtimer.c | 2 +- arch/arm/mach-exynos4/mach-armlex4210.c | 2 +- arch/arm/mach-exynos4/mach-nuri.c | 2 +- arch/arm/mach-exynos4/mach-smdkc210.c | 2 +- arch/arm/mach-exynos4/mach-smdkv310.c | 2 +- arch/arm/mach-exynos4/time.c | 2 +- arch/arm/mach-integrator/core.c | 1 + arch/arm/mach-integrator/integrator_ap.c | 1 + arch/arm/mach-integrator/pci.c | 1 + arch/arm/mach-integrator/pci_v3.c | 2 ++ arch/arm/mach-msm/board-halibut.c | 1 + arch/arm/mach-msm/board-mahimahi.c | 1 + arch/arm/mach-msm/board-msm7x27.c | 4 ++++ arch/arm/mach-msm/board-msm7x30.c | 3 +++ arch/arm/mach-msm/board-msm8960.c | 2 ++ arch/arm/mach-msm/board-msm8x60.c | 4 ++++ arch/arm/mach-msm/board-qsd8x50.c | 2 ++ arch/arm/mach-msm/board-sapphire.c | 1 + arch/arm/mach-msm/board-trout.c | 1 + arch/arm/mach-msm/dma.c | 1 + arch/arm/mach-msm/gpio.c | 1 + arch/arm/mach-msm/irq.c | 2 +- arch/arm/mach-msm/smd.c | 2 +- arch/arm/mach-msm/timer.c | 1 + arch/arm/mach-omap1/board-ams-delta.c | 1 + arch/arm/mach-omap1/board-fsample.c | 1 + arch/arm/mach-omap1/board-generic.c | 1 + arch/arm/mach-omap1/board-h2.c | 1 + arch/arm/mach-omap1/board-h3.c | 1 + arch/arm/mach-omap1/board-htcherald.c | 1 + arch/arm/mach-omap1/board-innovator.c | 1 + arch/arm/mach-omap1/board-nokia770.c | 1 + arch/arm/mach-omap1/board-osk.c | 1 + arch/arm/mach-omap1/board-palmte.c | 1 + arch/arm/mach-omap1/board-palmtt.c | 1 + arch/arm/mach-omap1/board-palmz71.c | 1 + arch/arm/mach-omap1/board-perseus2.c | 1 + arch/arm/mach-omap1/board-sx1.c | 1 + arch/arm/mach-omap1/board-voiceblue.c | 1 + arch/arm/mach-omap1/lcd_dma.c | 1 + arch/arm/mach-omap1/time.c | 1 + arch/arm/mach-omap1/timer32k.c | 1 + arch/arm/mach-omap1/usb.c | 2 +- arch/arm/mach-omap2/board-2430sdp.c | 1 + arch/arm/mach-omap2/board-3430sdp.c | 1 + arch/arm/mach-omap2/board-3630sdp.c | 1 + arch/arm/mach-omap2/board-4430sdp.c | 1 + arch/arm/mach-omap2/board-am3517crane.c | 1 + arch/arm/mach-omap2/board-am3517evm.c | 1 + arch/arm/mach-omap2/board-apollon.c | 1 + arch/arm/mach-omap2/board-cm-t35.c | 1 + arch/arm/mach-omap2/board-cm-t3517.c | 1 + arch/arm/mach-omap2/board-devkit8000.c | 1 + arch/arm/mach-omap2/board-generic.c | 1 + arch/arm/mach-omap2/board-h4.c | 1 + arch/arm/mach-omap2/board-igep0020.c | 2 ++ arch/arm/mach-omap2/board-ldp.c | 1 + arch/arm/mach-omap2/board-n8x0.c | 3 +++ arch/arm/mach-omap2/board-omap3beagle.c | 1 + arch/arm/mach-omap2/board-omap3evm.c | 1 + arch/arm/mach-omap2/board-omap3logic.c | 2 ++ arch/arm/mach-omap2/board-omap3pandora.c | 1 + arch/arm/mach-omap2/board-omap3stalker.c | 1 + arch/arm/mach-omap2/board-omap3touchbook.c | 1 + arch/arm/mach-omap2/board-omap4panda.c | 1 + arch/arm/mach-omap2/board-overo.c | 1 + arch/arm/mach-omap2/board-rm680.c | 1 + arch/arm/mach-omap2/board-rx51.c | 1 + arch/arm/mach-omap2/board-ti8168evm.c | 1 + arch/arm/mach-omap2/board-zoom.c | 2 ++ arch/arm/mach-omap2/gpmc.c | 1 + arch/arm/mach-omap2/hsmmc.c | 1 + arch/arm/mach-omap2/irq.c | 1 + arch/arm/mach-omap2/omap_l3_noc.c | 2 +- arch/arm/mach-omap2/timer-mpu.c | 1 + arch/arm/mach-rpc/dma.c | 4 ++-- arch/arm/mach-s5pv210/mach-smdkv210.c | 1 + arch/arm/mach-ux500/board-mop500-stuib.c | 1 + arch/arm/mach-ux500/devices-common.c | 2 +- arch/arm/mach-ux500/devices-common.h | 2 ++ arch/arm/mach-ux500/devices-db8500.c | 2 +- arch/arm/mach-ux500/dma-db5500.c | 2 +- arch/arm/mach-ux500/localtimer.c | 1 + arch/arm/mach-ux500/modem-irq-db5500.c | 1 + arch/arm/plat-nomadik/timer.c | 2 +- arch/arm/plat-omap/dma.c | 1 + arch/arm/plat-s5p/dev-fimc0.c | 1 + arch/arm/plat-s5p/dev-fimc1.c | 1 + arch/arm/plat-s5p/dev-fimc2.c | 1 + arch/arm/plat-s5p/dev-fimc3.c | 1 + arch/arm/plat-s5p/dev-uart.c | 2 +- arch/arm/plat-s5p/irq-eint.c | 2 +- arch/arm/plat-s5p/irq-gpioint.c | 2 +- arch/arm/plat-s5p/irq-pm.c | 2 +- arch/arm/plat-s5p/irq.c | 1 + arch/arm/plat-s5p/s5p-time.c | 2 +- arch/arm/plat-samsung/dev-hsmmc.c | 2 +- arch/arm/plat-samsung/dev-hsmmc1.c | 2 +- arch/arm/plat-samsung/dev-hsmmc2.c | 1 + arch/arm/plat-samsung/dev-hsmmc3.c | 2 +- arch/arm/plat-samsung/dev-ide.c | 2 +- arch/arm/plat-samsung/irq-vic-timer.c | 1 + arch/arm/plat-samsung/pm.c | 2 +- drivers/gpio/gpio-exynos4.c | 2 +- drivers/gpio/gpio-nomadik.c | 2 +- drivers/gpio/gpio-s5pv210.c | 1 + drivers/gpio/pl061.c | 1 + drivers/media/video/mx1_camera.c | 7 ++++--- drivers/mfd/twl4030-irq.c | 2 +- drivers/tty/serial/samsung.c | 2 +- drivers/video/omap/lcdc.c | 1 + drivers/video/omap/sossi.c | 1 + kernel/irq/internals.h | 2 +- kernel/irq/irqdesc.c | 6 +++++- sound/soc/imx/imx-pcm-fiq.c | 4 ++-- 123 files changed, 161 insertions(+), 56 deletions(-)