Merge remote-tracking branches 'arm-soc/irqchip/gic-vic-move' and 'arm-soc/timer...
Simon Horman [Thu, 24 Jan 2013 08:57:20 +0000 (17:57 +0900)]
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

92 files changed:
1  2 
arch/arm/mach-bcm/board_bcm.c
arch/arm/mach-cns3xxx/cns3420vb.c
arch/arm/mach-cns3xxx/core.c
arch/arm/mach-davinci/board-dm646x-evm.c
arch/arm/mach-ep93xx/adssphere.c
arch/arm/mach-ep93xx/core.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-exynos/mach-armlex4210.c
arch/arm/mach-exynos/mach-exynos4-dt.c
arch/arm/mach-exynos/mach-exynos5-dt.c
arch/arm/mach-exynos/mach-nuri.c
arch/arm/mach-exynos/mach-origen.c
arch/arm/mach-exynos/mach-smdk4x12.c
arch/arm/mach-exynos/mach-smdkv310.c
arch/arm/mach-exynos/mach-universal_c210.c
arch/arm/mach-exynos/mct.c
arch/arm/mach-highbank/highbank.c
arch/arm/mach-imx/mach-imx6q.c
arch/arm/mach-kirkwood/board-dt.c
arch/arm/mach-ks8695/board-acs5k.c
arch/arm/mach-msm/board-dt-8660.c
arch/arm/mach-msm/board-dt-8960.c
arch/arm/mach-msm/timer.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-omap1/board-ams-delta.c
arch/arm/mach-omap2/board-4430sdp.c
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/board-omap4panda.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-s3c64xx/mach-anw6410.c
arch/arm/mach-s3c64xx/mach-crag6410.c
arch/arm/mach-s3c64xx/mach-hmt.c
arch/arm/mach-s3c64xx/mach-mini6410.c
arch/arm/mach-s3c64xx/mach-ncp.c
arch/arm/mach-s3c64xx/mach-real6410.c
arch/arm/mach-s3c64xx/mach-smartq5.c
arch/arm/mach-s3c64xx/mach-smartq7.c
arch/arm/mach-s3c64xx/mach-smdk6400.c
arch/arm/mach-s3c64xx/mach-smdk6410.c
arch/arm/mach-s5p64x0/mach-smdk6440.c
arch/arm/mach-s5p64x0/mach-smdk6450.c
arch/arm/mach-s5pc100/mach-smdkc100.c
arch/arm/mach-s5pv210/mach-aquila.c
arch/arm/mach-s5pv210/mach-goni.c
arch/arm/mach-s5pv210/mach-smdkc110.c
arch/arm/mach-s5pv210/mach-smdkv210.c
arch/arm/mach-s5pv210/mach-torbreck.c
arch/arm/mach-shmobile/board-ag5evm.c
arch/arm/mach-shmobile/board-kota2.c
arch/arm/mach-shmobile/board-kzm9d.c
arch/arm/mach-shmobile/board-kzm9g.c
arch/arm/mach-shmobile/board-marzen.c
arch/arm/mach-shmobile/setup-emev2.c
arch/arm/mach-socfpga/socfpga.c
arch/arm/mach-spear13xx/include/mach/generic.h
arch/arm/mach-spear13xx/spear1310.c
arch/arm/mach-spear13xx/spear1340.c
arch/arm/mach-spear13xx/spear13xx.c
arch/arm/mach-spear3xx/include/mach/generic.h
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-sunxi/sunxi.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/core.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
arch/arm/mach-zynq/common.c
arch/arm/plat-samsung/include/plat/cpu.h
include/asm-generic/vmlinux.lds.h

@@@ -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
@@@ -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
Simple merge
@@@ -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,
Simple merge
@@@ -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,
@@@ -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,
@@@ -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,
@@@ -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,
@@@ -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,
@@@ -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,
@@@ -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,
@@@ -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
@@@ -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
@@@ -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,
@@@ -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
@@@ -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
@@@ -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
@@@ -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
@@@ -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
Simple merge
@@@ -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,
@@@ -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,
Simple merge
Simple merge
@@@ -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
@@@ -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
Simple merge
@@@ -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
@@@ -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
@@@ -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
@@@ -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
Simple merge
@@@ -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
@@@ -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
@@@ -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
@@@ -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,
@@@ -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,
@@@ -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,
@@@ -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,
@@@ -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,
@@@ -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,
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -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
@@@ -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
@@@ -253,8 -254,9 +253,8 @@@ MACHINE_START(SMDKC100, "SMDKC100"
        /* Maintainer: Byungho Min <bhmin@samsung.com> */
        .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
@@@ -684,8 -685,9 +684,8 @@@ MACHINE_START(AQUILA, "Aquila"
           Kyungmin Park <kyungmin.park@samsung.com> */
        .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
@@@ -971,9 -972,10 +971,9 @@@ MACHINE_START(GONI, "GONI"
        /* Maintainers: Kyungmin Park <kyungmin.park@samsung.com> */
        .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
@@@ -151,9 -152,10 +151,9 @@@ MACHINE_START(SMDKC110, "SMDKC110"
        /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */
        .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
@@@ -327,9 -328,10 +327,9 @@@ MACHINE_START(SMDKV210, "SMDKV210"
        /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */
        .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
@@@ -128,8 -129,9 +128,8 @@@ MACHINE_START(TORBRECK, "TORBRECK"
        /* Maintainer: Hyunchul Ko <ghcstop@gmail.com> */
        .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
@@@ -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
@@@ -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
@@@ -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
@@@ -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
@@@ -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
@@@ -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
  
@@@ -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,
@@@ -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,
@@@ -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,
@@@ -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);
 -}
@@@ -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,
@@@ -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,
@@@ -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,
@@@ -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);
 -}
@@@ -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,
Simple merge
@@@ -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,
@@@ -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,
@@@ -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
@@@ -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
@@@ -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,
Simple merge
@@@ -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
@@@ -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,
@@@ -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
@@@ -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
@@@ -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
  #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) = .;                                \
        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)                                                   \