Merge tag '3.9-rc3-smp-6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/sstabe...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 May 2013 22:11:43 +0000 (15:11 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 May 2013 22:11:43 +0000 (15:11 -0700)
Pull ARM Xen SMP updates from Stefano Stabellini:
 "This contains a bunch of Xen/ARM specific changes, including some
  fixes, SMP support for Xen on ARM, and moving the xenvm machine from
  mach-vexpress to mach-virt.

  The non-Xen files that are touched are arch/arm/Kconfig, to select
  ARM_PSCI on XEN, and arch/arm/boot/dts/Makefile, to build the xenvm
  DTB if CONFIG_ARCH_VIRT.

  Highlights:

   - Move xenvm to mach-virt.

   - Implement SMP support in Xen on ARM.

   - Add support for machine reboot and power off via Xen hypercalls"

* tag '3.9-rc3-smp-6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/sstabellini/xen:
  xen/arm: remove duplicated include from enlighten.c
  xen/arm: use sched_op hypercalls for machine reboot and power off
  xenvm: add a simple PSCI node and a second cpu
  xen/arm: XEN selects ARM_PSCI
  xen: move the xenvm machine to mach-virt
  xen/arm: SMP support
  xen/arm: implement HYPERVISOR_vcpu_op
  xen/arm: actually pass a non-NULL percpu pointer to request_percpu_irq

1  2 
arch/arm/Kconfig
arch/arm/boot/dts/Makefile
arch/arm/mach-vexpress/v2m.c
arch/arm/mach-virt/virt.c

diff --combined arch/arm/Kconfig
index 34ef016626ff401211964897e5c75ec9f012583b,344e299f125751cc0f34930dcc1165b5e5c4afc1..aa71a2321040ab2995acb134d0cf686c3a546345
@@@ -15,7 -15,6 +15,7 @@@ config AR
        select GENERIC_IRQ_SHOW
        select GENERIC_PCI_IOMAP
        select GENERIC_SMP_IDLE_THREAD
 +      select GENERIC_IDLE_POLL_SETUP
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
        select HARDIRQS_SW_RESEND
@@@ -50,6 -49,7 +50,6 @@@
        select HAVE_REGS_AND_STACK_ACCESS_API
        select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_UID16
 -      select VIRT_TO_BUS
        select KTIME_SCALAR
        select PERF_USE_VMALLOC
        select RTC_LIB
@@@ -59,7 -59,6 +59,7 @@@
        select CLONE_BACKWARDS
        select OLD_SIGSUSPEND3
        select OLD_SIGACTION
 +      select HAVE_CONTEXT_TRACKING
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@@ -363,6 -362,37 +363,6 @@@ config ARCH_AT9
          This enables support for systems based on Atmel
          AT91RM9200 and AT91SAM9* processors.
  
 -config ARCH_BCM2835
 -      bool "Broadcom BCM2835 family"
 -      select ARCH_REQUIRE_GPIOLIB
 -      select ARM_AMBA
 -      select ARM_ERRATA_411920
 -      select ARM_TIMER_SP804
 -      select CLKDEV_LOOKUP
 -      select CLKSRC_OF
 -      select COMMON_CLK
 -      select CPU_V6
 -      select GENERIC_CLOCKEVENTS
 -      select MULTI_IRQ_HANDLER
 -      select PINCTRL
 -      select PINCTRL_BCM2835
 -      select SPARSE_IRQ
 -      select USE_OF
 -      help
 -        This enables support for the Broadcom BCM2835 SoC. This SoC is
 -        use in the Raspberry Pi, and Roku 2 devices.
 -
 -config ARCH_CNS3XXX
 -      bool "Cavium Networks CNS3XXX family"
 -      select ARM_GIC
 -      select CPU_V6K
 -      select GENERIC_CLOCKEVENTS
 -      select MIGHT_HAVE_CACHE_L2X0
 -      select MIGHT_HAVE_PCI
 -      select PCI_DOMAINS if PCI
 -      help
 -        Support for Cavium Networks CNS3XXX platform.
 -
  config ARCH_CLPS711X
        bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
        select ARCH_REQUIRE_GPIOLIB
@@@ -381,11 -411,25 +381,11 @@@ config ARCH_GEMIN
        bool "Cortina Systems Gemini"
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_USES_GETTIMEOFFSET
 +      select NEED_MACH_GPIO_H
        select CPU_FA526
        help
          Support for the Cortina Systems Gemini family SoCs
  
 -config ARCH_SIRF
 -      bool "CSR SiRF"
 -      select ARCH_REQUIRE_GPIOLIB
 -      select AUTO_ZRELADDR
 -      select COMMON_CLK
 -      select GENERIC_CLOCKEVENTS
 -      select GENERIC_IRQ_CHIP
 -      select MIGHT_HAVE_CACHE_L2X0
 -      select NO_IOPORT
 -      select PINCTRL
 -      select PINCTRL_SIRF
 -      select USE_OF
 -      help
 -        Support for CSR SiRFprimaII/Marco/Polo platforms
 -
  config ARCH_EBSA110
        bool "EBSA-110"
        select ARCH_USES_GETTIMEOFFSET
@@@ -425,6 -469,21 +425,6 @@@ config ARCH_FOOTBRIDG
          Support for systems based on the DC21285 companion chip
          ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
  
 -config ARCH_MXS
 -      bool "Freescale MXS-based"
 -      select ARCH_REQUIRE_GPIOLIB
 -      select CLKDEV_LOOKUP
 -      select CLKSRC_MMIO
 -      select COMMON_CLK
 -      select GENERIC_CLOCKEVENTS
 -      select HAVE_CLK_PREPARE
 -      select MULTI_IRQ_HANDLER
 -      select PINCTRL
 -      select SPARSE_IRQ
 -      select USE_OF
 -      help
 -        Support for Freescale MXS-based family of processors
 -
  config ARCH_NETX
        bool "Hilscher NetX based"
        select ARM_VIC
        help
          This enables support for systems based on the Hilscher NetX Soc
  
 -config ARCH_H720X
 -      bool "Hynix HMS720x-based"
 -      select ARCH_USES_GETTIMEOFFSET
 -      select CPU_ARM720T
 -      select ISA_DMA_API
 -      help
 -        This enables support for systems based on the Hynix HMS720x
 -
  config ARCH_IOP13XX
        bool "IOP13xx-based"
        depends on MMU
@@@ -483,8 -550,6 +483,8 @@@ config ARCH_IXP4X
        select GENERIC_CLOCKEVENTS
        select MIGHT_HAVE_PCI
        select NEED_MACH_IO_H
 +      select USB_EHCI_BIG_ENDIAN_MMIO
 +      select USB_EHCI_BIG_ENDIAN_DESC
        help
          Support for Intel's IXP4XX (XScale) family of processors.
  
@@@ -498,7 -563,6 +498,7 @@@ config ARCH_DOV
        select PINCTRL_DOVE
        select PLAT_ORION_LEGACY
        select USB_ARCH_HAS_EHCI
 +      select MVEBU_MBUS
        help
          Support for the Marvell Dove SoC 88AP510
  
@@@ -512,7 -576,6 +512,7 @@@ config ARCH_KIRKWOO
        select PINCTRL
        select PINCTRL_KIRKWOOD
        select PLAT_ORION_LEGACY
 +      select MVEBU_MBUS
        help
          Support for the following Marvell Kirkwood series SoCs:
          88F6180, 88F6192 and 88F6281.
@@@ -524,7 -587,6 +524,7 @@@ config ARCH_MV78XX
        select GENERIC_CLOCKEVENTS
        select PCI
        select PLAT_ORION_LEGACY
 +      select MVEBU_MBUS
        help
          Support for the following Marvell MV78xx0 series SoCs:
          MV781x0, MV782x0.
@@@ -537,7 -599,6 +537,7 @@@ config ARCH_ORION5
        select GENERIC_CLOCKEVENTS
        select PCI
        select PLAT_ORION_LEGACY
 +      select MVEBU_MBUS
        help
          Support for the following Marvell Orion 5x series SoCs:
          Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
@@@ -601,6 -662,24 +601,6 @@@ config ARCH_LPC32X
        help
          Support for the NXP LPC32XX family of processors
  
 -config ARCH_TEGRA
 -      bool "NVIDIA Tegra"
 -      select ARCH_HAS_CPUFREQ
 -      select ARCH_REQUIRE_GPIOLIB
 -      select CLKDEV_LOOKUP
 -      select CLKSRC_MMIO
 -      select CLKSRC_OF
 -      select COMMON_CLK
 -      select GENERIC_CLOCKEVENTS
 -      select HAVE_CLK
 -      select HAVE_SMP
 -      select MIGHT_HAVE_CACHE_L2X0
 -      select SPARSE_IRQ
 -      select USE_OF
 -      help
 -        This enables support for NVIDIA Tegra based systems (Tegra APX,
 -        Tegra 6xx and Tegra 2 series).
 -
  config ARCH_PXA
        bool "PXA2xx/PXA3xx-based"
        depends on MMU
@@@ -638,8 -717,6 +638,8 @@@ config ARCH_SHMOBIL
        bool "Renesas SH-Mobile / R-Mobile"
        select CLKDEV_LOOKUP
        select GENERIC_CLOCKEVENTS
 +      select HAVE_ARM_SCU if SMP
 +      select HAVE_ARM_TWD if LOCAL_TIMERS
        select HAVE_CLK
        select HAVE_MACH_CLKDEV
        select HAVE_SMP
        select MULTI_IRQ_HANDLER
        select NEED_MACH_MEMORY_H
        select NO_IOPORT
 -      select PINCTRL
 +      select PINCTRL if ARCH_WANT_OPTIONAL_GPIOLIB
        select PM_GENERIC_DOMAINS if PM
        select SPARSE_IRQ
        help
@@@ -666,7 -743,6 +666,7 @@@ config ARCH_RP
        select NEED_MACH_IO_H
        select NEED_MACH_MEMORY_H
        select NO_IOPORT
 +      select VIRT_TO_BUS
        help
          On the Acorn Risc-PC, Linux can support the internal IDE disk and
          CD-ROM interface, serial and parallel port, and the floppy drive.
@@@ -693,15 -769,12 +693,15 @@@ config ARCH_SA110
  config ARCH_S3C24XX
        bool "Samsung S3C24XX SoCs"
        select ARCH_HAS_CPUFREQ
 -      select ARCH_USES_GETTIMEOFFSET
 +      select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
 +      select CLKSRC_MMIO
 +      select GENERIC_CLOCKEVENTS
        select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
 +      select MULTI_IRQ_HANDLER
        select NEED_MACH_GPIO_H
        select NEED_MACH_IO_H
        help
@@@ -714,11 -787,10 +714,11 @@@ config ARCH_S3C64X
        bool "Samsung S3C64XX"
        select ARCH_HAS_CPUFREQ
        select ARCH_REQUIRE_GPIOLIB
 -      select ARCH_USES_GETTIMEOFFSET
        select ARM_VIC
        select CLKDEV_LOOKUP
 +      select CLKSRC_MMIO
        select CPU_V6
 +      select GENERIC_CLOCKEVENTS
        select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
@@@ -752,11 -824,9 +752,11 @@@ config ARCH_S5P64X
  
  config ARCH_S5PC100
        bool "Samsung S5PC100"
 -      select ARCH_USES_GETTIMEOFFSET
 +      select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
 +      select CLKSRC_MMIO
        select CPU_V7
 +      select GENERIC_CLOCKEVENTS
        select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
@@@ -789,7 -859,6 +789,7 @@@ config ARCH_EXYNO
        select ARCH_HAS_HOLES_MEMORYMODEL
        select ARCH_SPARSEMEM_ENABLE
        select CLKDEV_LOOKUP
 +      select COMMON_CLK
        select CPU_V7
        select GENERIC_CLOCKEVENTS
        select HAVE_CLK
@@@ -809,7 -878,6 +809,7 @@@ config ARCH_SHAR
        select ISA_DMA
        select NEED_MACH_MEMORY_H
        select PCI
 +      select VIRT_TO_BUS
        select ZONE_DMA
        help
          Support for the StrongARM based Digital DNARD machine, also known
@@@ -832,6 -900,51 +832,6 @@@ config ARCH_U30
        help
          Support for ST-Ericsson U300 series mobile platforms.
  
 -config ARCH_U8500
 -      bool "ST-Ericsson U8500 Series"
 -      depends on MMU
 -      select ARCH_HAS_CPUFREQ
 -      select ARCH_REQUIRE_GPIOLIB
 -      select ARM_AMBA
 -      select CLKDEV_LOOKUP
 -      select CPU_V7
 -      select GENERIC_CLOCKEVENTS
 -      select HAVE_SMP
 -      select MIGHT_HAVE_CACHE_L2X0
 -      select SPARSE_IRQ
 -      help
 -        Support for ST-Ericsson's Ux500 architecture
 -
 -config ARCH_NOMADIK
 -      bool "STMicroelectronics Nomadik"
 -      select ARCH_REQUIRE_GPIOLIB
 -      select ARM_AMBA
 -      select ARM_VIC
 -      select CLKSRC_NOMADIK_MTU
 -      select COMMON_CLK
 -      select CPU_ARM926T
 -      select GENERIC_CLOCKEVENTS
 -      select MIGHT_HAVE_CACHE_L2X0
 -      select USE_OF
 -      select PINCTRL
 -      select PINCTRL_STN8815
 -      select SPARSE_IRQ
 -      help
 -        Support for the Nomadik platform by ST-Ericsson
 -
 -config PLAT_SPEAR
 -      bool "ST SPEAr"
 -      select ARCH_HAS_CPUFREQ
 -      select ARCH_REQUIRE_GPIOLIB
 -      select ARM_AMBA
 -      select CLKDEV_LOOKUP
 -      select CLKSRC_MMIO
 -      select COMMON_CLK
 -      select GENERIC_CLOCKEVENTS
 -      select HAVE_CLK
 -      help
 -        Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
 -
  config ARCH_DAVINCI
        bool "TI DaVinci"
        select ARCH_HAS_HOLES_MEMORYMODEL
@@@ -892,12 -1005,12 +892,12 @@@ config ARCH_MULTI_V4_V
        bool
  
  config ARCH_MULTI_V6
 -      bool "ARMv6 based platforms (ARM11, Scorpion, ...)"
 +      bool "ARMv6 based platforms (ARM11)"
        select ARCH_MULTI_V6_V7
        select CPU_V6
  
  config ARCH_MULTI_V7
 -      bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)"
 +      bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
        default y
        select ARCH_MULTI_V6_V7
        select ARCH_VEXPRESS
@@@ -923,8 -1036,6 +923,8 @@@ source "arch/arm/mach-at91/Kconfig
  
  source "arch/arm/mach-bcm/Kconfig"
  
 +source "arch/arm/mach-bcm2835/Kconfig"
 +
  source "arch/arm/mach-clps711x/Kconfig"
  
  source "arch/arm/mach-cns3xxx/Kconfig"
@@@ -939,6 -1050,8 +939,6 @@@ source "arch/arm/mach-footbridge/Kconfi
  
  source "arch/arm/mach-gemini/Kconfig"
  
 -source "arch/arm/mach-h720x/Kconfig"
 -
  source "arch/arm/mach-highbank/Kconfig"
  
  source "arch/arm/mach-integrator/Kconfig"
@@@ -990,7 -1103,7 +990,7 @@@ source "arch/arm/plat-samsung/Kconfig
  
  source "arch/arm/mach-socfpga/Kconfig"
  
 -source "arch/arm/plat-spear/Kconfig"
 +source "arch/arm/mach-spear/Kconfig"
  
  source "arch/arm/mach-s3c24xx/Kconfig"
  
@@@ -1059,7 -1172,7 +1059,7 @@@ config PLAT_VERSATIL
  config ARM_TIMER_SP804
        bool
        select CLKSRC_MMIO
 -      select HAVE_SCHED_CLOCK
 +      select CLKSRC_OF if OF
  
  source arch/arm/mm/Kconfig
  
@@@ -1069,9 -1182,9 +1069,9 @@@ config ARM_NR_BANK
        default 8
  
  config IWMMXT
 -      bool "Enable iWMMXt support"
 +      bool "Enable iWMMXt support" if !CPU_PJ4
        depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4
 -      default y if PXA27x || PXA3xx || ARCH_MMP
 +      default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4
        help
          Enable support for iWMMXt context switching at run time if
          running on a CPU that supports it.
@@@ -1325,16 -1438,6 +1325,16 @@@ config ARM_ERRATA_77542
         to deadlock. This workaround puts DSB before executing ISB if
         an abort may occur on cache maintenance.
  
 +config ARM_ERRATA_798181
 +      bool "ARM errata: TLBI/DSB failure on Cortex-A15"
 +      depends on CPU_V7 && SMP
 +      help
 +        On Cortex-A15 (r0p0..r3p2) the TLBI*IS/DSB operations are not
 +        adequately shooting down all use of the old entries. This
 +        option enables the Linux kernel workaround for this erratum
 +        which sends an IPI to the CPUs that are running the same ASID
 +        as the one being invalidated.
 +
  endmenu
  
  source "arch/arm/common/Kconfig"
@@@ -1358,6 -1461,10 +1358,6 @@@ config ISA_DM
        bool
        select ISA_DMA_API
  
 -config ARCH_NO_VIRT_TO_BUS
 -      def_bool y
 -      depends on !ARCH_RPC && !ARCH_NETWINDER && !ARCH_SHARK
 -
  # Select ISA DMA interface
  config ISA_DMA_API
        bool
@@@ -1418,6 -1525,7 +1418,6 @@@ config SM
        depends on GENERIC_CLOCKEVENTS
        depends on HAVE_SMP
        depends on MMU
 -      select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
        select USE_GENERIC_SMP_HELPERS
        help
          This enables support for systems with more than one CPU. If you have
@@@ -1488,18 -1596,9 +1488,18 @@@ config HAVE_ARM_ARCH_TIME
  config HAVE_ARM_TWD
        bool
        depends on SMP
 +      select CLKSRC_OF if OF
        help
          This options enables support for the ARM timer and watchdog unit
  
 +config MCPM
 +      bool "Multi-Cluster Power Management"
 +      depends on CPU_V7 && SMP
 +      help
 +        This option provides the common power management infrastructure
 +        for (multi-)cluster based systems, such as big.LITTLE based
 +        systems.
 +
  choice
        prompt "Memory split"
        default VMSPLIT_3G
@@@ -1550,6 -1649,7 +1550,6 @@@ config LOCAL_TIMER
        bool "Use local timer interrupts"
        depends on SMP
        default y
 -      select HAVE_ARM_TWD if (!ARCH_MSM_SCORPIONMP && !EXYNOS4_MCT)
        help
          Enable support for local timers on SMP platforms, rather then the
          legacy IPI broadcast method.  Local timers allows the system
@@@ -1563,9 -1663,8 +1563,9 @@@ config ARCH_NR_GPI
        int
        default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
        default 512 if SOC_OMAP5
 -      default 355 if ARCH_U8500
 -      default 288 if ARCH_VT8500 || ARCH_SUNXI
 +      default 392 if ARCH_U8500
 +      default 352 if ARCH_VT8500
 +      default 288 if ARCH_SUNXI
        default 264 if MACH_H4700
        default 0
        help
@@@ -1587,9 -1686,8 +1587,9 @@@ config SCHED_HRTIC
        def_bool HIGH_RES_TIMERS
  
  config THUMB2_KERNEL
 -      bool "Compile the kernel in Thumb-2 mode"
 +      bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY
        depends on CPU_V7 && !CPU_V6 && !CPU_V6K
 +      default y if CPU_THUMBONLY
        select AEABI
        select ARM_ASM_UNIFIED
        select ARM_UNWIND
@@@ -1794,6 -1892,7 +1794,7 @@@ config XE
        depends on ARM && AEABI && OF
        depends on CPU_V7 && !CPU_V6
        depends on !GENERIC_ATOMIC64
+       select ARM_PSCI
        help
          Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
  
@@@ -2055,8 -2154,40 +2056,8 @@@ endmen
  menu "CPU Power Management"
  
  if ARCH_HAS_CPUFREQ
 -
  source "drivers/cpufreq/Kconfig"
  
 -config CPU_FREQ_IMX
 -      tristate "CPUfreq driver for i.MX CPUs"
 -      depends on ARCH_MXC && CPU_FREQ
 -      select CPU_FREQ_TABLE
 -      help
 -        This enables the CPUfreq driver for i.MX CPUs.
 -
 -config CPU_FREQ_SA1100
 -      bool
 -
 -config CPU_FREQ_SA1110
 -      bool
 -
 -config CPU_FREQ_INTEGRATOR
 -      tristate "CPUfreq driver for ARM Integrator CPUs"
 -      depends on ARCH_INTEGRATOR && CPU_FREQ
 -      default y
 -      help
 -        This enables the CPUfreq driver for ARM Integrator CPUs.
 -
 -        For details, take a look at <file:Documentation/cpu-freq>.
 -
 -        If in doubt, say Y.
 -
 -config CPU_FREQ_PXA
 -      bool
 -      depends on CPU_FREQ && ARCH_PXA && PXA25x
 -      default y
 -      select CPU_FREQ_DEFAULT_GOV_USERSPACE
 -      select CPU_FREQ_TABLE
 -
  config CPU_FREQ_S3C
        bool
        help
index 8562af4fe8fd46e4639c275120ce09129efac733,b6289b765ec34fe7c6287576d44e573cb5cb653a..b9f7121e6ecf02c561e5b1b10308659aad23fb28
@@@ -3,7 -3,6 +3,7 @@@ ifeq ($(CONFIG_OF),y
  # Keep at91 dtb files sorted alphabetically for each SoC
  # rm9200
  dtb-$(CONFIG_ARCH_AT91) += at91rm9200ek.dtb
 +dtb-$(CONFIG_ARCH_AT91) += mpa1600.dtb
  # sam9260
  dtb-$(CONFIG_ARCH_AT91) += animeo_ip.dtb
  dtb-$(CONFIG_ARCH_AT91) += aks-cdu.dtb
@@@ -27,17 -26,11 +27,17 @@@ dtb-$(CONFIG_ARCH_AT91) += pm9g45.dt
  # sam9n12
  dtb-$(CONFIG_ARCH_AT91) += at91sam9n12ek.dtb
  # sam9x5
 +dtb-$(CONFIG_ARCH_AT91) += at91-ariag25.dtb
  dtb-$(CONFIG_ARCH_AT91) += at91sam9g15ek.dtb
  dtb-$(CONFIG_ARCH_AT91) += at91sam9g25ek.dtb
  dtb-$(CONFIG_ARCH_AT91) += at91sam9g35ek.dtb
  dtb-$(CONFIG_ARCH_AT91) += at91sam9x25ek.dtb
  dtb-$(CONFIG_ARCH_AT91) += at91sam9x35ek.dtb
 +# sama5d3
 +dtb-$(CONFIG_ARCH_AT91)       += sama5d31ek.dtb
 +dtb-$(CONFIG_ARCH_AT91)       += sama5d33ek.dtb
 +dtb-$(CONFIG_ARCH_AT91)       += sama5d34ek.dtb
 +dtb-$(CONFIG_ARCH_AT91)       += sama5d35ek.dtb
  
  dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
  dtb-$(CONFIG_ARCH_BCM) += bcm11351-brt.dtb
@@@ -49,12 -42,7 +49,12 @@@ dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510
  dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
        exynos4210-smdkv310.dtb \
        exynos4210-trats.dtb \
 +      exynos4210-universal_c210.dtb \
 +      exynos4412-odroidx.dtb \
        exynos4412-smdk4412.dtb \
 +      exynos4412-origen.dtb \
 +      exynos5250-arndale.dtb \
 +      exynos5440-sd5v1.dtb \
        exynos5250-smdk5250.dtb \
        exynos5250-snow.dtb \
        exynos5440-ssdk5440.dtb
@@@ -63,8 -51,7 +63,8 @@@ dtb-$(CONFIG_ARCH_HIGHBANK) += highbank
  dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \
        integratorcp.dtb
  dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb
 -dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
 +dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
 +      kirkwood-dns320.dtb \
        kirkwood-dns325.dtb \
        kirkwood-dockstar.dtb \
        kirkwood-dreamplug.dtb \
@@@ -78,7 -65,6 +78,7 @@@
        kirkwood-lschlv2.dtb \
        kirkwood-lsxhl.dtb \
        kirkwood-mplcec4.dtb \
 +      kirkwood-netgear_readynas_duo_v2.dtb \
        kirkwood-ns2.dtb \
        kirkwood-ns2lite.dtb \
        kirkwood-ns2max.dtb \
@@@ -101,26 -87,19 +101,26 @@@ dtb-$(CONFIG_ARCH_MXC) += 
        imx25-karo-tx25.dtb \
        imx25-pdk.dtb \
        imx27-apf27.dtb \
 +      imx27-apf27dev.dtb \
        imx27-pdk.dtb \
 +      imx27-phytec-phycore.dtb \
        imx31-bug.dtb \
        imx51-apf51.dtb \
 +      imx51-apf51dev.dtb \
        imx51-babbage.dtb \
        imx53-ard.dtb \
        imx53-evk.dtb \
        imx53-mba53.dtb \
        imx53-qsb.dtb \
        imx53-smd.dtb \
 +      imx6dl-sabreauto.dtb \
 +      imx6dl-sabresd.dtb \
 +      imx6dl-wandboard.dtb \
        imx6q-arm2.dtb \
        imx6q-sabreauto.dtb \
        imx6q-sabrelite.dtb \
 -      imx6q-sabresd.dtb
 +      imx6q-sabresd.dtb \
 +      imx6q-sbc6x.dtb
  dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
        imx23-olinuxino.dtb \
        imx23-stmp378x_devb.dtb \
        imx28-tx28.dtb
  dtb-$(CONFIG_ARCH_NOMADIK) += ste-nomadik-s8815.dtb
  dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
 +      omap3430-sdp.dtb \
        omap3-beagle.dtb \
 +      omap3-devkit8000.dtb \
        omap3-beagle-xm.dtb \
        omap3-evm.dtb \
        omap3-tobi.dtb \
 +      omap3-igep0020.dtb \
 +      omap3-igep0030.dtb \
        omap4-panda.dtb \
        omap4-panda-a4.dtb \
        omap4-panda-es.dtb \
@@@ -161,12 -136,7 +161,12 @@@ dtb-$(CONFIG_ARCH_U8500) += snowball.dt
        ccu9540.dtb
  dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
        r8a7740-armadillo800eva.dtb \
 +      r8a7778-bockw.dtb \
 +      r8a7779-marzen-reference.dtb \
 +      r8a7790-lager.dtb \
        sh73a0-kzm9g.dtb \
 +      sh73a0-kzm9g-reference.dtb \
 +      r8a73a4-ape6evm.dtb \
        sh7372-mackerel.dtb
  dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \
        socfpga_vt.dtb
@@@ -195,13 -165,11 +195,13 @@@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-har
        tegra30-cardhu-a04.dtb \
        tegra114-dalmore.dtb \
        tegra114-pluto.dtb
 +dtb-$(CONFIG_ARCH_VERSATILE) += versatile-ab.dtb \
 +      versatile-pb.dtb
  dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \
        vexpress-v2p-ca9.dtb \
        vexpress-v2p-ca15-tc1.dtb \
-       vexpress-v2p-ca15_a7.dtb \
      xenvm-4.2.dtb
+       vexpress-v2p-ca15_a7.dtb
dtb-$(CONFIG_ARCH_VIRT) += xenvm-4.2.dtb
  dtb-$(CONFIG_ARCH_VT8500) += vt8500-bv07.dtb \
        wm8505-ref.dtb \
        wm8650-mid.dtb \
index b6083bb1eb8cf4c9092630a25c43b041c163f7f6,c43ec789661da4a9a18b63fabf4dd847f0c7f799..8802030df98d0fbac53f4cd1f01df30f598f1773
@@@ -1,12 -1,10 +1,12 @@@
  /*
   * Versatile Express V2M Motherboard Support
   */
 +#include <linux/clocksource.h>
  #include <linux/device.h>
  #include <linux/amba/bus.h>
  #include <linux/amba/mmci.h>
  #include <linux/io.h>
 +#include <linux/clocksource.h>
  #include <linux/smp.h>
  #include <linux/init.h>
  #include <linux/irqchip.h>
  #include <linux/regulator/fixed.h>
  #include <linux/regulator/machine.h>
  #include <linux/vexpress.h>
 +#include <linux/clk-provider.h>
 +#include <linux/clkdev.h>
  
 -#include <asm/arch_timer.h>
  #include <asm/mach-types.h>
  #include <asm/sizes.h>
 -#include <asm/smp_twd.h>
  #include <asm/mach/arch.h>
  #include <asm/mach/map.h>
  #include <asm/mach/time.h>
@@@ -63,6 -61,9 +63,6 @@@ static void __init v2m_sp804_init(void 
        if (WARN_ON(!base || irq == NO_IRQ))
                return;
  
 -      writel(0, base + TIMER_1_BASE + TIMER_CTRL);
 -      writel(0, base + TIMER_2_BASE + TIMER_CTRL);
 -
        sp804_clocksource_init(base + TIMER_2_BASE, "v2m-timer1");
        sp804_clockevents_init(base + TIMER_1_BASE, irq, "v2m-timer0");
  }
@@@ -360,6 -361,8 +360,6 @@@ static void __init v2m_init(void
        for (i = 0; i < ARRAY_SIZE(v2m_amba_devs); i++)
                amba_device_register(v2m_amba_devs[i], &iomem_resource);
  
 -      pm_power_off = vexpress_power_off;
 -
        ct_desc->init_tile();
  }
  
@@@ -371,6 -374,7 +371,6 @@@ MACHINE_START(VEXPRESS, "ARM-Versatile 
        .init_irq       = v2m_init_irq,
        .init_time      = v2m_timer_init,
        .init_machine   = v2m_init,
 -      .restart        = vexpress_restart,
  MACHINE_END
  
  static struct map_desc v2m_rs1_io_desc __initdata = {
@@@ -427,11 -431,25 +427,11 @@@ void __init v2m_dt_init_early(void
  
  static void __init v2m_dt_timer_init(void)
  {
 -      struct device_node *node = NULL;
 -
 -      vexpress_clk_of_init();
 -
 -      do {
 -              node = of_find_compatible_node(node, NULL, "arm,sp804");
 -      } while (node && vexpress_get_site_by_node(node) != VEXPRESS_SITE_MB);
 -      if (node) {
 -              pr_info("Using SP804 '%s' as a clock & events source\n",
 -                              node->full_name);
 -              v2m_sp804_init(of_iomap(node, 0),
 -                              irq_of_parse_and_map(node, 0));
 -      }
 +      of_clk_init(NULL);
  
 -      if (arch_timer_of_register() != 0)
 -              twd_local_timer_of_register();
 +      clocksource_of_init();
  
 -      if (arch_timer_sched_clock_init() != 0)
 -              versatile_sched_clock_init(vexpress_get_24mhz_clock_base(),
 +      versatile_sched_clock_init(vexpress_get_24mhz_clock_base(),
                                24000000);
  }
  
@@@ -446,11 -464,11 +446,10 @@@ static void __init v2m_dt_init(void
  {
        l2x0_of_init(0x00400000, 0xfe0fffff);
        of_platform_populate(NULL, v2m_dt_bus_match, NULL, NULL);
 -      pm_power_off = vexpress_power_off;
  }
  
  static const char * const v2m_dt_match[] __initconst = {
        "arm,vexpress",
-       "xen,xenvm",
        NULL,
  };
  
@@@ -462,4 -480,5 +461,4 @@@ DT_MACHINE_START(VEXPRESS_DT, "ARM-Vers
        .init_irq       = irqchip_init,
        .init_time      = v2m_dt_timer_init,
        .init_machine   = v2m_dt_init,
 -      .restart        = vexpress_restart,
  MACHINE_END
index adc0945255aea2dee90e170d2426c7a25fc128e0,528c05eab3a7bcdc0a353f1675cefaeea9f16e73..061f283f579e891b59f8a0c17c0dcafa7bdc4288
  #include <linux/of_platform.h>
  #include <linux/smp.h>
  
 -#include <asm/arch_timer.h>
  #include <asm/mach/arch.h>
 -#include <asm/mach/time.h>
  
  static void __init virt_init(void)
  {
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
  }
  
 -static void __init virt_timer_init(void)
 -{
 -      WARN_ON(arch_timer_of_register() != 0);
 -      WARN_ON(arch_timer_sched_clock_init() != 0);
 -}
 -
  static const char *virt_dt_match[] = {
        "linux,dummy-virt",
+       "xen,xenvm",
        NULL
  };
  
@@@ -39,6 -48,7 +40,6 @@@ extern struct smp_operations virt_smp_o
  
  DT_MACHINE_START(VIRT, "Dummy Virtual Machine")
        .init_irq       = irqchip_init,
 -      .init_time      = virt_timer_init,
        .init_machine   = virt_init,
        .smp            = smp_ops(virt_smp_ops),
        .dt_compat      = virt_dt_match,