From: Simon Horman Date: Thu, 24 Jan 2013 08:57:20 +0000 (+0900) Subject: Merge remote-tracking branches 'arm-soc/irqchip/gic-vic-move' and 'arm-soc/timer... X-Git-Tag: v3.9-rc1~118^2~2^2~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6265b0f325eed54558b35769aecb1d79423295c7;p=platform%2Fkernel%2Flinux-stable.git Merge remote-tracking branches 'arm-soc/irqchip/gic-vic-move' and 'arm-soc/timer/cleanup' into soc 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 --- 6265b0f325eed54558b35769aecb1d79423295c7 diff --cc arch/arm/mach-bcm/board_bcm.c index 5c920bd,3df6803..23ed015 --- a/arch/arm/mach-bcm/board_bcm.c +++ b/arch/arm/mach-bcm/board_bcm.c @@@ -24,10 -31,11 +24,6 @@@ static void timer_init(void { } - 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, @@@ -37,8 -45,9 +33,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 26f36d7,3c86f91..a71867e --- a/arch/arm/mach-cns3xxx/cns3420vb.c +++ b/arch/arm/mach-cns3xxx/cns3420vb.c @@@ -249,7 -250,8 +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 19332bf,82d9c78..bda6c3a --- a/arch/arm/mach-ep93xx/adssphere.c +++ b/arch/arm/mach-ep93xx/adssphere.c @@@ -38,7 -39,8 +38,7 @@@ MACHINE_START(ADSSPHERE, "ADS Sphere bo .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .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 5abf2cb,ac26051..27b14ae --- a/arch/arm/mach-ep93xx/edb93xx.c +++ b/arch/arm/mach-ep93xx/edb93xx.c @@@ -275,7 -276,8 +275,7 @@@ MACHINE_START(EDB9301, "Cirrus Logic ED .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -288,7 -290,8 +288,7 @@@ MACHINE_START(EDB9302, "Cirrus Logic ED .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -301,7 -304,8 +301,7 @@@ MACHINE_START(EDB9302A, "Cirrus Logic E .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -314,7 -318,8 +314,7 @@@ MACHINE_START(EDB9307, "Cirrus Logic ED .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -327,7 -332,8 +327,7 @@@ MACHINE_START(EDB9307A, "Cirrus Logic E .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -340,7 -346,8 +340,7 @@@ MACHINE_START(EDB9312, "Cirrus Logic ED .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -353,7 -360,8 +353,7 @@@ MACHINE_START(EDB9315, "Cirrus Logic ED .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .init_time = ep93xx_timer_init, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -366,7 -374,8 +366,7 @@@ MACHINE_START(EDB9315A, "Cirrus Logic E .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .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 2a7375be,76c50f4..0cca5b1 --- a/arch/arm/mach-ep93xx/gesbc9312.c +++ b/arch/arm/mach-ep93xx/gesbc9312.c @@@ -38,7 -39,8 +38,7 @@@ MACHINE_START(GESBC9312, "Glomation GES .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .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 723c0d3,777cd21..373583c --- a/arch/arm/mach-ep93xx/micro9.c +++ b/arch/arm/mach-ep93xx/micro9.c @@@ -81,7 -82,8 +81,7 @@@ MACHINE_START(MICRO9, "Contec Micro9-Hi .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .init_time = ep93xx_timer_init, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -94,7 -96,8 +94,7 @@@ MACHINE_START(MICRO9M, "Contec Micro9-M .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .init_time = ep93xx_timer_init, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -107,7 -110,8 +107,7 @@@ MACHINE_START(MICRO9L, "Contec Micro9-L .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .init_time = ep93xx_timer_init, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@@ -120,7 -124,8 +120,7 @@@ MACHINE_START(MICRO9S, "Contec Micro9-S .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .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 651a7db,6ff39ee..36f22c1 --- a/arch/arm/mach-ep93xx/simone.c +++ b/arch/arm/mach-ep93xx/simone.c @@@ -82,7 -83,8 +82,7 @@@ MACHINE_START(SIM_ONE, "Simplemachines .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .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 b4389d3,6434c07..aa86f86 --- a/arch/arm/mach-ep93xx/snappercl15.c +++ b/arch/arm/mach-ep93xx/snappercl15.c @@@ -175,7 -176,8 +175,7 @@@ MACHINE_START(SNAPPER_CL15, "Bluewater .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .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 1eeee09,e4fa0d3..61f4b5d --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c @@@ -245,7 -246,8 +245,7 @@@ MACHINE_START(TS72XX, "Technologic Syst .atag_offset = 0x100, .map_io = ts72xx_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .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 723d048,8610ba2..605956f --- a/arch/arm/mach-ep93xx/vision_ep9307.c +++ b/arch/arm/mach-ep93xx/vision_ep9307.c @@@ -363,7 -364,8 +363,7 @@@ MACHINE_START(VISION_EP9307, "Vision En .atag_offset = 0x100, .map_io = vision_map_io, .init_irq = ep93xx_init_irq, - .timer = &ep93xx_timer, - .handle_irq = vic_handle_irq, + .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 a11a36f,2f18130..685f291 --- a/arch/arm/mach-exynos/mach-armlex4210.c +++ b/arch/arm/mach-exynos/mach-armlex4210.c @@@ -200,8 -201,9 +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 34c45b6,1600301..112d10e --- a/arch/arm/mach-exynos/mach-exynos4-dt.c +++ b/arch/arm/mach-exynos/mach-exynos4-dt.c @@@ -106,9 -107,10 +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 3a3bee4,4e074c6..0deeecf --- a/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/arch/arm/mach-exynos/mach-exynos5-dt.c @@@ -178,9 -179,10 +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 55f8183,dccd1d1..b8b3fbf --- a/arch/arm/mach-exynos/mach-nuri.c +++ b/arch/arm/mach-exynos/mach-nuri.c @@@ -1378,9 -1379,10 +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 45cda36,4e11563..579d2d1 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c @@@ -813,9 -814,10 +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 d5dbd51,e9c9c29..fe61496 --- a/arch/arm/mach-exynos/mach-smdk4x12.c +++ b/arch/arm/mach-exynos/mach-smdk4x12.c @@@ -375,8 -376,9 +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 @@@ -388,9 -390,10 +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 b095964,b228ab9..d716729 --- a/arch/arm/mach-exynos/mach-smdkv310.c +++ b/arch/arm/mach-exynos/mach-smdkv310.c @@@ -422,8 -423,9 +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 @@@ -434,9 -436,10 +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 be37775,866f29a..c9d33a4 --- a/arch/arm/mach-exynos/mach-universal_c210.c +++ b/arch/arm/mach-exynos/mach-universal_c210.c @@@ -1150,9 -1151,10 +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 f9191ea,f6ca285..fd630bc --- a/arch/arm/mach-highbank/highbank.c +++ b/arch/arm/mach-highbank/highbank.c @@@ -123,13 -129,9 +123,9 @@@ static void __init highbank_timer_init( arch_timer_sched_clock_init(); } - static struct sys_timer highbank_timer = { - .init = highbank_timer_init, - }; - static void highbank_power_off(void) { - hignbank_set_pwr_shutdown(); + highbank_set_pwr_shutdown(); while (1) cpu_do_idle(); @@@ -203,7 -205,8 +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 724bfeb,cd277a0..8d3d06e --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c @@@ -249,7 -250,8 +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, - .timer = &imx6q_timer, - .handle_irq = imx6q_handle_irq, + .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 c111cec,27c41ea..7dcfc53 --- a/arch/arm/mach-msm/board-dt-8660.c +++ b/arch/arm/mach-msm/board-dt-8660.c @@@ -44,9 -55,10 +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 fad0e50,3226d52..7301936 --- a/arch/arm/mach-msm/board-dt-8960.c +++ b/arch/arm/mach-msm/board-dt-8960.c @@@ -31,8 -42,9 +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 04d5e5e,241e1b9..9b558eb --- a/arch/arm/mach-netx/nxdb500.c +++ b/arch/arm/mach-netx/nxdb500.c @@@ -203,7 -204,8 +203,7 @@@ MACHINE_START(NXDB500, "Hilscher nxdb50 .atag_offset = 0x100, .map_io = netx_map_io, .init_irq = netx_init_irq, - .timer = &netx_timer, - .handle_irq = vic_handle_irq, + .init_time = netx_timer_init, .init_machine = nxdb500_init, .restart = netx_restart, MACHINE_END diff --cc arch/arm/mach-netx/nxdkn.c index cf15bdd,055aeec..a5e86cd --- a/arch/arm/mach-netx/nxdkn.c +++ b/arch/arm/mach-netx/nxdkn.c @@@ -96,7 -97,8 +96,7 @@@ MACHINE_START(NXDKN, "Hilscher nxdkn" .atag_offset = 0x100, .map_io = netx_map_io, .init_irq = netx_init_irq, - .timer = &netx_timer, - .handle_irq = vic_handle_irq, + .init_time = netx_timer_init, .init_machine = nxdkn_init, .restart = netx_restart, MACHINE_END diff --cc arch/arm/mach-netx/nxeb500hmi.c index 069bd26,018e91c..ad17885 --- a/arch/arm/mach-netx/nxeb500hmi.c +++ b/arch/arm/mach-netx/nxeb500hmi.c @@@ -180,7 -181,8 +180,7 @@@ MACHINE_START(NXEB500HMI, "Hilscher nxe .atag_offset = 0x100, .map_io = netx_map_io, .init_irq = netx_init_irq, - .timer = &netx_timer, - .handle_irq = vic_handle_irq, + .init_time = netx_timer_init, .init_machine = nxeb500hmi_init, .restart = netx_restart, MACHINE_END diff --cc arch/arm/mach-nomadik/board-nhk8815.c index 5748df0,ab756ed..aaed48d --- a/arch/arm/mach-nomadik/board-nhk8815.c +++ b/arch/arm/mach-nomadik/board-nhk8815.c @@@ -351,7 -349,8 +347,7 @@@ MACHINE_START(NOMADIK, "NHK8815" .atag_offset = 0x100, .map_io = cpu8815_map_io, .init_irq = cpu8815_init_irq, - .timer = &nomadik_timer, - .handle_irq = vic_handle_irq, + .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 cb43253,f5d5f59..f8eeef4 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c @@@ -722,8 -722,9 +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 73be868,8a5f814..2590463 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c @@@ -155,9 -156,10 +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 @@@ -175,8 -177,9 +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 37495bc,ed8240c..22838fa --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@@ -453,8 -453,9 +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 35ee214,518c59b..70b441a --- a/arch/arm/mach-picoxcell/common.c +++ b/arch/arm/mach-picoxcell/common.c @@@ -87,8 -97,9 +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 728587c,f892862..5b1c8bf --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c @@@ -472,7 -468,8 +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 3d116c4,6a4524b..d5e83a1 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c @@@ -384,7 -380,8 +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 e1b8efd,502f6e6..c3cfe21 --- a/arch/arm/mach-realview/realview_pb11mp.c +++ b/arch/arm/mach-realview/realview_pb11mp.c @@@ -367,7 -363,8 +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 0b037f2,85c81aa..dde652a --- a/arch/arm/mach-realview/realview_pba8.c +++ b/arch/arm/mach-realview/realview_pba8.c @@@ -308,7 -304,8 +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 a1f1ef5,a15a7b0..54f0185 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c @@@ -404,7 -400,8 +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 e241929,0a3146d..a40d5eb --- a/arch/arm/mach-s5p64x0/mach-smdk6440.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c @@@ -271,8 -272,9 +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 99927310,36917f2..703e576 --- a/arch/arm/mach-s5p64x0/mach-smdk6450.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6450.c @@@ -290,8 -291,9 +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 c3f3095,39a9197..185a195 --- a/arch/arm/mach-s5pc100/mach-smdkc100.c +++ b/arch/arm/mach-s5pc100/mach-smdkc100.c @@@ -253,8 -254,9 +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 45eb0a8,1fb44a5..11900a8 --- a/arch/arm/mach-s5pv210/mach-aquila.c +++ b/arch/arm/mach-s5pv210/mach-aquila.c @@@ -684,8 -685,9 +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 9f7f160,ababdca..5704815 --- a/arch/arm/mach-s5pv210/mach-goni.c +++ b/arch/arm/mach-s5pv210/mach-goni.c @@@ -971,9 -972,10 +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 2f152f9,acfb0eb..28bd024 --- a/arch/arm/mach-s5pv210/mach-smdkc110.c +++ b/arch/arm/mach-s5pv210/mach-smdkc110.c @@@ -151,9 -152,10 +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 721967b,e1d820f..3c73f36 --- a/arch/arm/mach-s5pv210/mach-smdkv210.c +++ b/arch/arm/mach-s5pv210/mach-smdkv210.c @@@ -327,9 -328,10 +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 0ed270f,1e6fc6e..2d4c553 --- a/arch/arm/mach-s5pv210/mach-torbreck.c +++ b/arch/arm/mach-s5pv210/mach-torbreck.c @@@ -128,8 -129,9 +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 fd28358,d81a663..705bc63 --- a/arch/arm/mach-shmobile/board-ag5evm.c +++ b/arch/arm/mach-shmobile/board-ag5evm.c @@@ -668,7 -668,8 +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 a1d315f,2f24994..d759a9c --- a/arch/arm/mach-shmobile/board-kota2.c +++ b/arch/arm/mach-shmobile/board-kota2.c @@@ -550,7 -550,8 +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 f3f180d,59be864..c254782 --- a/arch/arm/mach-shmobile/board-kzm9d.c +++ b/arch/arm/mach-shmobile/board-kzm9d.c @@@ -88,8 -89,9 +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 278c8f2,adb23ef..ac94285 --- a/arch/arm/mach-shmobile/board-kzm9g.c +++ b/arch/arm/mach-shmobile/board-kzm9g.c @@@ -792,9 -792,10 +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 fad8db1,ca45a0c..cdcb799 --- a/arch/arm/mach-shmobile/board-marzen.c +++ b/arch/arm/mach-shmobile/board-marzen.c @@@ -381,7 -382,8 +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 646d61b,ea61cb6..47662a5 --- a/arch/arm/mach-shmobile/setup-emev2.c +++ b/arch/arm/mach-shmobile/setup-emev2.c @@@ -454,9 -464,10 +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 7d55feb,b54baea..27d6846 --- a/arch/arm/mach-socfpga/socfpga.c +++ b/arch/arm/mach-socfpga/socfpga.c @@@ -100,8 -105,9 +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 5de3e6f,e77d05d..56214d1 --- a/arch/arm/mach-spear13xx/spear1310.c +++ b/arch/arm/mach-spear13xx/spear1310.c @@@ -90,8 -90,9 +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 18331de,ebc2547..9a28beb --- a/arch/arm/mach-spear13xx/spear1340.c +++ b/arch/arm/mach-spear13xx/spear1340.c @@@ -184,8 -184,9 +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 22e3cd5,7f7acf7..c7d2b4a --- a/arch/arm/mach-spear13xx/spear13xx.c +++ b/arch/arm/mach-spear13xx/spear13xx.c @@@ -181,7 -182,13 +181,3 @@@ void __init spear13xx_timer_init(void spear_setup_of_timer(); twd_local_timer_of_register(); } -- - struct sys_timer spear13xx_timer = { - .init = spear13xx_timer_init, -static const struct of_device_id gic_of_match[] __initconst = { - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init }, - { /* Sentinel */ } --}; - -void __init spear13xx_dt_init_irq(void) -{ - of_irq_init(gic_of_match); -} diff --cc arch/arm/mach-spear3xx/spear300.c index 499479b,2630efa..bbc9b7e --- a/arch/arm/mach-spear3xx/spear300.c +++ b/arch/arm/mach-spear3xx/spear300.c @@@ -212,8 -212,9 +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 367d9be,b6147ea..c13a434 --- a/arch/arm/mach-spear3xx/spear310.c +++ b/arch/arm/mach-spear3xx/spear310.c @@@ -254,8 -254,9 +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 34c212e,53160f7..e1c7707 --- a/arch/arm/mach-spear3xx/spear320.c +++ b/arch/arm/mach-spear3xx/spear320.c @@@ -268,8 -268,9 +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 c6003ef,89f4c58..b2ba516 --- a/arch/arm/mach-spear3xx/spear3xx.c +++ b/arch/arm/mach-spear3xx/spear3xx.c @@@ -112,7 -115,16 +112,3 @@@ void __init spear3xx_timer_init(void spear_setup_of_timer(); } -- - struct sys_timer spear3xx_timer = { - .init = spear3xx_timer_init, -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 */ } --}; - -void __init spear3xx_dt_init_irq(void) -{ - of_irq_init(vic_of_match); -} diff --cc arch/arm/mach-spear6xx/spear6xx.c index 3f6fac0,1f85bc0..b8bd33c --- a/arch/arm/mach-spear6xx/spear6xx.c +++ b/arch/arm/mach-spear6xx/spear6xx.c @@@ -424,10 -421,21 +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 04008c8,3b9956a..5ed81bab --- a/arch/arm/mach-tegra/board-dt-tegra20.c +++ b/arch/arm/mach-tegra/board-dt-tegra20.c @@@ -200,7 -202,8 +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, - .timer = &tegra_sys_timer, - .handle_irq = gic_handle_irq, + .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 672db8a,381b2f2..12dc2dd --- a/arch/arm/mach-tegra/board-dt-tegra30.c +++ b/arch/arm/mach-tegra/board-dt-tegra30.c @@@ -111,7 -112,8 +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, - .timer = &tegra_sys_timer, - .handle_irq = gic_handle_irq, + .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 26b48fa,100a8b7..12060ae --- a/arch/arm/mach-u300/core.c +++ b/arch/arm/mach-u300/core.c @@@ -1779,7 -1779,8 +1779,7 @@@ MACHINE_START(U300, "Ericsson AB U335 S .map_io = u300_map_io, .nr_irqs = 0, .init_irq = u300_init_irq, - .timer = &u300_timer, - .handle_irq = vic_handle_irq, + .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 af406c7,e1dfa24..0e928d2 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c @@@ -750,7 -751,8 +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 @@@ -759,7 -761,8 +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 @@@ -769,7 -772,8 +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 @@@ -780,7 -784,8 +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 4c91d76,7875d3c..218a6b1 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c @@@ -340,7 -340,8 +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 ddeec67,187c1da..1caef10 --- a/arch/arm/mach-versatile/versatile_ab.c +++ b/arch/arm/mach-versatile/versatile_ab.c @@@ -38,7 -39,8 +38,7 @@@ MACHINE_START(VERSATILE_AB, "ARM-Versat .map_io = versatile_map_io, .init_early = versatile_init_early, .init_irq = versatile_init_irq, - .timer = &versatile_timer, - .handle_irq = vic_handle_irq, + .init_time = versatile_timer_init, .init_machine = versatile_init, .restart = versatile_restart, MACHINE_END diff --cc arch/arm/mach-versatile/versatile_dt.c index f48f2e4,ccf9f8a..2558f2e --- a/arch/arm/mach-versatile/versatile_dt.c +++ b/arch/arm/mach-versatile/versatile_dt.c @@@ -45,7 -46,8 +45,7 @@@ DT_MACHINE_START(VERSATILE_PB, "ARM-Ver .map_io = versatile_map_io, .init_early = versatile_init_early, .init_irq = versatile_init_irq, - .timer = &versatile_timer, - .handle_irq = vic_handle_irq, + .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 e52eb23,1cabc0a..611d140 --- a/arch/arm/mach-versatile/versatile_pb.c +++ b/arch/arm/mach-versatile/versatile_pb.c @@@ -106,7 -107,8 +106,7 @@@ MACHINE_START(VERSATILE_PB, "ARM-Versat .map_io = versatile_map_io, .init_early = versatile_init_early, .init_irq = versatile_init_irq, - .timer = &versatile_timer, - .handle_irq = vic_handle_irq, + .init_time = versatile_timer_init, .init_machine = versatile_pb_init, .restart = versatile_restart, MACHINE_END diff --cc arch/arm/mach-vexpress/v2m.c index 82be02b,08bd548..915683c --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c @@@ -376,7 -372,8 +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 @@@ -486,8 -489,9 +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 2d96745,2ae4bce..6472a69 --- a/arch/arm/mach-zynq/common.c +++ b/arch/arm/mach-zynq/common.c @@@ -103,8 -110,9 +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 c80c599,1e744c5..fc62ac5 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@@ -149,16 -149,15 +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) = .; \ @@@ -502,8 -501,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) \