From: Olof Johansson Date: Tue, 15 Jan 2013 01:22:00 +0000 (-0800) Subject: Merge tag 'gic-vic-to-irqchip' of git://sources.calxeda.com/kernel/linux into next... X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=f8060f5446b1f2782f0a8ca9be2d870ea4198aee;p=deliverable%2Flinux.git Merge tag 'gic-vic-to-irqchip' of git://sources.calxeda.com/kernel/linux into next/cleanup From Rob Herring: Initial irqchip init infrastructure and GIC and VIC clean-ups This creates irqchip initialization infrastructure from Thomas Petazzoni. The VIC and GIC irqchip code is moved to drivers/irqchips and adapted to use the new infrastructure. All DT enabled platforms using GIC and VIC are converted over to use the new irqchip_init. * tag 'gic-vic-to-irqchip' of git://sources.calxeda.com/kernel/linux: irqchip: Move ARM vic.h to include/linux/irqchip/arm-vic.h ARM: picoxcell: use common irqchip_init function ARM: spear: use common irqchip_init function irqchip: Move ARM VIC to drivers/irqchip ARM: samsung: remove unused tick.h ARM: remove unneeded vic.h includes ARM: remove mach .handle_irq for VIC users ARM: VIC: set handle_arch_irq in VIC initialization ARM: VIC: shrink down vic.h irqchip: Move ARM gic.h to include/linux/irqchip/arm-gic.h ARM: use common irqchip_init for GIC init irqchip: Move ARM GIC to drivers/irqchip ARM: remove mach .handle_irq for GIC users ARM: GIC: set handle_arch_irq in GIC initialization ARM: GIC: remove direct use of gic_raise_softirq ARM: GIC: remove assembly ifdefs from gic.h ARM: mach-ux500: use SGI0 to wake up the other core arm: add set_handle_irq() to register the parent IRQ controller handler function irqchip: add basic infrastructure irqchip: add to the directories part of the IRQ subsystem in MAINTAINERS Fixed up massive merge conflicts with the timer cleanup due to adjacent changes: Signed-off-by: Olof Johansson Conflicts: arch/arm/mach-bcm/board_bcm.c arch/arm/mach-cns3xxx/cns3420vb.c arch/arm/mach-ep93xx/adssphere.c arch/arm/mach-ep93xx/edb93xx.c arch/arm/mach-ep93xx/gesbc9312.c arch/arm/mach-ep93xx/micro9.c arch/arm/mach-ep93xx/simone.c arch/arm/mach-ep93xx/snappercl15.c arch/arm/mach-ep93xx/ts72xx.c arch/arm/mach-ep93xx/vision_ep9307.c arch/arm/mach-highbank/highbank.c arch/arm/mach-imx/mach-imx6q.c arch/arm/mach-msm/board-dt-8960.c arch/arm/mach-netx/nxdb500.c arch/arm/mach-netx/nxdkn.c arch/arm/mach-netx/nxeb500hmi.c arch/arm/mach-nomadik/board-nhk8815.c arch/arm/mach-picoxcell/common.c arch/arm/mach-realview/realview_eb.c arch/arm/mach-realview/realview_pb1176.c arch/arm/mach-realview/realview_pb11mp.c arch/arm/mach-realview/realview_pba8.c arch/arm/mach-realview/realview_pbx.c arch/arm/mach-socfpga/socfpga.c arch/arm/mach-spear13xx/spear1310.c arch/arm/mach-spear13xx/spear1340.c arch/arm/mach-spear13xx/spear13xx.c arch/arm/mach-spear3xx/spear300.c arch/arm/mach-spear3xx/spear310.c arch/arm/mach-spear3xx/spear320.c arch/arm/mach-spear3xx/spear3xx.c arch/arm/mach-spear6xx/spear6xx.c arch/arm/mach-tegra/board-dt-tegra20.c arch/arm/mach-tegra/board-dt-tegra30.c arch/arm/mach-u300/core.c arch/arm/mach-ux500/board-mop500.c arch/arm/mach-ux500/cpu-db8500.c arch/arm/mach-versatile/versatile_ab.c arch/arm/mach-versatile/versatile_dt.c arch/arm/mach-versatile/versatile_pb.c arch/arm/mach-vexpress/v2m.c include/asm-generic/vmlinux.lds.h --- f8060f5446b1f2782f0a8ca9be2d870ea4198aee diff --cc arch/arm/mach-bcm/board_bcm.c index 3df68030cf68,5c920bde6791..f0f9abafad29 --- a/arch/arm/mach-bcm/board_bcm.c +++ b/arch/arm/mach-bcm/board_bcm.c @@@ -31,10 -24,9 +24,6 @@@ static void timer_init(void { } - static void __init init_irq(void) - { - of_irq_init(irq_match); - } -static struct sys_timer timer = { - .init = timer_init, -}; static void __init board_init(void) { @@@ -45,9 -37,8 +34,8 @@@ 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_time = timer_init, .init_machine = board_init, .dt_compat = bcm11351_dt_compat, - .handle_irq = gic_handle_irq, MACHINE_END diff --cc arch/arm/mach-cns3xxx/cns3420vb.c index 3c86f910b647,26f36d7efecd..a71867e1d8d6 --- a/arch/arm/mach-cns3xxx/cns3420vb.c +++ b/arch/arm/mach-cns3xxx/cns3420vb.c @@@ -250,8 -249,7 +249,7 @@@ MACHINE_START(CNS3420VB, "Cavium Networ .atag_offset = 0x100, .map_io = cns3420_map_io, .init_irq = cns3xxx_init_irq, - .timer = &cns3xxx_timer, + .init_time = cns3xxx_timer_init, - .handle_irq = gic_handle_irq, .init_machine = cns3420_init, .restart = cns3xxx_restart, MACHINE_END diff --cc arch/arm/mach-ep93xx/adssphere.c index 82d9c788535a,19332bf022bc..bda6c3a5c923 --- a/arch/arm/mach-ep93xx/adssphere.c +++ b/arch/arm/mach-ep93xx/adssphere.c @@@ -39,8 -38,7 +38,7 @@@ MACHINE_START(ADSSPHERE, "ADS Sphere bo .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = adssphere_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --cc arch/arm/mach-ep93xx/edb93xx.c index ac260519c9e9,5abf2cbe5afd..27b14ae92c7e --- a/arch/arm/mach-ep93xx/edb93xx.c +++ b/arch/arm/mach-ep93xx/edb93xx.c @@@ -276,8 -275,7 +275,7 @@@ MACHINE_START(EDB9301, "Cirrus Logic ED .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -290,8 -288,7 +288,7 @@@ MACHINE_START(EDB9302, "Cirrus Logic ED .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -304,8 -301,7 +301,7 @@@ MACHINE_START(EDB9302A, "Cirrus Logic E .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -318,8 -314,7 +314,7 @@@ MACHINE_START(EDB9307, "Cirrus Logic ED .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -332,8 -327,7 +327,7 @@@ MACHINE_START(EDB9307A, "Cirrus Logic E .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -346,8 -340,7 +340,7 @@@ MACHINE_START(EDB9312, "Cirrus Logic ED .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -360,8 -353,7 +353,7 @@@ MACHINE_START(EDB9315, "Cirrus Logic ED .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -374,8 -366,7 +366,7 @@@ MACHINE_START(EDB9315A, "Cirrus Logic E .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --cc arch/arm/mach-ep93xx/gesbc9312.c index 76c50f42bd71,2a7375be6fff..0cca5b183309 --- a/arch/arm/mach-ep93xx/gesbc9312.c +++ b/arch/arm/mach-ep93xx/gesbc9312.c @@@ -39,8 -38,7 +38,7 @@@ MACHINE_START(GESBC9312, "Glomation GES .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = gesbc9312_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --cc arch/arm/mach-ep93xx/micro9.c index 777cd2170f8a,723c0d36a609..373583c29825 --- a/arch/arm/mach-ep93xx/micro9.c +++ b/arch/arm/mach-ep93xx/micro9.c @@@ -82,8 -81,7 +81,7 @@@ MACHINE_START(MICRO9, "Contec Micro9-Hi .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -96,8 -94,7 +94,7 @@@ MACHINE_START(MICRO9M, "Contec Micro9-M .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -110,8 -107,7 +107,7 @@@ MACHINE_START(MICRO9L, "Contec Micro9-L .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -124,8 -120,7 +120,7 @@@ MACHINE_START(MICRO9S, "Contec Micro9-S .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --cc arch/arm/mach-ep93xx/simone.c index 6ff39ee2ad5d,651a7db05120..36f22c1a31fe --- a/arch/arm/mach-ep93xx/simone.c +++ b/arch/arm/mach-ep93xx/simone.c @@@ -83,8 -82,7 +82,7 @@@ MACHINE_START(SIM_ONE, "Simplemachines .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = simone_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --cc arch/arm/mach-ep93xx/snappercl15.c index 6434c07dbf96,b4389d3820cc..aa86f86638dd --- a/arch/arm/mach-ep93xx/snappercl15.c +++ b/arch/arm/mach-ep93xx/snappercl15.c @@@ -176,8 -175,7 +175,7 @@@ MACHINE_START(SNAPPER_CL15, "Bluewater .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = snappercl15_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --cc arch/arm/mach-ep93xx/ts72xx.c index e4fa0d3760a5,1eeee09f421f..61f4b5dc4d7d --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c @@@ -246,8 -245,7 +245,7 @@@ MACHINE_START(TS72XX, "Technologic Syst .atag_offset = 0x100, .map_io = ts72xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = ts72xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --cc arch/arm/mach-ep93xx/vision_ep9307.c index 8610ba293991,723d048176db..605956fd07a2 --- a/arch/arm/mach-ep93xx/vision_ep9307.c +++ b/arch/arm/mach-ep93xx/vision_ep9307.c @@@ -364,8 -363,7 +363,7 @@@ MACHINE_START(VISION_EP9307, "Vision En .atag_offset = 0x100, .map_io = vision_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &ep93xx_timer, + .init_time = ep93xx_timer_init, .init_machine = vision_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --cc arch/arm/mach-exynos/mach-armlex4210.c index 2f18130d0d10,a11a36fc7bf5..685f29173afa --- a/arch/arm/mach-exynos/mach-armlex4210.c +++ b/arch/arm/mach-exynos/mach-armlex4210.c @@@ -201,9 -200,8 +200,8 @@@ 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, + .init_time = exynos4_timer_init, .restart = exynos4_restart, MACHINE_END diff --cc arch/arm/mach-exynos/mach-exynos4-dt.c index 160030168b19,34c45b6c8b2c..112d10e53d20 --- a/arch/arm/mach-exynos/mach-exynos4-dt.c +++ b/arch/arm/mach-exynos/mach-exynos4-dt.c @@@ -107,10 -106,9 +106,9 @@@ DT_MACHINE_START(EXYNOS4210_DT, "Samsun .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, + .init_time = exynos4_timer_init, .dt_compat = exynos4_dt_compat, .restart = exynos4_restart, MACHINE_END diff --cc arch/arm/mach-exynos/mach-exynos5-dt.c index 4e074c67cc8b,3a3bee463c46..0deeecffa3ae --- a/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/arch/arm/mach-exynos/mach-exynos5-dt.c @@@ -179,10 -178,9 +178,9 @@@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG E .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, + .init_time = exynos4_timer_init, .dt_compat = exynos5_dt_compat, .restart = exynos5_restart, .reserve = exynos5_reserve, diff --cc arch/arm/mach-exynos/mach-nuri.c index dccd1d16b836,55f8183e1d6f..b8b3fbf0bae7 --- a/arch/arm/mach-exynos/mach-nuri.c +++ b/arch/arm/mach-exynos/mach-nuri.c @@@ -1379,10 -1378,9 +1378,9 @@@ 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, + .init_time = exynos4_timer_init, .reserve = &nuri_reserve, .restart = exynos4_restart, MACHINE_END diff --cc arch/arm/mach-exynos/mach-origen.c index 4e1156324562,45cda369923e..579d2d171daa --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c @@@ -814,10 -813,9 +813,9 @@@ MACHINE_START(ORIGEN, "ORIGEN" .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = origen_map_io, - .handle_irq = gic_handle_irq, .init_machine = origen_machine_init, .init_late = exynos_init_late, - .timer = &exynos4_timer, + .init_time = exynos4_timer_init, .reserve = &origen_reserve, .restart = exynos4_restart, MACHINE_END diff --cc arch/arm/mach-exynos/mach-smdk4x12.c index e9c9c2995f09,d5dbd51b26e3..fe6149624b84 --- a/arch/arm/mach-exynos/mach-smdk4x12.c +++ b/arch/arm/mach-exynos/mach-smdk4x12.c @@@ -376,9 -375,8 +375,8 @@@ MACHINE_START(SMDK4212, "SMDK4212" .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = smdk4x12_map_io, - .handle_irq = gic_handle_irq, .init_machine = smdk4x12_machine_init, - .timer = &exynos4_timer, + .init_time = exynos4_timer_init, .restart = exynos4_restart, .reserve = &smdk4x12_reserve, MACHINE_END @@@ -390,10 -388,9 +388,9 @@@ MACHINE_START(SMDK4412, "SMDK4412" .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = smdk4x12_map_io, - .handle_irq = gic_handle_irq, .init_machine = smdk4x12_machine_init, .init_late = exynos_init_late, - .timer = &exynos4_timer, + .init_time = exynos4_timer_init, .restart = exynos4_restart, .reserve = &smdk4x12_reserve, MACHINE_END diff --cc arch/arm/mach-exynos/mach-smdkv310.c index b228ab9bda0b,b095964f2989..d71672922b19 --- a/arch/arm/mach-exynos/mach-smdkv310.c +++ b/arch/arm/mach-exynos/mach-smdkv310.c @@@ -423,9 -422,8 +422,8 @@@ MACHINE_START(SMDKV310, "SMDKV310" .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = smdkv310_map_io, - .handle_irq = gic_handle_irq, .init_machine = smdkv310_machine_init, - .timer = &exynos4_timer, + .init_time = exynos4_timer_init, .reserve = &smdkv310_reserve, .restart = exynos4_restart, MACHINE_END @@@ -436,10 -434,9 +434,9 @@@ MACHINE_START(SMDKC210, "SMDKC210" .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = smdkv310_map_io, - .handle_irq = gic_handle_irq, .init_machine = smdkv310_machine_init, .init_late = exynos_init_late, - .timer = &exynos4_timer, + .init_time = exynos4_timer_init, .reserve = &smdkv310_reserve, .restart = exynos4_restart, MACHINE_END diff --cc arch/arm/mach-exynos/mach-universal_c210.c index 866f29a9beee,be3777587283..c9d33a43103e --- a/arch/arm/mach-exynos/mach-universal_c210.c +++ b/arch/arm/mach-exynos/mach-universal_c210.c @@@ -1151,10 -1150,9 +1150,9 @@@ MACHINE_START(UNIVERSAL_C210, "UNIVERSA .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = universal_map_io, - .handle_irq = gic_handle_irq, .init_machine = universal_machine_init, .init_late = exynos_init_late, - .timer = &s5p_timer, + .init_time = s5p_timer_init, .reserve = &universal_reserve, .restart = exynos4_restart, MACHINE_END diff --cc arch/arm/mach-highbank/highbank.c index 41e254cac1ac,f9191eacd0fc..fd630bccbd31 --- a/arch/arm/mach-highbank/highbank.c +++ b/arch/arm/mach-highbank/highbank.c @@@ -205,8 -203,7 +199,7 @@@ DT_MACHINE_START(HIGHBANK, "Highbank" .smp = smp_ops(highbank_smp_ops), .map_io = debug_ll_io_init, .init_irq = highbank_init_irq, - .timer = &highbank_timer, + .init_time = highbank_timer_init, - .handle_irq = gic_handle_irq, .init_machine = highbank_init, .dt_compat = highbank_match, .restart = highbank_restart, diff --cc arch/arm/mach-imx/mach-imx6q.c index cd277a0f5b16,724bfeb8f88b..8d3d06e0e8a1 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c @@@ -250,8 -249,7 +245,7 @@@ DT_MACHINE_START(IMX6Q, "Freescale i.MX .smp = smp_ops(imx_smp_ops), .map_io = imx6q_map_io, .init_irq = imx6q_init_irq, - .handle_irq = imx6q_handle_irq, - .timer = &imx6q_timer, + .init_time = imx6q_timer_init, .init_machine = imx6q_init_machine, .init_late = imx6q_init_late, .dt_compat = imx6q_dt_compat, diff --cc arch/arm/mach-msm/board-dt-8660.c index 27c41eabfd12,c111cec64338..7dcfc5300bbd --- a/arch/arm/mach-msm/board-dt-8660.c +++ b/arch/arm/mach-msm/board-dt-8660.c @@@ -55,10 -44,9 +44,9 @@@ static const char *msm8x60_fluid_match[ DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)") .smp = smp_ops(msm_smp_ops), .map_io = msm_map_msm8x60_io, - .init_irq = msm8x60_init_irq, - .handle_irq = gic_handle_irq, + .init_irq = irqchip_init, .init_machine = msm8x60_dt_init, .init_late = msm8x60_init_late, - .timer = &msm_dt_timer, + .init_time = msm_dt_timer_init, .dt_compat = msm8x60_fluid_match, MACHINE_END diff --cc arch/arm/mach-msm/board-dt-8960.c index 3226d5276962,fad0e5083e43..73019363ffa4 --- a/arch/arm/mach-msm/board-dt-8960.c +++ b/arch/arm/mach-msm/board-dt-8960.c @@@ -42,9 -31,8 +31,8 @@@ static const char * const msm8960_dt_ma DT_MACHINE_START(MSM8960_DT, "Qualcomm MSM (Flattened Device Tree)") .smp = smp_ops(msm_smp_ops), .map_io = msm_map_msm8960_io, - .init_irq = msm_dt_init_irq, + .init_irq = irqchip_init, - .timer = &msm_dt_timer, + .init_time = msm_dt_timer_init, .init_machine = msm_dt_init, .dt_compat = msm8960_dt_match, - .handle_irq = gic_handle_irq, MACHINE_END diff --cc arch/arm/mach-netx/nxdb500.c index 241e1b9c58cb,04d5e5eb6473..9b558eb3070f --- a/arch/arm/mach-netx/nxdb500.c +++ b/arch/arm/mach-netx/nxdb500.c @@@ -204,8 -203,7 +203,7 @@@ MACHINE_START(NXDB500, "Hilscher nxdb50 .atag_offset = 0x100, .map_io = netx_map_io, .init_irq = netx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &netx_timer, + .init_time = netx_timer_init, .init_machine = nxdb500_init, .restart = netx_restart, MACHINE_END diff --cc arch/arm/mach-netx/nxdkn.c index 055aeecedde2,cf15bdd50f6f..a5e86cd365e7 --- a/arch/arm/mach-netx/nxdkn.c +++ b/arch/arm/mach-netx/nxdkn.c @@@ -97,8 -96,7 +96,7 @@@ MACHINE_START(NXDKN, "Hilscher nxdkn" .atag_offset = 0x100, .map_io = netx_map_io, .init_irq = netx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &netx_timer, + .init_time = netx_timer_init, .init_machine = nxdkn_init, .restart = netx_restart, MACHINE_END diff --cc arch/arm/mach-netx/nxeb500hmi.c index 018e91c55b00,069bd26e1b72..ad17885d0159 --- a/arch/arm/mach-netx/nxeb500hmi.c +++ b/arch/arm/mach-netx/nxeb500hmi.c @@@ -181,8 -180,7 +180,7 @@@ MACHINE_START(NXEB500HMI, "Hilscher nxe .atag_offset = 0x100, .map_io = netx_map_io, .init_irq = netx_init_irq, - .handle_irq = vic_handle_irq, - .timer = &netx_timer, + .init_time = netx_timer_init, .init_machine = nxeb500hmi_init, .restart = netx_restart, MACHINE_END diff --cc arch/arm/mach-nomadik/board-nhk8815.c index c9015ba647a2,5748df0d725a..aaed48d94374 --- a/arch/arm/mach-nomadik/board-nhk8815.c +++ b/arch/arm/mach-nomadik/board-nhk8815.c @@@ -348,8 -351,7 +347,7 @@@ MACHINE_START(NOMADIK, "NHK8815" .atag_offset = 0x100, .map_io = cpu8815_map_io, .init_irq = cpu8815_init_irq, - .handle_irq = vic_handle_irq, - .timer = &nomadik_timer, + .init_time = nomadik_timer_init, .init_machine = nhk8815_platform_init, .restart = cpu8815_restart, MACHINE_END diff --cc arch/arm/mach-omap2/board-4430sdp.c index f5d5f5941d7d,cb43253dfa86..f8eeef40efe8 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c @@@ -722,9 -722,8 +722,8 @@@ MACHINE_START(OMAP_4430SDP, "OMAP4430 4 .map_io = omap4_map_io, .init_early = omap4430_init_early, .init_irq = gic_init_irq, - .handle_irq = gic_handle_irq, .init_machine = omap_4430sdp_init, .init_late = omap4430_init_late, - .timer = &omap4_timer, + .init_time = omap4_local_timer_init, .restart = omap44xx_restart, MACHINE_END diff --cc arch/arm/mach-omap2/board-generic.c index 8a5f814613c6,73be86852f6a..2590463e4b57 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c @@@ -156,10 -155,9 +155,9 @@@ DT_MACHINE_START(OMAP4_DT, "Generic OMA .map_io = omap4_map_io, .init_early = omap4430_init_early, .init_irq = omap_gic_of_init, - .handle_irq = gic_handle_irq, .init_machine = omap_generic_init, .init_late = omap4430_init_late, - .timer = &omap4_timer, + .init_time = omap4_local_timer_init, .dt_compat = omap4_boards_compat, .restart = omap44xx_restart, MACHINE_END @@@ -177,9 -175,8 +175,8 @@@ DT_MACHINE_START(OMAP5_DT, "Generic OMA .map_io = omap5_map_io, .init_early = omap5_init_early, .init_irq = omap_gic_of_init, - .handle_irq = gic_handle_irq, .init_machine = omap_generic_init, - .timer = &omap5_timer, + .init_time = omap5_realtime_timer_init, .dt_compat = omap5_boards_compat, .restart = omap44xx_restart, MACHINE_END diff --cc arch/arm/mach-omap2/board-omap4panda.c index ed8240c1a9b9,37495bc9a59c..22838fa44a60 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@@ -453,9 -453,8 +453,8 @@@ MACHINE_START(OMAP4_PANDA, "OMAP4 Pand .map_io = omap4_map_io, .init_early = omap4430_init_early, .init_irq = gic_init_irq, - .handle_irq = gic_handle_irq, .init_machine = omap4_panda_init, .init_late = omap4430_init_late, - .timer = &omap4_timer, + .init_time = omap4_local_timer_init, .restart = omap44xx_restart, MACHINE_END diff --cc arch/arm/mach-picoxcell/common.c index 518c59bdbcda,35ee21443f03..70b441ad1d18 --- a/arch/arm/mach-picoxcell/common.c +++ b/arch/arm/mach-picoxcell/common.c @@@ -97,9 -87,8 +87,8 @@@ static void picoxcell_wdt_restart(char DT_MACHINE_START(PICOXCELL, "Picochip picoXcell") .map_io = picoxcell_map_io, .nr_irqs = NR_IRQS_LEGACY, - .init_irq = picoxcell_init_irq, - .handle_irq = vic_handle_irq, + .init_irq = irqchip_init, - .timer = &dw_apb_timer, + .init_time = dw_apb_timer_init, .init_machine = picoxcell_init_machine, .dt_compat = picoxcell_dt_match, .restart = picoxcell_wdt_restart, diff --cc arch/arm/mach-realview/realview_eb.c index f892862fd6ae,728587c60770..5b1c8bfe6fa9 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c @@@ -468,8 -472,7 +468,7 @@@ MACHINE_START(REALVIEW_EB, "ARM-RealVie .map_io = realview_eb_map_io, .init_early = realview_init_early, .init_irq = gic_init_irq, - .timer = &realview_eb_timer, + .init_time = realview_eb_timer_init, - .handle_irq = gic_handle_irq, .init_machine = realview_eb_init, #ifdef CONFIG_ZONE_DMA .dma_zone_size = SZ_256M, diff --cc arch/arm/mach-realview/realview_pb1176.c index 6a4524b93fc6,3d116c44c0d4..d5e83a1f6982 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c @@@ -380,8 -384,7 +380,7 @@@ MACHINE_START(REALVIEW_PB1176, "ARM-Rea .map_io = realview_pb1176_map_io, .init_early = realview_init_early, .init_irq = gic_init_irq, - .timer = &realview_pb1176_timer, + .init_time = realview_pb1176_timer_init, - .handle_irq = gic_handle_irq, .init_machine = realview_pb1176_init, #ifdef CONFIG_ZONE_DMA .dma_zone_size = SZ_256M, diff --cc arch/arm/mach-realview/realview_pb11mp.c index 502f6e6c6913,e1b8efdf35b6..c3cfe213b5e6 --- a/arch/arm/mach-realview/realview_pb11mp.c +++ b/arch/arm/mach-realview/realview_pb11mp.c @@@ -363,8 -367,7 +363,7 @@@ MACHINE_START(REALVIEW_PB11MP, "ARM-Rea .map_io = realview_pb11mp_map_io, .init_early = realview_init_early, .init_irq = gic_init_irq, - .timer = &realview_pb11mp_timer, + .init_time = realview_pb11mp_timer_init, - .handle_irq = gic_handle_irq, .init_machine = realview_pb11mp_init, #ifdef CONFIG_ZONE_DMA .dma_zone_size = SZ_256M, diff --cc arch/arm/mach-realview/realview_pba8.c index 85c81aaa05e8,0b037f23b0f6..dde652a59620 --- a/arch/arm/mach-realview/realview_pba8.c +++ b/arch/arm/mach-realview/realview_pba8.c @@@ -304,8 -308,7 +304,7 @@@ MACHINE_START(REALVIEW_PBA8, "ARM-RealV .map_io = realview_pba8_map_io, .init_early = realview_init_early, .init_irq = gic_init_irq, - .timer = &realview_pba8_timer, + .init_time = realview_pba8_timer_init, - .handle_irq = gic_handle_irq, .init_machine = realview_pba8_init, #ifdef CONFIG_ZONE_DMA .dma_zone_size = SZ_256M, diff --cc arch/arm/mach-realview/realview_pbx.c index a15a7b0be29b,a1f1ef557c67..54f0185b01e3 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c @@@ -400,8 -404,7 +400,7 @@@ MACHINE_START(REALVIEW_PBX, "ARM-RealVi .map_io = realview_pbx_map_io, .init_early = realview_init_early, .init_irq = gic_init_irq, - .timer = &realview_pbx_timer, + .init_time = realview_pbx_timer_init, - .handle_irq = gic_handle_irq, .init_machine = realview_pbx_init, #ifdef CONFIG_ZONE_DMA .dma_zone_size = SZ_256M, diff --cc arch/arm/mach-s5p64x0/mach-smdk6440.c index 0a3146dc081a,e2419296a9e2..a40d5eb38124 --- a/arch/arm/mach-s5p64x0/mach-smdk6440.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c @@@ -272,9 -271,8 +271,8 @@@ MACHINE_START(SMDK6440, "SMDK6440" .atag_offset = 0x100, .init_irq = s5p6440_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdk6440_map_io, .init_machine = smdk6440_machine_init, - .timer = &s5p_timer, + .init_time = s5p_timer_init, .restart = s5p64x0_restart, MACHINE_END diff --cc arch/arm/mach-s5p64x0/mach-smdk6450.c index 36917f2ea25a,999273107fa9..703e576a26e0 --- a/arch/arm/mach-s5p64x0/mach-smdk6450.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6450.c @@@ -291,9 -290,8 +290,8 @@@ MACHINE_START(SMDK6450, "SMDK6450" .atag_offset = 0x100, .init_irq = s5p6450_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdk6450_map_io, .init_machine = smdk6450_machine_init, - .timer = &s5p_timer, + .init_time = s5p_timer_init, .restart = s5p64x0_restart, MACHINE_END diff --cc arch/arm/mach-s5pc100/mach-smdkc100.c index 39a9197d1746,c3f30953df21..185a19583898 --- a/arch/arm/mach-s5pc100/mach-smdkc100.c +++ b/arch/arm/mach-s5pc100/mach-smdkc100.c @@@ -254,9 -253,8 +253,8 @@@ MACHINE_START(SMDKC100, "SMDKC100" /* Maintainer: Byungho Min */ .atag_offset = 0x100, .init_irq = s5pc100_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdkc100_map_io, .init_machine = smdkc100_machine_init, - .timer = &s3c24xx_timer, + .init_time = s3c24xx_timer_init, .restart = s5pc100_restart, MACHINE_END diff --cc arch/arm/mach-s5pv210/mach-aquila.c index 1fb44a5ebb83,45eb0a8244c4..11900a8e88a3 --- a/arch/arm/mach-s5pv210/mach-aquila.c +++ b/arch/arm/mach-s5pv210/mach-aquila.c @@@ -685,9 -684,8 +684,8 @@@ MACHINE_START(AQUILA, "Aquila" Kyungmin Park */ .atag_offset = 0x100, .init_irq = s5pv210_init_irq, - .handle_irq = vic_handle_irq, .map_io = aquila_map_io, .init_machine = aquila_machine_init, - .timer = &s5p_timer, + .init_time = s5p_timer_init, .restart = s5pv210_restart, MACHINE_END diff --cc arch/arm/mach-s5pv210/mach-goni.c index ababdca2b3e4,9f7f1607c547..570481591746 --- a/arch/arm/mach-s5pv210/mach-goni.c +++ b/arch/arm/mach-s5pv210/mach-goni.c @@@ -972,10 -971,9 +971,9 @@@ MACHINE_START(GONI, "GONI" /* Maintainers: Kyungmin Park */ .atag_offset = 0x100, .init_irq = s5pv210_init_irq, - .handle_irq = vic_handle_irq, .map_io = goni_map_io, .init_machine = goni_machine_init, - .timer = &s5p_timer, + .init_time = s5p_timer_init, .reserve = &goni_reserve, .restart = s5pv210_restart, MACHINE_END diff --cc arch/arm/mach-s5pv210/mach-smdkc110.c index acfb0ebce13b,2f152f919769..28bd0248a3e2 --- a/arch/arm/mach-s5pv210/mach-smdkc110.c +++ b/arch/arm/mach-s5pv210/mach-smdkc110.c @@@ -152,10 -151,9 +151,9 @@@ MACHINE_START(SMDKC110, "SMDKC110" /* Maintainer: Kukjin Kim */ .atag_offset = 0x100, .init_irq = s5pv210_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdkc110_map_io, .init_machine = smdkc110_machine_init, - .timer = &s5p_timer, + .init_time = s5p_timer_init, .restart = s5pv210_restart, .reserve = &smdkc110_reserve, MACHINE_END diff --cc arch/arm/mach-s5pv210/mach-smdkv210.c index e1d820f3b426,721967bc3927..3c73f36869bb --- a/arch/arm/mach-s5pv210/mach-smdkv210.c +++ b/arch/arm/mach-s5pv210/mach-smdkv210.c @@@ -328,10 -327,9 +327,9 @@@ MACHINE_START(SMDKV210, "SMDKV210" /* Maintainer: Kukjin Kim */ .atag_offset = 0x100, .init_irq = s5pv210_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdkv210_map_io, .init_machine = smdkv210_machine_init, - .timer = &s5p_timer, + .init_time = s5p_timer_init, .restart = s5pv210_restart, .reserve = &smdkv210_reserve, MACHINE_END diff --cc arch/arm/mach-s5pv210/mach-torbreck.c index 1e6fc6eccdf3,0ed270f8b0a8..2d4c5531819c --- a/arch/arm/mach-s5pv210/mach-torbreck.c +++ b/arch/arm/mach-s5pv210/mach-torbreck.c @@@ -129,9 -128,8 +128,8 @@@ MACHINE_START(TORBRECK, "TORBRECK" /* Maintainer: Hyunchul Ko */ .atag_offset = 0x100, .init_irq = s5pv210_init_irq, - .handle_irq = vic_handle_irq, .map_io = torbreck_map_io, .init_machine = torbreck_machine_init, - .timer = &s5p_timer, + .init_time = s5p_timer_init, .restart = s5pv210_restart, MACHINE_END diff --cc arch/arm/mach-shmobile/board-ag5evm.c index d81a66362b7c,fd28358e2abe..705bc63c7984 --- a/arch/arm/mach-shmobile/board-ag5evm.c +++ b/arch/arm/mach-shmobile/board-ag5evm.c @@@ -668,8 -668,7 +668,7 @@@ MACHINE_START(AG5EVM, "ag5evm" .init_early = sh73a0_add_early_devices, .nr_irqs = NR_IRQS_LEGACY, .init_irq = sh73a0_init_irq, - .handle_irq = gic_handle_irq, .init_machine = ag5evm_init, .init_late = shmobile_init_late, - .timer = &shmobile_timer, + .init_time = sh73a0_earlytimer_init, MACHINE_END diff --cc arch/arm/mach-shmobile/board-kota2.c index 2f24994f2ef8,a1d315fc329a..d759a9c2b9e8 --- a/arch/arm/mach-shmobile/board-kota2.c +++ b/arch/arm/mach-shmobile/board-kota2.c @@@ -550,8 -550,7 +550,7 @@@ MACHINE_START(KOTA2, "kota2" .init_early = sh73a0_add_early_devices, .nr_irqs = NR_IRQS_LEGACY, .init_irq = sh73a0_init_irq, - .handle_irq = gic_handle_irq, .init_machine = kota2_init, .init_late = shmobile_init_late, - .timer = &shmobile_timer, + .init_time = sh73a0_earlytimer_init, MACHINE_END diff --cc arch/arm/mach-shmobile/board-kzm9d.c index 59be864f5992,f3f180dc23e5..c254782aa727 --- a/arch/arm/mach-shmobile/board-kzm9d.c +++ b/arch/arm/mach-shmobile/board-kzm9d.c @@@ -89,9 -88,8 +88,8 @@@ DT_MACHINE_START(KZM9D_DT, "kzm9d" .init_early = emev2_add_early_devices, .nr_irqs = NR_IRQS_LEGACY, .init_irq = emev2_init_irq, - .handle_irq = gic_handle_irq, .init_machine = kzm9d_add_standard_devices, .init_late = shmobile_init_late, - .timer = &shmobile_timer, + .init_time = shmobile_timer_init, .dt_compat = kzm9d_boards_compat_dt, MACHINE_END diff --cc arch/arm/mach-shmobile/board-kzm9g.c index adb23ef51121,278c8f26f22e..ac9428530d7b --- a/arch/arm/mach-shmobile/board-kzm9g.c +++ b/arch/arm/mach-shmobile/board-kzm9g.c @@@ -792,10 -792,9 +792,9 @@@ DT_MACHINE_START(KZM9G_DT, "kzm9g" .init_early = sh73a0_add_early_devices, .nr_irqs = NR_IRQS_LEGACY, .init_irq = sh73a0_init_irq, - .handle_irq = gic_handle_irq, .init_machine = kzm_init, .init_late = shmobile_init_late, - .timer = &shmobile_timer, + .init_time = sh73a0_earlytimer_init, .restart = kzm9g_restart, .dt_compat = kzm9g_boards_compat_dt, MACHINE_END diff --cc arch/arm/mach-shmobile/board-marzen.c index ca45a0c50afe,fad8db103e9c..cdcb799e802f --- a/arch/arm/mach-shmobile/board-marzen.c +++ b/arch/arm/mach-shmobile/board-marzen.c @@@ -382,8 -381,7 +381,7 @@@ MACHINE_START(MARZEN, "marzen" .init_early = r8a7779_add_early_devices, .nr_irqs = NR_IRQS_LEGACY, .init_irq = r8a7779_init_irq, - .handle_irq = gic_handle_irq, .init_machine = marzen_init, .init_late = marzen_init_late, - .timer = &shmobile_timer, + .init_time = r8a7779_earlytimer_init, MACHINE_END diff --cc arch/arm/mach-shmobile/setup-emev2.c index ea61cb657ac3,646d61b22153..47662a581c0a --- a/arch/arm/mach-shmobile/setup-emev2.c +++ b/arch/arm/mach-shmobile/setup-emev2.c @@@ -464,10 -454,9 +454,9 @@@ DT_MACHINE_START(EMEV2_DT, "Generic Emm .smp = smp_ops(emev2_smp_ops), .init_early = emev2_init_delay, .nr_irqs = NR_IRQS_LEGACY, - .init_irq = emev2_init_irq_dt, - .handle_irq = gic_handle_irq, + .init_irq = irqchip_init, .init_machine = emev2_add_standard_devices_dt, - .timer = &shmobile_timer, + .init_time = shmobile_timer_init, .dt_compat = emev2_boards_compat_dt, MACHINE_END diff --cc arch/arm/mach-socfpga/socfpga.c index b54baea5f809,7d55febf2368..27d68468a027 --- a/arch/arm/mach-socfpga/socfpga.c +++ b/arch/arm/mach-socfpga/socfpga.c @@@ -105,9 -100,8 +100,8 @@@ static const char *altera_dt_match[] = DT_MACHINE_START(SOCFPGA, "Altera SOCFPGA") .smp = smp_ops(socfpga_smp_ops), .map_io = socfpga_map_io, - .init_irq = gic_init_irq, - .handle_irq = gic_handle_irq, + .init_irq = socfpga_init_irq, - .timer = &dw_apb_timer, + .init_time = dw_apb_timer_init, .init_machine = socfpga_cyclone5_init, .restart = socfpga_cyclone5_restart, .dt_compat = altera_dt_match, diff --cc arch/arm/mach-spear13xx/spear1310.c index e77d05d48082,5de3e6f24aad..56214d1076ef --- a/arch/arm/mach-spear13xx/spear1310.c +++ b/arch/arm/mach-spear13xx/spear1310.c @@@ -90,9 -90,8 +90,8 @@@ static void __init spear1310_map_io(voi DT_MACHINE_START(SPEAR1310_DT, "ST SPEAr1310 SoC with Flattened Device Tree") .smp = smp_ops(spear13xx_smp_ops), .map_io = spear1310_map_io, - .init_irq = spear13xx_dt_init_irq, - .handle_irq = gic_handle_irq, + .init_irq = irqchip_init, - .timer = &spear13xx_timer, + .init_time = spear13xx_timer_init, .init_machine = spear1310_dt_init, .restart = spear_restart, .dt_compat = spear1310_dt_board_compat, diff --cc arch/arm/mach-spear13xx/spear1340.c index ebc254779069,18331deaed76..9a28beb2a113 --- a/arch/arm/mach-spear13xx/spear1340.c +++ b/arch/arm/mach-spear13xx/spear1340.c @@@ -184,9 -184,8 +184,8 @@@ static const char * const spear1340_dt_ DT_MACHINE_START(SPEAR1340_DT, "ST SPEAr1340 SoC with Flattened Device Tree") .smp = smp_ops(spear13xx_smp_ops), .map_io = spear13xx_map_io, - .init_irq = spear13xx_dt_init_irq, - .handle_irq = gic_handle_irq, + .init_irq = irqchip_init, - .timer = &spear13xx_timer, + .init_time = spear13xx_timer_init, .init_machine = spear1340_dt_init, .restart = spear_restart, .dt_compat = spear1340_dt_board_compat, diff --cc arch/arm/mach-spear13xx/spear13xx.c index 7f7acf775f07,22e3cd57e750..c7d2b4a8d8cc --- a/arch/arm/mach-spear13xx/spear13xx.c +++ b/arch/arm/mach-spear13xx/spear13xx.c @@@ -182,13 -181,7 +181,3 @@@ void __init spear13xx_timer_init(void spear_setup_of_timer(); twd_local_timer_of_register(); } -- - static const struct of_device_id gic_of_match[] __initconst = { - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init }, - { /* Sentinel */ } -struct sys_timer spear13xx_timer = { - .init = spear13xx_timer_init, --}; - - void __init spear13xx_dt_init_irq(void) - { - of_irq_init(gic_of_match); - } diff --cc arch/arm/mach-spear3xx/spear300.c index 2630efa93f5e,499479bbbaf9..bbc9b7e9c62c --- a/arch/arm/mach-spear3xx/spear300.c +++ b/arch/arm/mach-spear3xx/spear300.c @@@ -212,9 -212,8 +212,8 @@@ static void __init spear300_map_io(void DT_MACHINE_START(SPEAR300_DT, "ST SPEAr300 SoC with Flattened Device Tree") .map_io = spear300_map_io, - .init_irq = spear3xx_dt_init_irq, - .handle_irq = vic_handle_irq, + .init_irq = irqchip_init, - .timer = &spear3xx_timer, + .init_time = spear3xx_timer_init, .init_machine = spear300_dt_init, .restart = spear_restart, .dt_compat = spear300_dt_board_compat, diff --cc arch/arm/mach-spear3xx/spear310.c index b6147eaebcde,367d9be40ec1..c13a434a8195 --- a/arch/arm/mach-spear3xx/spear310.c +++ b/arch/arm/mach-spear3xx/spear310.c @@@ -254,9 -254,8 +254,8 @@@ static void __init spear310_map_io(void DT_MACHINE_START(SPEAR310_DT, "ST SPEAr310 SoC with Flattened Device Tree") .map_io = spear310_map_io, - .init_irq = spear3xx_dt_init_irq, - .handle_irq = vic_handle_irq, + .init_irq = irqchip_init, - .timer = &spear3xx_timer, + .init_time = spear3xx_timer_init, .init_machine = spear310_dt_init, .restart = spear_restart, .dt_compat = spear310_dt_board_compat, diff --cc arch/arm/mach-spear3xx/spear320.c index 53160f713afe,34c212e6cbf6..e1c77079a3e5 --- a/arch/arm/mach-spear3xx/spear320.c +++ b/arch/arm/mach-spear3xx/spear320.c @@@ -268,9 -268,8 +268,8 @@@ static void __init spear320_map_io(void DT_MACHINE_START(SPEAR320_DT, "ST SPEAr320 SoC with Flattened Device Tree") .map_io = spear320_map_io, - .init_irq = spear3xx_dt_init_irq, - .handle_irq = vic_handle_irq, + .init_irq = irqchip_init, - .timer = &spear3xx_timer, + .init_time = spear3xx_timer_init, .init_machine = spear320_dt_init, .restart = spear_restart, .dt_compat = spear320_dt_board_compat, diff --cc arch/arm/mach-spear3xx/spear3xx.c index 89f4c58908e3,c6003ef0c9f6..b2ba516ca2d4 --- a/arch/arm/mach-spear3xx/spear3xx.c +++ b/arch/arm/mach-spear3xx/spear3xx.c @@@ -115,16 -112,7 +112,3 @@@ void __init spear3xx_timer_init(void spear_setup_of_timer(); } -- - static const struct of_device_id vic_of_match[] __initconst = { - { .compatible = "arm,pl190-vic", .data = vic_of_init, }, - { .compatible = "st,spear300-shirq", .data = spear300_shirq_of_init, }, - { .compatible = "st,spear310-shirq", .data = spear310_shirq_of_init, }, - { .compatible = "st,spear320-shirq", .data = spear320_shirq_of_init, }, - { /* Sentinel */ } -struct sys_timer spear3xx_timer = { - .init = spear3xx_timer_init, --}; - - void __init spear3xx_dt_init_irq(void) - { - of_irq_init(vic_of_match); - } diff --cc arch/arm/mach-spear6xx/spear6xx.c index 1f85bc07c6cb,3f6fac0fdb71..b8bd33ca88bd --- a/arch/arm/mach-spear6xx/spear6xx.c +++ b/arch/arm/mach-spear6xx/spear6xx.c @@@ -421,21 -424,10 +420,10 @@@ static const char *spear600_dt_board_co NULL }; - static const struct of_device_id vic_of_match[] __initconst = { - { .compatible = "arm,pl190-vic", .data = vic_of_init, }, - { /* Sentinel */ } - }; - - static void __init spear6xx_dt_init_irq(void) - { - of_irq_init(vic_of_match); - } - DT_MACHINE_START(SPEAR600_DT, "ST SPEAr600 (Flattened Device Tree)") .map_io = spear6xx_map_io, - .init_irq = spear6xx_dt_init_irq, - .handle_irq = vic_handle_irq, + .init_irq = irqchip_init, - .timer = &spear6xx_timer, + .init_time = spear6xx_timer_init, .init_machine = spear600_dt_init, .restart = spear_restart, .dt_compat = spear600_dt_board_compat, diff --cc arch/arm/mach-tegra/board-dt-tegra20.c index 3b9956aabf5a,04008c818535..5ed81bab2d4b --- a/arch/arm/mach-tegra/board-dt-tegra20.c +++ b/arch/arm/mach-tegra/board-dt-tegra20.c @@@ -202,8 -200,7 +200,7 @@@ DT_MACHINE_START(TEGRA_DT, "nVidia Tegr .smp = smp_ops(tegra_smp_ops), .init_early = tegra20_init_early, .init_irq = tegra_dt_init_irq, - .handle_irq = gic_handle_irq, - .timer = &tegra_sys_timer, + .init_time = tegra_init_timer, .init_machine = tegra_dt_init, .init_late = tegra_dt_init_late, .restart = tegra_assert_system_reset, diff --cc arch/arm/mach-tegra/board-dt-tegra30.c index 381b2f25f0b4,672db8abdc38..12dc2ddeca64 --- a/arch/arm/mach-tegra/board-dt-tegra30.c +++ b/arch/arm/mach-tegra/board-dt-tegra30.c @@@ -112,8 -111,7 +111,7 @@@ DT_MACHINE_START(TEGRA30_DT, "NVIDIA Te .map_io = tegra_map_common_io, .init_early = tegra30_init_early, .init_irq = tegra_dt_init_irq, - .handle_irq = gic_handle_irq, - .timer = &tegra_sys_timer, + .init_time = tegra_init_timer, .init_machine = tegra30_dt_init, .init_late = tegra_init_late, .restart = tegra_assert_system_reset, diff --cc arch/arm/mach-u300/core.c index 100a8b764dad,26b48fa9ea62..12060ae4e8f1 --- a/arch/arm/mach-u300/core.c +++ b/arch/arm/mach-u300/core.c @@@ -1779,8 -1779,7 +1779,7 @@@ MACHINE_START(U300, "Ericsson AB U335 S .map_io = u300_map_io, .nr_irqs = 0, .init_irq = u300_init_irq, - .handle_irq = vic_handle_irq, - .timer = &u300_timer, + .init_time = u300_timer_init, .init_machine = u300_init_machine, .restart = u300_restart, MACHINE_END diff --cc arch/arm/mach-ux500/board-mop500.c index e1dfa24b4fb9,af406c7b0d70..0e928d281759 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c @@@ -751,8 -750,7 +750,7 @@@ MACHINE_START(U8500, "ST-Ericsson MOP50 .map_io = u8500_map_io, .init_irq = ux500_init_irq, /* we re-use nomadik timer here */ - .timer = &ux500_timer, + .init_time = ux500_timer_init, - .handle_irq = gic_handle_irq, .init_machine = mop500_init_machine, .init_late = ux500_init_late, MACHINE_END @@@ -761,8 -759,7 +759,7 @@@ MACHINE_START(U8520, "ST-Ericsson U852 .atag_offset = 0x100, .map_io = u8500_map_io, .init_irq = ux500_init_irq, - .timer = &ux500_timer, + .init_time = ux500_timer_init, - .handle_irq = gic_handle_irq, .init_machine = mop500_init_machine, .init_late = ux500_init_late, MACHINE_END @@@ -772,8 -769,7 +769,7 @@@ MACHINE_START(HREFV60, "ST-Ericsson U85 .smp = smp_ops(ux500_smp_ops), .map_io = u8500_map_io, .init_irq = ux500_init_irq, - .timer = &ux500_timer, + .init_time = ux500_timer_init, - .handle_irq = gic_handle_irq, .init_machine = hrefv60_init_machine, .init_late = ux500_init_late, MACHINE_END @@@ -784,8 -780,7 +780,7 @@@ MACHINE_START(SNOWBALL, "Calao Systems .map_io = u8500_map_io, .init_irq = ux500_init_irq, /* we re-use nomadik timer here */ - .timer = &ux500_timer, + .init_time = ux500_timer_init, - .handle_irq = gic_handle_irq, .init_machine = snowball_init_machine, .init_late = NULL, MACHINE_END diff --cc arch/arm/mach-ux500/cpu-db8500.c index c1fb38b5ed97,4c91d767c99c..218a6b1ada7e --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c @@@ -341,8 -340,7 +340,7 @@@ DT_MACHINE_START(U8500_DT, "ST-Ericsso .map_io = u8500_map_io, .init_irq = ux500_init_irq, /* we re-use nomadik timer here */ - .timer = &ux500_timer, + .init_time = ux500_timer_init, - .handle_irq = gic_handle_irq, .init_machine = u8500_init_machine, .init_late = NULL, .dt_compat = stericsson_dt_platform_compat, diff --cc arch/arm/mach-versatile/versatile_ab.c index 187c1da2c4bb,ddeec670d50d..1caef1093793 --- a/arch/arm/mach-versatile/versatile_ab.c +++ b/arch/arm/mach-versatile/versatile_ab.c @@@ -39,8 -38,7 +38,7 @@@ MACHINE_START(VERSATILE_AB, "ARM-Versat .map_io = versatile_map_io, .init_early = versatile_init_early, .init_irq = versatile_init_irq, - .handle_irq = vic_handle_irq, - .timer = &versatile_timer, + .init_time = versatile_timer_init, .init_machine = versatile_init, .restart = versatile_restart, MACHINE_END diff --cc arch/arm/mach-versatile/versatile_dt.c index ccf9f8a92067,f48f2e4b667d..2558f2e957c3 --- a/arch/arm/mach-versatile/versatile_dt.c +++ b/arch/arm/mach-versatile/versatile_dt.c @@@ -46,8 -45,7 +45,7 @@@ DT_MACHINE_START(VERSATILE_PB, "ARM-Ver .map_io = versatile_map_io, .init_early = versatile_init_early, .init_irq = versatile_init_irq, - .handle_irq = vic_handle_irq, - .timer = &versatile_timer, + .init_time = versatile_timer_init, .init_machine = versatile_dt_init, .dt_compat = versatile_dt_match, .restart = versatile_restart, diff --cc arch/arm/mach-versatile/versatile_pb.c index 1cabc0aa569d,e52eb23a0a28..611d140c8695 --- a/arch/arm/mach-versatile/versatile_pb.c +++ b/arch/arm/mach-versatile/versatile_pb.c @@@ -107,8 -106,7 +106,7 @@@ MACHINE_START(VERSATILE_PB, "ARM-Versat .map_io = versatile_map_io, .init_early = versatile_init_early, .init_irq = versatile_init_irq, - .handle_irq = vic_handle_irq, - .timer = &versatile_timer, + .init_time = versatile_timer_init, .init_machine = versatile_pb_init, .restart = versatile_restart, MACHINE_END diff --cc arch/arm/mach-vexpress/v2m.c index 08bd548ef144,82be02b3ae28..915683cb67d6 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c @@@ -372,8 -376,7 +372,7 @@@ MACHINE_START(VEXPRESS, "ARM-Versatile .map_io = v2m_map_io, .init_early = v2m_init_early, .init_irq = v2m_init_irq, - .timer = &v2m_timer, + .init_time = v2m_timer_init, - .handle_irq = gic_handle_irq, .init_machine = v2m_init, .restart = vexpress_restart, MACHINE_END @@@ -489,9 -486,8 +478,8 @@@ DT_MACHINE_START(VEXPRESS_DT, "ARM-Vers .smp = smp_ops(vexpress_smp_ops), .map_io = v2m_dt_map_io, .init_early = v2m_dt_init_early, - .init_irq = v2m_dt_init_irq, + .init_irq = irqchip_init, - .timer = &v2m_dt_timer, + .init_time = v2m_dt_timer_init, .init_machine = v2m_dt_init, - .handle_irq = gic_handle_irq, .restart = vexpress_restart, MACHINE_END diff --cc arch/arm/mach-zynq/common.c index 2ae4bce652b6,2d96745dd9ad..6472a69cbfe1 --- a/arch/arm/mach-zynq/common.c +++ b/arch/arm/mach-zynq/common.c @@@ -110,9 -103,8 +96,8 @@@ static const char *xilinx_dt_match[] = MACHINE_START(XILINX_EP107, "Xilinx Zynq Platform") .map_io = xilinx_map_io, - .init_irq = xilinx_irq_init, - .handle_irq = gic_handle_irq, + .init_irq = irqchip_init, .init_machine = xilinx_init_machine, - .timer = &xttcpss_sys_timer, + .init_time = xilinx_zynq_timer_init, .dt_compat = xilinx_dt_match, MACHINE_END diff --cc include/asm-generic/vmlinux.lds.h index 1e744c5a0ffe,c80c599897b9..fc62ac5c6d4f --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@@ -149,15 -149,16 +149,25 @@@ #define TRACE_SYSCALLS() #endif +#ifdef CONFIG_CLKSRC_OF +#define CLKSRC_OF_TABLES() . = ALIGN(8); \ + VMLINUX_SYMBOL(__clksrc_of_table) = .; \ + *(__clksrc_of_table) \ + *(__clksrc_of_table_end) +#else +#define CLKSRC_OF_TABLES() +#endif + + #ifdef CONFIG_IRQCHIP + #define IRQCHIP_OF_MATCH_TABLE() \ + . = ALIGN(8); \ + VMLINUX_SYMBOL(__irqchip_begin) = .; \ + *(__irqchip_of_table) \ + *(__irqchip_of_end) + #else + #define IRQCHIP_OF_MATCH_TABLE() + #endif + #define KERNEL_DTB() \ STRUCT_ALIGN(); \ VMLINUX_SYMBOL(__dtb_start) = .; \ @@@ -501,8 -502,8 +511,9 @@@ DEV_DISCARD(init.rodata) \ CPU_DISCARD(init.rodata) \ MEM_DISCARD(init.rodata) \ + CLKSRC_OF_TABLES() \ - KERNEL_DTB() + KERNEL_DTB() \ + IRQCHIP_OF_MATCH_TABLE() #define INIT_TEXT \ *(.init.text) \