From a00408a714458829dbe62a4486e0a43b22afa698 Mon Sep 17 00:00:00 2001 From: Will Deacon Date: Sat, 2 Feb 2013 15:03:10 +0000 Subject: [PATCH] --- yaml --- r: 355836 b: refs/heads/master c: 6c046e405564608dd0889e0938656781550fd70c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/MAINTAINERS | 1 + trunk/arch/arm/common/Kconfig | 23 ----- trunk/arch/arm/common/Makefile | 2 - trunk/arch/arm/include/asm/mach/irq.h | 1 + trunk/arch/arm/kernel/irq.c | 10 ++ trunk/arch/arm/kernel/smp.c | 3 +- trunk/arch/arm/kernel/smp_twd.c | 1 - trunk/arch/arm/mach-bcm/board_bcm.c | 17 +--- trunk/arch/arm/mach-cns3xxx/cns3420vb.c | 2 - trunk/arch/arm/mach-cns3xxx/core.c | 2 +- trunk/arch/arm/mach-ep93xx/adssphere.c | 2 - trunk/arch/arm/mach-ep93xx/core.c | 3 +- trunk/arch/arm/mach-ep93xx/edb93xx.c | 9 -- trunk/arch/arm/mach-ep93xx/gesbc9312.c | 2 - trunk/arch/arm/mach-ep93xx/micro9.c | 5 - trunk/arch/arm/mach-ep93xx/simone.c | 2 - trunk/arch/arm/mach-ep93xx/snappercl15.c | 2 - trunk/arch/arm/mach-ep93xx/ts72xx.c | 2 - trunk/arch/arm/mach-ep93xx/vision_ep9307.c | 2 - trunk/arch/arm/mach-exynos/common.c | 10 +- .../arm/mach-exynos/include/mach/regs-irq.h | 2 +- trunk/arch/arm/mach-exynos/mach-armlex4210.c | 2 - trunk/arch/arm/mach-exynos/mach-exynos4-dt.c | 2 - trunk/arch/arm/mach-exynos/mach-exynos5-dt.c | 2 - trunk/arch/arm/mach-exynos/mach-nuri.c | 2 - trunk/arch/arm/mach-exynos/mach-origen.c | 2 - trunk/arch/arm/mach-exynos/mach-smdk4x12.c | 3 - trunk/arch/arm/mach-exynos/mach-smdkv310.c | 3 - .../arm/mach-exynos/mach-universal_c210.c | 2 - trunk/arch/arm/mach-exynos/mct.c | 1 - trunk/arch/arm/mach-exynos/platsmp.c | 6 +- trunk/arch/arm/mach-highbank/highbank.c | 11 +-- trunk/arch/arm/mach-highbank/platsmp.c | 6 +- trunk/arch/arm/mach-imx/common.h | 1 - trunk/arch/arm/mach-imx/gpc.c | 2 +- trunk/arch/arm/mach-imx/mach-imx6q.c | 10 +- trunk/arch/arm/mach-imx/platsmp.c | 4 +- trunk/arch/arm/mach-msm/board-dt-8660.c | 16 +--- trunk/arch/arm/mach-msm/board-dt-8960.c | 16 +--- trunk/arch/arm/mach-msm/platsmp.c | 6 +- trunk/arch/arm/mach-msm/timer.c | 1 - trunk/arch/arm/mach-netx/generic.c | 2 +- trunk/arch/arm/mach-netx/nxdb500.c | 2 - trunk/arch/arm/mach-netx/nxdkn.c | 2 - trunk/arch/arm/mach-netx/nxeb500hmi.c | 2 - trunk/arch/arm/mach-nomadik/board-nhk8815.c | 2 - trunk/arch/arm/mach-nomadik/cpu-8815.c | 2 +- trunk/arch/arm/mach-omap2/board-4430sdp.c | 3 +- trunk/arch/arm/mach-omap2/board-generic.c | 3 - trunk/arch/arm/mach-omap2/board-omap4panda.c | 3 +- trunk/arch/arm/mach-omap2/omap-smp.c | 6 +- trunk/arch/arm/mach-omap2/omap-wakeupgen.c | 3 +- trunk/arch/arm/mach-omap2/omap4-common.c | 11 +-- trunk/arch/arm/mach-picoxcell/common.c | 15 +-- trunk/arch/arm/mach-realview/core.c | 1 - trunk/arch/arm/mach-realview/platsmp.c | 3 - trunk/arch/arm/mach-realview/realview_eb.c | 3 +- .../arch/arm/mach-realview/realview_pb1176.c | 3 +- .../arch/arm/mach-realview/realview_pb11mp.c | 3 +- trunk/arch/arm/mach-realview/realview_pba8.c | 3 +- trunk/arch/arm/mach-realview/realview_pbx.c | 3 +- trunk/arch/arm/mach-s3c64xx/common.c | 2 +- .../arm/mach-s3c64xx/include/mach/regs-irq.h | 1 - .../arch/arm/mach-s3c64xx/include/mach/tick.h | 2 + trunk/arch/arm/mach-s3c64xx/mach-anw6410.c | 2 - trunk/arch/arm/mach-s3c64xx/mach-crag6410.c | 2 - trunk/arch/arm/mach-s3c64xx/mach-hmt.c | 2 - trunk/arch/arm/mach-s3c64xx/mach-mini6410.c | 2 - trunk/arch/arm/mach-s3c64xx/mach-ncp.c | 2 - trunk/arch/arm/mach-s3c64xx/mach-real6410.c | 2 - trunk/arch/arm/mach-s3c64xx/mach-smartq5.c | 2 - trunk/arch/arm/mach-s3c64xx/mach-smartq7.c | 2 - trunk/arch/arm/mach-s3c64xx/mach-smdk6400.c | 2 - trunk/arch/arm/mach-s3c64xx/mach-smdk6410.c | 2 - .../arm/mach-s5p64x0/include/mach/regs-irq.h | 1 - .../arch/arm/mach-s5p64x0/include/mach/tick.h | 29 ------ trunk/arch/arm/mach-s5p64x0/mach-smdk6440.c | 2 - trunk/arch/arm/mach-s5p64x0/mach-smdk6450.c | 2 - .../arm/mach-s5pc100/include/mach/regs-irq.h | 1 - .../arch/arm/mach-s5pc100/include/mach/tick.h | 2 + trunk/arch/arm/mach-s5pc100/mach-smdkc100.c | 2 - .../arm/mach-s5pv210/include/mach/regs-irq.h | 1 - .../arch/arm/mach-s5pv210/include/mach/tick.h | 26 ----- trunk/arch/arm/mach-s5pv210/mach-aquila.c | 2 - trunk/arch/arm/mach-s5pv210/mach-goni.c | 2 - trunk/arch/arm/mach-s5pv210/mach-smdkc110.c | 2 - trunk/arch/arm/mach-s5pv210/mach-smdkv210.c | 2 - trunk/arch/arm/mach-s5pv210/mach-torbreck.c | 2 - trunk/arch/arm/mach-shmobile/board-ag5evm.c | 3 +- trunk/arch/arm/mach-shmobile/board-kota2.c | 3 +- trunk/arch/arm/mach-shmobile/board-kzm9d.c | 2 - trunk/arch/arm/mach-shmobile/board-kzm9g.c | 3 +- trunk/arch/arm/mach-shmobile/board-marzen.c | 2 - trunk/arch/arm/mach-shmobile/intc-r8a7779.c | 2 +- trunk/arch/arm/mach-shmobile/intc-sh73a0.c | 2 +- trunk/arch/arm/mach-shmobile/platsmp.c | 3 - trunk/arch/arm/mach-shmobile/setup-emev2.c | 17 +--- trunk/arch/arm/mach-shmobile/smp-emev2.c | 4 +- trunk/arch/arm/mach-shmobile/smp-r8a7779.c | 2 +- trunk/arch/arm/mach-shmobile/smp-sh73a0.c | 2 +- trunk/arch/arm/mach-socfpga/platsmp.c | 4 +- trunk/arch/arm/mach-socfpga/socfpga.c | 14 +-- .../arm/mach-spear13xx/include/mach/generic.h | 1 - trunk/arch/arm/mach-spear13xx/platsmp.c | 4 +- trunk/arch/arm/mach-spear13xx/spear1310.c | 5 +- trunk/arch/arm/mach-spear13xx/spear1340.c | 5 +- trunk/arch/arm/mach-spear13xx/spear13xx.c | 13 +-- .../arm/mach-spear3xx/include/mach/generic.h | 1 - trunk/arch/arm/mach-spear3xx/spear300.c | 5 +- trunk/arch/arm/mach-spear3xx/spear310.c | 5 +- trunk/arch/arm/mach-spear3xx/spear320.c | 5 +- trunk/arch/arm/mach-spear3xx/spear3xx.c | 16 ---- trunk/arch/arm/mach-spear6xx/spear6xx.c | 16 +--- trunk/arch/arm/mach-sunxi/sunxi.c | 2 - trunk/arch/arm/mach-tegra/board-dt-tegra20.c | 3 - trunk/arch/arm/mach-tegra/board-dt-tegra30.c | 2 - trunk/arch/arm/mach-tegra/common.c | 10 +- trunk/arch/arm/mach-tegra/irq.c | 3 +- trunk/arch/arm/mach-tegra/platsmp.c | 4 +- trunk/arch/arm/mach-u300/core.c | 3 +- trunk/arch/arm/mach-ux500/board-mop500.c | 5 - trunk/arch/arm/mach-ux500/cpu-db8500.c | 2 - trunk/arch/arm/mach-ux500/cpu.c | 10 +- trunk/arch/arm/mach-ux500/platsmp.c | 6 +- trunk/arch/arm/mach-versatile/core.c | 2 +- trunk/arch/arm/mach-versatile/versatile_ab.c | 2 - trunk/arch/arm/mach-versatile/versatile_dt.c | 2 - trunk/arch/arm/mach-versatile/versatile_pb.c | 2 - trunk/arch/arm/mach-vexpress/ct-ca9x4.c | 4 +- trunk/arch/arm/mach-vexpress/platsmp.c | 3 - trunk/arch/arm/mach-vexpress/v2m.c | 16 +--- trunk/arch/arm/mach-zynq/common.c | 17 +--- trunk/arch/arm/plat-samsung/s5p-irq-eint.c | 3 +- trunk/arch/arm/plat-samsung/s5p-irq.c | 3 +- trunk/arch/arm/plat-versatile/platsmp.c | 4 +- trunk/drivers/irqchip/Kconfig | 27 ++++++ trunk/drivers/irqchip/Makefile | 6 +- .../gic.c => drivers/irqchip/irq-gic.c} | 59 +++++++----- .../vic.c => drivers/irqchip/irq-vic.c} | 95 ++++++++++++------- trunk/drivers/irqchip/irqchip.c | 30 ++++++ trunk/drivers/irqchip/irqchip.h | 29 ++++++ trunk/drivers/irqchip/spear-shirq.c | 5 + trunk/drivers/mfd/db8500-prcmu.c | 2 +- trunk/include/asm-generic/vmlinux.lds.h | 12 ++- trunk/include/linux/irqchip.h | 16 ++++ .../gic.h => include/linux/irqchip/arm-gic.h} | 15 +-- .../vic.h => include/linux/irqchip/arm-vic.h} | 25 +---- 148 files changed, 339 insertions(+), 608 deletions(-) delete mode 100644 trunk/arch/arm/mach-s5p64x0/include/mach/tick.h delete mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/tick.h rename trunk/{arch/arm/common/gic.c => drivers/irqchip/irq-gic.c} (97%) rename trunk/{arch/arm/common/vic.c => drivers/irqchip/irq-vic.c} (92%) create mode 100644 trunk/drivers/irqchip/irqchip.c create mode 100644 trunk/drivers/irqchip/irqchip.h create mode 100644 trunk/include/linux/irqchip.h rename trunk/{arch/arm/include/asm/hardware/gic.h => include/linux/irqchip/arm-gic.h} (77%) rename trunk/{arch/arm/include/asm/hardware/vic.h => include/linux/irqchip/arm-vic.h} (63%) diff --git a/[refs] b/[refs] index b9af89d7ec39..c6653ad478cd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0d0ffa94e0ea0aab3dcb75366806d064f05fdc45 +refs/heads/master: 6c046e405564608dd0889e0938656781550fd70c diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 212c255b9347..43dbae19838b 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -4216,6 +4216,7 @@ M: Thomas Gleixner S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core F: kernel/irq/ +F: drivers/irqchip/ IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY) M: Benjamin Herrenschmidt diff --git a/trunk/arch/arm/common/Kconfig b/trunk/arch/arm/common/Kconfig index 45ceeb0e93e0..9353184d730d 100644 --- a/trunk/arch/arm/common/Kconfig +++ b/trunk/arch/arm/common/Kconfig @@ -1,26 +1,3 @@ -config ARM_GIC - bool - select IRQ_DOMAIN - select MULTI_IRQ_HANDLER - -config GIC_NON_BANKED - bool - -config ARM_VIC - bool - select IRQ_DOMAIN - select MULTI_IRQ_HANDLER - -config ARM_VIC_NR - int - default 4 if ARCH_S5PV210 - default 3 if ARCH_S5PC100 - default 2 - depends on ARM_VIC - help - The maximum number of VICs available in the system, for - power management. - config ICST bool diff --git a/trunk/arch/arm/common/Makefile b/trunk/arch/arm/common/Makefile index e8a4e58f1b82..dc8dd0de5c0f 100644 --- a/trunk/arch/arm/common/Makefile +++ b/trunk/arch/arm/common/Makefile @@ -2,8 +2,6 @@ # Makefile for the linux kernel. # -obj-$(CONFIG_ARM_GIC) += gic.o -obj-$(CONFIG_ARM_VIC) += vic.o obj-$(CONFIG_ICST) += icst.o obj-$(CONFIG_SA1111) += sa1111.o obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o diff --git a/trunk/arch/arm/include/asm/mach/irq.h b/trunk/arch/arm/include/asm/mach/irq.h index 15cb035309f7..18c883023339 100644 --- a/trunk/arch/arm/include/asm/mach/irq.h +++ b/trunk/arch/arm/include/asm/mach/irq.h @@ -22,6 +22,7 @@ extern int show_fiq_list(struct seq_file *, int); #ifdef CONFIG_MULTI_IRQ_HANDLER extern void (*handle_arch_irq)(struct pt_regs *); +extern void set_handle_irq(void (*handle_irq)(struct pt_regs *)); #endif /* diff --git a/trunk/arch/arm/kernel/irq.c b/trunk/arch/arm/kernel/irq.c index 896165096d6a..8e4ef4c83a74 100644 --- a/trunk/arch/arm/kernel/irq.c +++ b/trunk/arch/arm/kernel/irq.c @@ -117,6 +117,16 @@ void __init init_IRQ(void) machine_desc->init_irq(); } +#ifdef CONFIG_MULTI_IRQ_HANDLER +void __init set_handle_irq(void (*handle_irq)(struct pt_regs *)) +{ + if (handle_arch_irq) + return; + + handle_arch_irq = handle_irq; +} +#endif + #ifdef CONFIG_SPARSE_IRQ int __init arch_probe_nr_irqs(void) { diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index b7e3b506219b..a77b0532f97e 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -416,7 +416,8 @@ static void (*smp_cross_call)(const struct cpumask *, unsigned int); void __init set_smp_cross_call(void (*fn)(const struct cpumask *, unsigned int)) { - smp_cross_call = fn; + if (!smp_cross_call) + smp_cross_call = fn; } void arch_send_call_function_ipi_mask(const struct cpumask *mask) diff --git a/trunk/arch/arm/kernel/smp_twd.c b/trunk/arch/arm/kernel/smp_twd.c index 49f335d301ba..dc9bb0146665 100644 --- a/trunk/arch/arm/kernel/smp_twd.c +++ b/trunk/arch/arm/kernel/smp_twd.c @@ -24,7 +24,6 @@ #include #include -#include /* set up by the platform code */ static void __iomem *twd_base; diff --git a/trunk/arch/arm/mach-bcm/board_bcm.c b/trunk/arch/arm/mach-bcm/board_bcm.c index 3a62f1b1cabc..5c920bde6791 100644 --- a/trunk/arch/arm/mach-bcm/board_bcm.c +++ b/trunk/arch/arm/mach-bcm/board_bcm.c @@ -11,22 +11,15 @@ * GNU General Public License for more details. */ -#include #include #include #include #include +#include #include -#include - #include -static const struct of_device_id irq_match[] = { - {.compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, - {} -}; - static void timer_init(void) { } @@ -35,11 +28,6 @@ static struct sys_timer timer = { .init = timer_init, }; -static void __init init_irq(void) -{ - of_irq_init(irq_match); -} - static void __init board_init(void) { of_platform_populate(NULL, of_default_bus_match_table, NULL, @@ -49,9 +37,8 @@ static void __init board_init(void) static const char * const bcm11351_dt_compat[] = { "bcm,bcm11351", NULL, }; DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor") - .init_irq = init_irq, + .init_irq = irqchip_init, .timer = &timer, .init_machine = board_init, .dt_compat = bcm11351_dt_compat, - .handle_irq = gic_handle_irq, MACHINE_END diff --git a/trunk/arch/arm/mach-cns3xxx/cns3420vb.c b/trunk/arch/arm/mach-cns3xxx/cns3420vb.c index ae305397003c..26f36d7efecd 100644 --- a/trunk/arch/arm/mach-cns3xxx/cns3420vb.c +++ b/trunk/arch/arm/mach-cns3xxx/cns3420vb.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include @@ -251,7 +250,6 @@ MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board") .map_io = cns3420_map_io, .init_irq = cns3xxx_init_irq, .timer = &cns3xxx_timer, - .handle_irq = gic_handle_irq, .init_machine = cns3420_init, .restart = cns3xxx_restart, MACHINE_END diff --git a/trunk/arch/arm/mach-cns3xxx/core.c b/trunk/arch/arm/mach-cns3xxx/core.c index 031805b1428d..db3806c00f4b 100644 --- a/trunk/arch/arm/mach-cns3xxx/core.c +++ b/trunk/arch/arm/mach-cns3xxx/core.c @@ -12,10 +12,10 @@ #include #include #include +#include #include #include #include -#include #include #include #include "core.h" diff --git a/trunk/arch/arm/mach-ep93xx/adssphere.c b/trunk/arch/arm/mach-ep93xx/adssphere.c index 41383bf03d4b..19332bf022bc 100644 --- a/trunk/arch/arm/mach-ep93xx/adssphere.c +++ b/trunk/arch/arm/mach-ep93xx/adssphere.c @@ -17,7 +17,6 @@ #include -#include #include #include @@ -39,7 +38,6 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = adssphere_init_machine, .init_late = ep93xx_init_late, diff --git a/trunk/arch/arm/mach-ep93xx/core.c b/trunk/arch/arm/mach-ep93xx/core.c index e85bf17f2d2a..c533f37aad2f 100644 --- a/trunk/arch/arm/mach-ep93xx/core.c +++ b/trunk/arch/arm/mach-ep93xx/core.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -44,8 +45,6 @@ #include #include -#include - #include "soc.h" /************************************************************************* diff --git a/trunk/arch/arm/mach-ep93xx/edb93xx.c b/trunk/arch/arm/mach-ep93xx/edb93xx.c index b8f53d57a299..5abf2cbe5afd 100644 --- a/trunk/arch/arm/mach-ep93xx/edb93xx.c +++ b/trunk/arch/arm/mach-ep93xx/edb93xx.c @@ -39,7 +39,6 @@ #include #include -#include #include #include @@ -276,7 +275,6 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, @@ -290,7 +288,6 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, @@ -304,7 +301,6 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, @@ -318,7 +314,6 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, @@ -332,7 +327,6 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, @@ -346,7 +340,6 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, @@ -360,7 +353,6 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, @@ -374,7 +366,6 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, diff --git a/trunk/arch/arm/mach-ep93xx/gesbc9312.c b/trunk/arch/arm/mach-ep93xx/gesbc9312.c index 7fd705b5efe4..2a7375be6fff 100644 --- a/trunk/arch/arm/mach-ep93xx/gesbc9312.c +++ b/trunk/arch/arm/mach-ep93xx/gesbc9312.c @@ -17,7 +17,6 @@ #include -#include #include #include @@ -39,7 +38,6 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = gesbc9312_init_machine, .init_late = ep93xx_init_late, diff --git a/trunk/arch/arm/mach-ep93xx/micro9.c b/trunk/arch/arm/mach-ep93xx/micro9.c index 3d7cdab725b2..723c0d36a609 100644 --- a/trunk/arch/arm/mach-ep93xx/micro9.c +++ b/trunk/arch/arm/mach-ep93xx/micro9.c @@ -18,7 +18,6 @@ #include -#include #include #include @@ -82,7 +81,6 @@ MACHINE_START(MICRO9, "Contec Micro9-High") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, @@ -96,7 +94,6 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, @@ -110,7 +107,6 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, @@ -124,7 +120,6 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, diff --git a/trunk/arch/arm/mach-ep93xx/simone.c b/trunk/arch/arm/mach-ep93xx/simone.c index 0eb3f17a6fa2..651a7db05120 100644 --- a/trunk/arch/arm/mach-ep93xx/simone.c +++ b/trunk/arch/arm/mach-ep93xx/simone.c @@ -25,7 +25,6 @@ #include #include -#include #include #include @@ -83,7 +82,6 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = simone_init_machine, .init_late = ep93xx_init_late, diff --git a/trunk/arch/arm/mach-ep93xx/snappercl15.c b/trunk/arch/arm/mach-ep93xx/snappercl15.c index 50043eef1cf2..b4389d3820cc 100644 --- a/trunk/arch/arm/mach-ep93xx/snappercl15.c +++ b/trunk/arch/arm/mach-ep93xx/snappercl15.c @@ -31,7 +31,6 @@ #include #include -#include #include #include @@ -176,7 +175,6 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = snappercl15_init_machine, .init_late = ep93xx_init_late, diff --git a/trunk/arch/arm/mach-ep93xx/ts72xx.c b/trunk/arch/arm/mach-ep93xx/ts72xx.c index 3c4c233391dc..1eeee09f421f 100644 --- a/trunk/arch/arm/mach-ep93xx/ts72xx.c +++ b/trunk/arch/arm/mach-ep93xx/ts72xx.c @@ -22,7 +22,6 @@ #include -#include #include #include #include @@ -246,7 +245,6 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") .atag_offset = 0x100, .map_io = ts72xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = ts72xx_init_machine, .init_late = ep93xx_init_late, diff --git a/trunk/arch/arm/mach-ep93xx/vision_ep9307.c b/trunk/arch/arm/mach-ep93xx/vision_ep9307.c index ba92e25e3016..723d048176db 100644 --- a/trunk/arch/arm/mach-ep93xx/vision_ep9307.c +++ b/trunk/arch/arm/mach-ep93xx/vision_ep9307.c @@ -34,7 +34,6 @@ #include #include -#include #include #include #include @@ -364,7 +363,6 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307") .atag_offset = 0x100, .map_io = vision_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = vision_init_machine, .init_late = ep93xx_init_late, diff --git a/trunk/arch/arm/mach-exynos/common.c b/trunk/arch/arm/mach-exynos/common.c index 1a89824a5f78..4ea80bc4ef9b 100644 --- a/trunk/arch/arm/mach-exynos/common.c +++ b/trunk/arch/arm/mach-exynos/common.c @@ -22,12 +22,13 @@ #include #include #include +#include #include +#include #include #include #include -#include #include #include #include @@ -644,8 +645,6 @@ static int __init combiner_of_init(struct device_node *np, } static const struct of_device_id exynos_dt_irq_match[] = { - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, - { .compatible = "arm,cortex-a15-gic", .data = gic_of_init, }, { .compatible = "samsung,exynos4210-combiner", .data = combiner_of_init, }, {}, @@ -661,8 +660,10 @@ void __init exynos4_init_irq(void) if (!of_have_populated_dt()) gic_init_bases(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU, gic_bank_offset, NULL); #ifdef CONFIG_OF - else + else { + irqchip_init(); of_irq_init(exynos_dt_irq_match); + } #endif if (!of_have_populated_dt()) @@ -679,6 +680,7 @@ void __init exynos4_init_irq(void) void __init exynos5_init_irq(void) { #ifdef CONFIG_OF + irqchip_init(); of_irq_init(exynos_dt_irq_match); #endif /* diff --git a/trunk/arch/arm/mach-exynos/include/mach/regs-irq.h b/trunk/arch/arm/mach-exynos/include/mach/regs-irq.h index 9c7b4bfd546f..f2b50506b9f6 100644 --- a/trunk/arch/arm/mach-exynos/include/mach/regs-irq.h +++ b/trunk/arch/arm/mach-exynos/include/mach/regs-irq.h @@ -13,7 +13,7 @@ #ifndef __ASM_ARCH_REGS_IRQ_H #define __ASM_ARCH_REGS_IRQ_H __FILE__ -#include +#include #include #endif /* __ASM_ARCH_REGS_IRQ_H */ diff --git a/trunk/arch/arm/mach-exynos/mach-armlex4210.c b/trunk/arch/arm/mach-exynos/mach-armlex4210.c index b938f9fc1dd1..a11a36fc7bf5 100644 --- a/trunk/arch/arm/mach-exynos/mach-armlex4210.c +++ b/trunk/arch/arm/mach-exynos/mach-armlex4210.c @@ -16,7 +16,6 @@ #include #include -#include #include #include @@ -201,7 +200,6 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = armlex4210_map_io, - .handle_irq = gic_handle_irq, .init_machine = armlex4210_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer, diff --git a/trunk/arch/arm/mach-exynos/mach-exynos4-dt.c b/trunk/arch/arm/mach-exynos/mach-exynos4-dt.c index 92757ff817ae..34c45b6c8b2c 100644 --- a/trunk/arch/arm/mach-exynos/mach-exynos4-dt.c +++ b/trunk/arch/arm/mach-exynos/mach-exynos4-dt.c @@ -15,7 +15,6 @@ #include #include -#include #include #include @@ -107,7 +106,6 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = exynos4_dt_map_io, - .handle_irq = gic_handle_irq, .init_machine = exynos4_dt_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer, diff --git a/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c b/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c index e99d3d8f2bcf..3a3bee463c46 100644 --- a/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c @@ -16,7 +16,6 @@ #include #include -#include #include #include @@ -179,7 +178,6 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") .init_irq = exynos5_init_irq, .smp = smp_ops(exynos_smp_ops), .map_io = exynos5_dt_map_io, - .handle_irq = gic_handle_irq, .init_machine = exynos5_dt_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer, diff --git a/trunk/arch/arm/mach-exynos/mach-nuri.c b/trunk/arch/arm/mach-exynos/mach-nuri.c index 27d4ed8b116e..55f8183e1d6f 100644 --- a/trunk/arch/arm/mach-exynos/mach-nuri.c +++ b/trunk/arch/arm/mach-exynos/mach-nuri.c @@ -39,7 +39,6 @@ #include #include -#include #include #include @@ -1379,7 +1378,6 @@ MACHINE_START(NURI, "NURI") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = nuri_map_io, - .handle_irq = gic_handle_irq, .init_machine = nuri_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer, diff --git a/trunk/arch/arm/mach-exynos/mach-origen.c b/trunk/arch/arm/mach-exynos/mach-origen.c index 5e34b9c16196..45cda369923e 100644 --- a/trunk/arch/arm/mach-exynos/mach-origen.c +++ b/trunk/arch/arm/mach-exynos/mach-origen.c @@ -29,7 +29,6 @@ #include #include -#include #include #include