Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 22 Apr 2015 16:08:39 +0000 (09:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 22 Apr 2015 16:08:39 +0000 (09:08 -0700)
Pull ARM SoC platform updates from Olof Johansson:
 "Our SoC branch usually contains expanded support for new SoCs and
  other core platform code.  In this case, that includes:

   - support for the new Annapurna Labs "Alpine" platform

   - a rework greatly simplifying adding new platform support to the
     MCPM subsystem (Multi-cluster power management)

   - cpuidle and PM improvements for Exynos3250

   - misc updates for Renesas, OMAP, Meson, i.MX.  Some of these could
     have gone in other branches but ended up here for various reasons"

* tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (53 commits)
  ARM: alpine: add support for generic pci
  ARM: Exynos: migrate DCSCB to the new MCPM backend abstraction
  ARM: vexpress: migrate DCSCB to the new MCPM backend abstraction
  ARM: vexpress: DCSCB: tighten CPU validity assertion
  ARM: vexpress: migrate TC2 to the new MCPM backend abstraction
  ARM: MCPM: move the algorithmic complexity to the core code
  ARM: EXYNOS: allow cpuidle driver usage on Exynos3250 SoC
  ARM: EXYNOS: add AFTR mode support for Exynos3250
  ARM: EXYNOS: add code for setting/clearing boot flag
  ARM: EXYNOS: fix CPU1 hotplug on Exynos3250
  ARM: S3C64XX: Use fixed IRQ bases to avoid conflicts on Cragganmore
  ARM: cygnus: fix const declaration bcm_cygnus_dt_compat
  ARM: DRA7: hwmod: Fix the hwmod class for GPTimer4
  ARM: DRA7: hwmod: Add data for GPTimers 13 through 16
  ARM: EXYNOS: Remove left over 'extra_save'
  ARM: EXYNOS: Constify exynos_pm_data array
  ARM: EXYNOS: use static in suspend.c
  ARM: EXYNOS: Use platform device name as power domain name
  ARM: EXYNOS: add support for async-bridge clocks for pm_domains
  ARM: omap-device: add missed callback for suspend-to-disk
  ...

15 files changed:
1  2 
Documentation/devicetree/bindings/vendor-prefixes.txt
MAINTAINERS
arch/arm/Kconfig
arch/arm/Kconfig.debug
arch/arm/Makefile
arch/arm/mach-exynos/exynos.c
arch/arm/mach-exynos/platsmp.c
arch/arm/mach-exynos/pm.c
arch/arm/mach-exynos/pm_domains.c
arch/arm/mach-exynos/suspend.c
arch/arm/mach-imx/Kconfig
arch/arm/mach-mvebu/board-v7.c
arch/arm/mach-omap2/omap_hwmod_7xx_data.c
arch/arm/mach-shmobile/Makefile
arch/arm/mach-shmobile/setup-rcar-gen2.c

index aecec35594eea8c613f8c9777586d5b2d0811219,0c5d6bbafd69a01b1bf94b959b4b226166b13f5f..54c1d5790358adcd4ee6daaa16c231d86e4db0ea
@@@ -11,18 -11,16 +11,19 @@@ adapteva   Adapteva, Inc
  adh   AD Holdings Plc.
  adi   Analog Devices, Inc.
  aeroflexgaisler       Aeroflex Gaisler AB
+ al    Annapurna Labs
  allwinner     Allwinner Technology Co., Ltd.
  alphascale    AlphaScale Integrated Circuits Systems, Inc.
  altr  Altera Corp.
  amcc  Applied Micro Circuits Corporation (APM, formally AMCC)
  amd   Advanced Micro Devices (AMD), Inc.
  amlogic       Amlogic, Inc.
 +ampire        Ampire Co., Ltd.
  ams   AMS AG
  amstaos       AMS-Taos Inc.
  apm   Applied Micro Circuits Corporation (APM)
 +aptina        Aptina Imaging
 +arasan        Arasan Chip Systems
  arm   ARM Ltd.
  armadeus      ARMadeus Systems SARL
  asahi-kasei   Asahi Kasei Corp.
@@@ -30,7 -28,6 +31,7 @@@ atmel Atmel Corporatio
  auo   AU Optronics Corporation
  avago Avago Technologies
  avic  Shanghai AVIC Optoelectronics Co., Ltd.
 +axis  Axis Communications AB
  bosch Bosch Sensortec GmbH
  brcm  Broadcom Corporation
  buffalo       Buffalo, Inc.
@@@ -39,7 -36,6 +40,7 @@@ capella       Capella Microsystems, In
  cavium        Cavium, Inc.
  cdns  Cadence Design Systems Inc.
  chipidea      Chipidea, Inc
 +chipone               ChipOne
  chipspark     ChipSPARK
  chrp  Common Hardware Reference Platform
  chunghwa      Chunghwa Picture Tubes Ltd.
@@@ -81,7 -77,6 +82,7 @@@ geniatech     Geniatech, Inc
  giantplus     Giantplus Technology Co., Ltd.
  globalscale   Globalscale Technologies, Inc.
  gmt   Global Mixed-mode Technology, Inc.
 +goodix        Shenzhen Huiding Technology Co., Ltd.
  google        Google, Inc.
  gumstix       Gumstix, Inc.
  gw    Gateworks Corporation
@@@ -118,6 -113,7 +119,7 @@@ merrii     Merrii Technology Co., Ltd
  micrel        Micrel Inc.
  microchip     Microchip Technology Inc.
  micron        Micron Technology Inc.
+ minix MINIX Technology Ltd.
  mitsubishi    Mitsubishi Electric Corporation
  mosaixtech    Mosaix Technologies, Inc.
  moxa  Moxa
@@@ -129,7 -125,6 +131,7 @@@ mxicy      Macronix International Co., Ltd
  national      National Semiconductor
  neonode               Neonode Inc.
  netgear       NETGEAR
 +netlogic      Broadcom Corporation (formerly NetLogic Microsystems)
  newhaven      Newhaven Display International
  nintendo      Nintendo
  nokia Nokia
@@@ -137,7 -132,6 +139,7 @@@ nvidia     NVIDI
  nxp   NXP Semiconductors
  onnn  ON Semiconductor Corp.
  opencores     OpenCores.org
 +ortustech     Ortus Technology Co., Ltd.
  ovti  OmniVision Technologies
  panasonic     Panasonic Corporation
  parade        Parade Technologies Inc.
@@@ -173,7 -167,6 +175,7 @@@ sii        Seiko Instruments, Inc
  silergy       Silergy Corp.
  sirf  SiRF Technology, Inc.
  sitronix      Sitronix Technology Corporation
 +skyworks      Skyworks Solutions, Inc.
  smsc  Standard Microsystems Corporation
  snps  Synopsys, Inc.
  solidrun      SolidRun
@@@ -201,7 -194,6 +203,7 @@@ voipac     Voipac Technologies s.r.o
  winbond Winbond Electronics corp.
  wlf   Wolfson Microelectronics
  wm    Wondermedia Technologies, Inc.
 +x-powers      X-Powers
  xes   Extreme Engineering Solutions (X-ES)
  xillybus      Xillybus Ltd.
  xlnx  Xilinx
diff --combined MAINTAINERS
index 9988e1a14f5045c21892bc0eb355b2f781b05899,a6491d765a2f21e6cdde152725b6ddd274d8d8c6..e85dbd350c0cf6784ea4ad1323f27ed82bfc6366
@@@ -569,12 -569,6 +569,12 @@@ L:       nios2-dev@lists.rocketboards.org (mo
  S:    Maintained
  F:    drivers/mailbox/mailbox-altera.c
  
 +ALTERA PIO DRIVER
 +M:    Tien Hock Loh <thloh@altera.com>
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/gpio/gpio-altera.c
 +
  ALTERA TRIPLE SPEED ETHERNET DRIVER
  M:    Vince Bridgers <vbridger@opensource.altera.com>
  L:    netdev@vger.kernel.org
@@@ -631,19 -625,20 +631,19 @@@ F:      drivers/iommu/amd_iommu*.[ch
  F:    include/linux/amd-iommu.h
  
  AMD KFD
 -M:      Oded Gabbay <oded.gabbay@amd.com>
 -L:      dri-devel@lists.freedesktop.org
 -T:      git git://people.freedesktop.org/~gabbayo/linux.git
 -S:      Supported
 -F:      drivers/gpu/drm/amd/amdkfd/
 +M:    Oded Gabbay <oded.gabbay@amd.com>
 +L:    dri-devel@lists.freedesktop.org
 +T:    git git://people.freedesktop.org/~gabbayo/linux.git
 +S:    Supported
 +F:    drivers/gpu/drm/amd/amdkfd/
  F:    drivers/gpu/drm/amd/include/cik_structs.h
  F:    drivers/gpu/drm/amd/include/kgd_kfd_interface.h
 -F:      drivers/gpu/drm/radeon/radeon_kfd.c
 -F:      drivers/gpu/drm/radeon/radeon_kfd.h
 -F:      include/uapi/linux/kfd_ioctl.h
 +F:    drivers/gpu/drm/radeon/radeon_kfd.c
 +F:    drivers/gpu/drm/radeon/radeon_kfd.h
 +F:    include/uapi/linux/kfd_ioctl.h
  
  AMD MICROCODE UPDATE SUPPORT
 -M:    Andreas Herrmann <herrmann.der.user@googlemail.com>
 -L:    amd64-microcode@amd64.org
 +M:    Borislav Petkov <bp@alien8.de>
  S:    Maintained
  F:    arch/x86/kernel/cpu/microcode/amd*
  
@@@ -730,7 -725,7 +730,7 @@@ F: staging/iio/trigger/iio-trig-bfin-ti
  
  ANDROID DRIVERS
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -M:    Arve Hjønnevåg <arve@android.com>
 +M:    Arve Hjønnevåg <arve@android.com>
  M:    Riley Andrews <riandrews@android.com>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/gregkh/staging.git
  L:    devel@driverdev.osuosl.org
@@@ -886,6 -881,11 +886,11 @@@ S:       Maintaine
  F:    drivers/media/rc/meson-ir.c
  N:    meson[x68]
  
+ ARM/Annapurna Labs ALPINE ARCHITECTURE
+ M:    Tsahee Zidenberg <tsahee@annapurnalabs.com>
+ S:    Maintained
+ F:    arch/arm/mach-alpine/
  ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES
  M:    Andrew Victor <linux@maxim.org.za>
  M:    Nicolas Ferre <nicolas.ferre@atmel.com>
@@@ -958,7 -958,7 +963,7 @@@ ARM/CORESIGHT FRAMEWORK AND DRIVER
  M:    Mathieu Poirier <mathieu.poirier@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    drivers/coresight/*
 +F:    drivers/hwtracing/coresight/*
  F:    Documentation/trace/coresight.txt
  F:    Documentation/devicetree/bindings/arm/coresight.txt
  F:    Documentation/ABI/testing/sysfs-bus-coresight-devices-*
@@@ -1035,16 -1035,6 +1040,16 @@@ F:    arch/arm/mach-mxs
  F:    arch/arm/boot/dts/imx*
  F:    arch/arm/configs/imx*_defconfig
  
 +ARM/FREESCALE VYBRID ARM ARCHITECTURE
 +M:    Shawn Guo <shawn.guo@linaro.org>
 +M:    Sascha Hauer <kernel@pengutronix.de>
 +R:    Stefan Agner <stefan@agner.ch>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
 +F:    arch/arm/mach-imx/*vf610*
 +F:    arch/arm/boot/dts/vf*
 +
  ARM/GLOMATION GESBC9312SX MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1191,7 -1181,7 +1196,7 @@@ M:      Sebastian Hesselbarth <sebastian.hes
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-mvebu/
 -F:    drivers/rtc/armada38x-rtc
 +F:    drivers/rtc/rtc-armada38x.c
  
  ARM/Marvell Berlin SoC support
  M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
@@@ -1203,7 -1193,6 +1208,7 @@@ ARM/Marvell Dove/MV78xx0/Orion SOC supp
  M:    Jason Cooper <jason@lakedaemon.net>
  M:    Andrew Lunn <andrew@lunn.ch>
  M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
 +M:    Gregory Clement <gregory.clement@free-electrons.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-dove/
@@@ -1221,7 -1210,6 +1226,7 @@@ F:      arch/arm/mach-orion5x/ts78xx-
  ARM/Mediatek SoC support
  M:    Matthias Brugger <matthias.bgg@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +L:    linux-mediatek@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/mt6*
  F:    arch/arm/boot/dts/mt8*
@@@ -1261,6 -1249,22 +1266,6 @@@ L:     openmoko-kernel@lists.openmoko.org (
  W:    http://wiki.openmoko.org/wiki/Neo_FreeRunner
  S:    Supported
  
 -ARM/QUALCOMM MSM MACHINE SUPPORT
 -M:    David Brown <davidb@codeaurora.org>
 -M:    Daniel Walker <dwalker@fifo99.com>
 -M:    Bryan Huntsman <bryanh@codeaurora.org>
 -L:    linux-arm-msm@vger.kernel.org
 -F:    arch/arm/mach-msm/
 -F:    drivers/video/fbdev/msm/
 -F:    drivers/mmc/host/msm_sdcc.c
 -F:    drivers/mmc/host/msm_sdcc.h
 -F:    drivers/tty/serial/msm_serial.h
 -F:    drivers/tty/serial/msm_serial.c
 -F:    drivers/*/pm8???-*
 -F:    drivers/mfd/ssbi.c
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm.git
 -S:    Maintained
 -
  ARM/TOSA MACHINE SUPPORT
  M:    Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
  M:    Dirk Opfer <dirk@opfer-online.de>
@@@ -1318,10 -1322,6 +1323,10 @@@ L:    linux-soc@vger.kernel.or
  S:    Maintained
  F:    arch/arm/mach-qcom/
  F:    drivers/soc/qcom/
 +F:    drivers/tty/serial/msm_serial.h
 +F:    drivers/tty/serial/msm_serial.c
 +F:    drivers/*/pm8???-*
 +F:    drivers/mfd/ssbi.c
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom.git
  
  ARM/RADISYS ENP2611 MACHINE SUPPORT
@@@ -1356,7 -1356,6 +1361,7 @@@ F:      drivers/i2c/busses/i2c-rk3x.
  F:    drivers/*/*rockchip*
  F:    drivers/*/*/*rockchip*
  F:    sound/soc/rockchip/
 +N:    rockchip
  
  ARM/SAMSUNG EXYNOS ARM ARCHITECTURES
  M:    Kukjin Kim <kgene@kernel.org>
@@@ -1463,8 -1462,6 +1468,8 @@@ F:      drivers/clocksource/arm_global_timer
  F:    drivers/i2c/busses/i2c-st.c
  F:    drivers/media/rc/st_rc.c
  F:    drivers/mmc/host/sdhci-st.c
 +F:    drivers/phy/phy-miphy28lp.c
 +F:    drivers/phy/phy-miphy365x.c
  F:    drivers/phy/phy-stih407-usb.c
  F:    drivers/phy/phy-stih41x-usb.c
  F:    drivers/pinctrl/pinctrl-st.c
@@@ -1672,8 -1669,8 +1677,8 @@@ F:      drivers/misc/eeprom/at24.
  F:    include/linux/platform_data/at24.h
  
  ATA OVER ETHERNET (AOE) DRIVER
 -M:    "Ed L. Cashin" <ecashin@coraid.com>
 -W:    http://support.coraid.com/support/linux
 +M:    "Ed L. Cashin" <ed.cashin@acm.org>
 +W:    http://www.openaoe.org/
  S:    Supported
  F:    Documentation/aoe/
  F:    drivers/block/aoe/
@@@ -1738,7 -1735,7 +1743,7 @@@ S:      Maintaine
  F:    drivers/net/ethernet/atheros/
  
  ATM
 -M:    Chas Williams <chas@cmf.nrl.navy.mil>
 +M:    Chas Williams <3chas3@gmail.com>
  L:    linux-atm-general@lists.sourceforge.net (moderated for non-subscribers)
  L:    netdev@vger.kernel.org
  W:    http://linux-atm.sourceforge.net
@@@ -1759,7 -1756,7 +1764,7 @@@ S:      Supporte
  F:    drivers/tty/serial/atmel_serial.c
  
  ATMEL Audio ALSA driver
 -M:    Bo Shen <voice.shen@atmel.com>
 +M:    Nicolas Ferre <nicolas.ferre@atmel.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/atmel
@@@ -1816,7 -1813,7 +1821,7 @@@ S:      Supporte
  F:    drivers/spi/spi-atmel.*
  
  ATMEL SSC DRIVER
 -M:    Bo Shen <voice.shen@atmel.com>
 +M:    Nicolas Ferre <nicolas.ferre@atmel.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Supported
  F:    drivers/misc/atmel-ssc.c
@@@ -1910,14 -1907,16 +1915,14 @@@ S:   Maintaine
  F:    drivers/media/radio/radio-aztech*
  
  B43 WIRELESS DRIVER
 -M:    Stefano Brivio <stefano.brivio@polimi.it>
  L:    linux-wireless@vger.kernel.org
  L:    b43-dev@lists.infradead.org
  W:    http://wireless.kernel.org/en/users/Drivers/b43
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/net/wireless/b43/
  
  B43LEGACY WIRELESS DRIVER
  M:    Larry Finger <Larry.Finger@lwfinger.net>
 -M:    Stefano Brivio <stefano.brivio@polimi.it>
  L:    linux-wireless@vger.kernel.org
  L:    b43-dev@lists.infradead.org
  W:    http://wireless.kernel.org/en/users/Drivers/b43
@@@ -1960,10 -1959,10 +1965,10 @@@ F:   Documentation/filesystems/befs.tx
  F:    fs/befs/
  
  BECKHOFF CX5020 ETHERCAT MASTER DRIVER
 -M: Dariusz Marcinkiewicz <reksio@newterm.pl>
 -L: netdev@vger.kernel.org
 -S: Maintained
 -F: drivers/net/ethernet/ec_bhf.c
 +M:    Dariusz Marcinkiewicz <reksio@newterm.pl>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/ethernet/ec_bhf.c
  
  BFS FILE SYSTEM
  M:    "Tigran A. Aivazian" <tigran@aivazian.fsnet.co.uk>
@@@ -2071,7 -2070,7 +2076,7 @@@ F:      include/net/bluetooth
  BONDING DRIVER
  M:    Jay Vosburgh <j.vosburgh@gmail.com>
  M:    Veaceslav Falico <vfalico@gmail.com>
 -M:    Andy Gospodarek <andy@greyhouse.net>
 +M:    Andy Gospodarek <gospo@cumulusnetworks.com>
  L:    netdev@vger.kernel.org
  W:    http://sourceforge.net/projects/bonding/
  S:    Supported
@@@ -2113,6 -2112,7 +2118,6 @@@ F:      drivers/net/ethernet/broadcom/bnx2x
  
  BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
  M:    Christian Daudt <bcm@fixthebug.org>
 -M:    Matt Porter <mporter@linaro.org>
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    bcm-kernel-feedback-list@broadcom.com
  T:    git git://github.com/broadcom/mach-bcm
@@@ -2374,9 -2374,8 +2379,9 @@@ F:      arch/x86/include/asm/tce.
  
  CAN NETWORK LAYER
  M:    Oliver Hartkopp <socketcan@hartkopp.net>
 +M:    Marc Kleine-Budde <mkl@pengutronix.de>
  L:    linux-can@vger.kernel.org
 -W:    http://gitorious.org/linux-can
 +W:    https://github.com/linux-can
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git
  S:    Maintained
@@@ -2392,7 -2391,7 +2397,7 @@@ CAN NETWORK DRIVER
  M:    Wolfgang Grandegger <wg@grandegger.com>
  M:    Marc Kleine-Budde <mkl@pengutronix.de>
  L:    linux-can@vger.kernel.org
 -W:    http://gitorious.org/linux-can
 +W:    https://github.com/linux-can
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git
  S:    Maintained
@@@ -2513,18 -2512,11 +2518,18 @@@ F:   Documentation/zh_CN
  
  CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
  M:    Peter Chen <Peter.Chen@freescale.com>
 -T:    git git://github.com/hzpeterchen/linux-usb.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
  L:    linux-usb@vger.kernel.org
  S:    Maintained
  F:    drivers/usb/chipidea/
  
 +CHIPONE ICN8318 I2C TOUCHSCREEN DRIVER
 +M:    Hans de Goede <hdegoede@redhat.com>
 +L:    linux-input@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/input/touchscreen/chipone_icn8318.txt
 +F:    drivers/input/touchscreen/chipone_icn8318.c
 +
  CHROME HARDWARE PLATFORM SUPPORT
  M:    Olof Johansson <olof@lixom.net>
  S:    Maintained
@@@ -2565,7 -2557,6 +2570,7 @@@ F:      include/linux/cleancache.
  
  CLK API
  M:    Russell King <linux@arm.linux.org.uk>
 +L:    linux-clk@vger.kernel.org
  S:    Maintained
  F:    include/linux/clk.h
  
@@@ -2626,7 -2617,7 +2631,7 @@@ F:      drivers/media/platform/coda
  COMMON CLK FRAMEWORK
  M:    Mike Turquette <mturquette@linaro.org>
  M:    Stephen Boyd <sboyd@codeaurora.org>
 -L:    linux-kernel@vger.kernel.org
 +L:    linux-clk@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
  S:    Maintained
  F:    drivers/clk/
@@@ -2819,7 -2810,6 +2824,7 @@@ L:      linux-crypto@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6.git
  S:    Maintained
  F:    Documentation/crypto/
 +F:    Documentation/DocBook/crypto-API.tmpl
  F:    arch/*/crypto/
  F:    crypto/
  F:    drivers/crypto/
@@@ -2890,11 -2880,11 +2895,11 @@@ S:   Supporte
  F:    drivers/net/ethernet/chelsio/cxgb3/
  
  CXGB3 ISCSI DRIVER (CXGB3I)
 -M:      Karen Xie <kxie@chelsio.com>
 -L:      linux-scsi@vger.kernel.org
 -W:      http://www.chelsio.com
 -S:      Supported
 -F:      drivers/scsi/cxgbi/cxgb3i
 +M:    Karen Xie <kxie@chelsio.com>
 +L:    linux-scsi@vger.kernel.org
 +W:    http://www.chelsio.com
 +S:    Supported
 +F:    drivers/scsi/cxgbi/cxgb3i
  
  CXGB3 IWARP RNIC DRIVER (IW_CXGB3)
  M:    Steve Wise <swise@chelsio.com>
@@@ -2911,11 -2901,11 +2916,11 @@@ S:   Supporte
  F:    drivers/net/ethernet/chelsio/cxgb4/
  
  CXGB4 ISCSI DRIVER (CXGB4I)
 -M:      Karen Xie <kxie@chelsio.com>
 -L:      linux-scsi@vger.kernel.org
 -W:      http://www.chelsio.com
 -S:      Supported
 -F:      drivers/scsi/cxgbi/cxgb4i
 +M:    Karen Xie <kxie@chelsio.com>
 +L:    linux-scsi@vger.kernel.org
 +W:    http://www.chelsio.com
 +S:    Supported
 +F:    drivers/scsi/cxgbi/cxgb4i
  
  CXGB4 IWARP RNIC DRIVER (IW_CXGB4)
  M:    Steve Wise <swise@chelsio.com>
@@@ -3141,15 -3131,12 +3146,15 @@@ S:   Supporte
  F:    Documentation/hwmon/da90??
  F:    drivers/gpio/gpio-da90??.c
  F:    drivers/hwmon/da90??-hwmon.c
 +F:    drivers/iio/adc/da91??-*.c
  F:    drivers/input/misc/da90??_onkey.c
  F:    drivers/input/touchscreen/da9052_tsi.c
  F:    drivers/leds/leds-da90??.c
  F:    drivers/mfd/da903x.c
  F:    drivers/mfd/da90??-*.c
 +F:    drivers/mfd/da91??-*.c
  F:    drivers/power/da9052-battery.c
 +F:    drivers/power/da91??-*.c
  F:    drivers/regulator/da903x.c
  F:    drivers/regulator/da9???-regulator.[ch]
  F:    drivers/rtc/rtc-da90??.c
@@@ -3159,7 -3146,6 +3164,7 @@@ F:      include/linux/mfd/da903x.
  F:    include/linux/mfd/da9052/
  F:    include/linux/mfd/da9055/
  F:    include/linux/mfd/da9063/
 +F:    include/linux/mfd/da9150/
  F:    include/sound/da[79]*.h
  F:    sound/soc/codecs/da[79]*.[ch]
  
@@@ -3260,13 -3246,6 +3265,13 @@@ S:    Maintaine
  F:    Documentation/hwmon/dme1737
  F:    drivers/hwmon/dme1737.c
  
 +DMI/SMBIOS SUPPORT
 +M:    Jean Delvare <jdelvare@suse.de>
 +S:    Maintained
 +F:    drivers/firmware/dmi-id.c
 +F:    drivers/firmware/dmi_scan.c
 +F:    include/linux/dmi.h
 +
  DOCKING STATION DRIVER
  M:    Shaohua Li <shaohua.li@intel.com>
  L:    linux-acpi@vger.kernel.org
@@@ -3280,9 -3259,7 +3285,9 @@@ S:      Maintaine
  F:    Documentation/
  X:    Documentation/ABI/
  X:    Documentation/devicetree/
 -X:    Documentation/[a-z][a-z]_[A-Z][A-Z]/
 +X:    Documentation/acpi
 +X:    Documentation/power
 +X:    Documentation/spi
  T:    git git://git.lwn.net/linux-2.6.git docs-next
  
  DOUBLETALK DRIVER
@@@ -3406,6 -3383,7 +3411,6 @@@ T:      git git://people.freedesktop.org/~ai
  S:    Supported
  F:    drivers/gpu/drm/rcar-du/
  F:    drivers/gpu/drm/shmobile/
 -F:    include/linux/platform_data/rcar-du.h
  F:    include/linux/platform_data/shmob_drm.h
  
  DSBR100 USB FM RADIO DRIVER
@@@ -4172,12 -4150,6 +4177,12 @@@ F:    sound/soc/fsl/fsl
  F:    sound/soc/fsl/imx*
  F:    sound/soc/fsl/mpc8610_hpcd.c
  
 +FREESCALE QORIQ MANAGEMENT COMPLEX DRIVER
 +M:    J. German Rivera <German.Rivera@freescale.com>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +F:    drivers/staging/fsl-mc/
 +
  FREEVXFS FILESYSTEM
  M:    Christoph Hellwig <hch@infradead.org>
  W:    ftp://ftp.openlinux.org/pub/people/hch/vxfs
@@@ -4327,15 -4299,6 +4332,15 @@@ S:    Supporte
  F:    drivers/phy/
  F:    include/linux/phy/
  
 +GENERIC PM DOMAINS
 +M:    "Rafael J. Wysocki" <rjw@rjwysocki.net>
 +M:    Kevin Hilman <khilman@kernel.org>
 +M:    Ulf Hansson <ulf.hansson@linaro.org>
 +L:    linux-pm@vger.kernel.org
 +S:    Supported
 +F:    drivers/base/power/domain*.c
 +F:    include/linux/pm_domain.h
 +
  GENERIC UIO DRIVER FOR PCI DEVICES
  M:    "Michael S. Tsirkin" <mst@redhat.com>
  L:    kvm@vger.kernel.org
@@@ -4349,10 -4312,10 +4354,10 @@@ F:   scripts/get_maintainer.p
  
  GFS2 FILE SYSTEM
  M:    Steven Whitehouse <swhiteho@redhat.com>
 +M:    Bob Peterson <rpeterso@redhat.com>
  L:    cluster-devel@redhat.com
  W:    http://sources.redhat.com/cluster/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git
  S:    Supported
  F:    Documentation/filesystems/gfs2*.txt
  F:    fs/gfs2/
@@@ -4462,7 -4425,7 +4467,7 @@@ S:      Maintaine
  F:    block/partitions/efi.*
  
  STK1160 USB VIDEO CAPTURE DRIVER
 -M:    Ezequiel Garcia <elezegarcia@gmail.com>
 +M:    Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
  L:    linux-media@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
  S:    Maintained
@@@ -4972,7 -4935,6 +4977,7 @@@ S:      Maintaine
  F:    drivers/iio/
  F:    drivers/staging/iio/
  F:    include/linux/iio/
 +F:    tools/iio/
  
  IKANOS/ADI EAGLE ADSL USB DRIVER
  M:    Matthieu Castet <castet.matthieu@free.fr>
@@@ -5119,7 -5081,7 +5124,7 @@@ S:      Supporte
  F:    drivers/platform/x86/intel_menlow.c
  
  INTEL IA32 MICROCODE UPDATE SUPPORT
 -M:    Tigran Aivazian <tigran@aivazian.fsnet.co.uk>
 +M:    Borislav Petkov <bp@alien8.de>
  S:    Maintained
  F:    arch/x86/kernel/cpu/microcode/core*
  F:    arch/x86/kernel/cpu/microcode/intel*
@@@ -5160,21 -5122,22 +5165,21 @@@ M:   Deepak Saxena <dsaxena@plexity.net
  S:    Maintained
  F:    drivers/char/hw_random/ixp4xx-rng.c
  
 -INTEL ETHERNET DRIVERS (e100/e1000/e1000e/fm10k/igb/igbvf/ixgb/ixgbe/ixgbevf/i40e/i40evf)
 +INTEL ETHERNET DRIVERS
  M:    Jeff Kirsher <jeffrey.t.kirsher@intel.com>
 -M:    Jesse Brandeburg <jesse.brandeburg@intel.com>
 -M:    Bruce Allan <bruce.w.allan@intel.com>
 -M:    Carolyn Wyborny <carolyn.wyborny@intel.com>
 -M:    Don Skidmore <donald.c.skidmore@intel.com>
 -M:    Greg Rose <gregory.v.rose@intel.com>
 -M:    Matthew Vick <matthew.vick@intel.com>
 -M:    John Ronciak <john.ronciak@intel.com>
 -M:    Mitch Williams <mitch.a.williams@intel.com>
 -M:    Linux NICS <linux.nics@intel.com>
 -L:    e1000-devel@lists.sourceforge.net
 +R:    Jesse Brandeburg <jesse.brandeburg@intel.com>
 +R:    Shannon Nelson <shannon.nelson@intel.com>
 +R:    Carolyn Wyborny <carolyn.wyborny@intel.com>
 +R:    Don Skidmore <donald.c.skidmore@intel.com>
 +R:    Matthew Vick <matthew.vick@intel.com>
 +R:    John Ronciak <john.ronciak@intel.com>
 +R:    Mitch Williams <mitch.a.williams@intel.com>
 +L:    intel-wired-lan@lists.osuosl.org
  W:    http://www.intel.com/support/feedback.htm
  W:    http://e1000.sourceforge.net/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next.git
 +Q:    http://patchwork.ozlabs.org/project/intel-wired-lan/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
  S:    Supported
  F:    Documentation/networking/e100.txt
  F:    Documentation/networking/e1000.txt
@@@ -5218,7 -5181,7 +5223,7 @@@ F:      arch/x86/kernel/tboot.
  INTEL WIRELESS WIMAX CONNECTION 2400
  M:    Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
  M:    linux-wimax@intel.com
 -L:     wimax@linuxwimax.org (subscribers-only)
 +L:    wimax@linuxwimax.org (subscribers-only)
  S:    Supported
  W:    http://linuxwimax.org
  F:    Documentation/wimax/README.i2400m
@@@ -5296,13 -5259,6 +5301,13 @@@ F:    drivers/char/ipmi
  F:    include/linux/ipmi*
  F:    include/uapi/linux/ipmi*
  
 +QCOM AUDIO (ASoC) DRIVERS
 +M:    Patrick Lai <plai@codeaurora.org>
 +M:    Banajit Goswami <bgoswami@codeaurora.org>
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 +S:    Supported
 +F:    sound/soc/qcom/
 +
  IPS SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <aacraid@adaptec.com>
  L:    linux-scsi@vger.kernel.org
@@@ -5623,8 -5579,6 +5628,8 @@@ S:      Supporte
  F:    Documentation/*/kvm*.txt
  F:    Documentation/virtual/kvm/
  F:    arch/*/kvm/
 +F:    arch/x86/kernel/kvm.c
 +F:    arch/x86/kernel/kvmclock.c
  F:    arch/*/include/asm/kvm*
  F:    include/linux/kvm*
  F:    include/uapi/linux/kvm*
@@@ -5921,7 -5875,7 +5926,7 @@@ F:      arch/powerpc/platforms/512x
  F:    arch/powerpc/platforms/52xx/
  
  LINUX FOR POWERPC EMBEDDED PPC4XX
 -M:  Alistair Popple <alistair@popple.id.au>
 +M:    Alistair Popple <alistair@popple.id.au>
  M:    Matt Porter <mporter@kernel.crashing.org>
  W:    http://www.penguinppc.org/
  L:    linuxppc-dev@lists.ozlabs.org
@@@ -6154,6 -6108,16 +6159,6 @@@ Q:     http://patchwork.linuxtv.org/project
  S:    Maintained
  F:    drivers/media/dvb-frontends/m88rs2000*
  
 -M88TS2022 MEDIA DRIVER
 -M:    Antti Palosaari <crope@iki.fi>
 -L:    linux-media@vger.kernel.org
 -W:    http://linuxtv.org/
 -W:    http://palosaari.fi/linux/
 -Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/anttip/media_tree.git
 -S:    Maintained
 -F:    drivers/media/tuners/m88ts2022*
 -
  MA901 MASTERKIT USB FM RADIO DRIVER
  M:    Alexey Klimov <klimov.linux@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -6346,7 -6310,6 +6351,7 @@@ F:      drivers/scsi/megaraid
  
  MELLANOX ETHERNET DRIVER (mlx4_en)
  M:    Amir Vadai <amirv@mellanox.com>
 +M:    Ido Shamay <idos@mellanox.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://www.mellanox.com
@@@ -6384,7 -6347,7 +6389,7 @@@ S:      Supporte
  F:    drivers/watchdog/mena21_wdt.c
  
  MEN CHAMELEON BUS (mcb)
 -M:    Johannes Thumshirn <johannes.thumshirn@men.de>
 +M:    Johannes Thumshirn <johannes.thumshirn@men.de>
  S:    Supported
  F:    drivers/mcb/
  F:    include/linux/mcb.h
@@@ -6577,7 -6540,6 +6582,7 @@@ M:      Laurent Pinchart <laurent.pinchart@i
  L:    linux-media@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
  S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/mt9v032.txt
  F:    drivers/media/i2c/mt9v032.c
  F:    include/media/mt9v032.h
  
@@@ -6590,8 -6552,10 +6595,8 @@@ F:     drivers/mfd
  F:    include/linux/mfd/
  
  MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
 -M:    Chris Ball <chris@printf.net>
  M:    Ulf Hansson <ulf.hansson@linaro.org>
  L:    linux-mmc@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git
  T:    git git://git.linaro.org/people/ulf.hansson/mmc.git
  S:    Maintained
  F:    drivers/mmc/
@@@ -6967,13 -6931,6 +6972,13 @@@ S:    Supporte
  F:    drivers/block/nvme*
  F:    include/linux/nvme.h
  
 +NXP-NCI NFC DRIVER
 +M:    Clément Perrochaud <clement.perrochaud@effinnov.com>
 +R:    Charles Gorand <charles.gorand@effinnov.com>
 +L:    linux-nfc@lists.01.org (moderated for non-subscribers)
 +S:    Supported
 +F:    drivers/nfc/nxp-nci
 +
  NXP TDA998X DRM DRIVER
  M:    Russell King <rmk+kernel@arm.linux.org.uk>
  S:    Supported
@@@ -6995,8 -6952,6 +7000,8 @@@ Q:      http://patchwork.kernel.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
  S:    Maintained
  F:    arch/arm/*omap*/
 +F:    arch/arm/configs/omap1_defconfig
 +F:    arch/arm/configs/omap2plus_defconfig
  F:    drivers/i2c/busses/i2c-omap.c
  F:    drivers/irqchip/irq-omap-intc.c
  F:    drivers/mfd/*omap*.c
@@@ -7226,15 -7181,6 +7231,15 @@@ F:    Documentation/devicetree
  F:    arch/*/boot/dts/
  F:    include/dt-bindings/
  
 +OPEN FIRMWARE AND DEVICE TREE OVERLAYS
 +M:    Pantelis Antoniou <pantelis.antoniou@konsulko.com>
 +L:    devicetree@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/dynamic-resolution-notes.txt
 +F:    Documentation/devicetree/overlay-notes.txt
 +F:    drivers/of/overlay.c
 +F:    drivers/of/resolver.c
 +
  OPENRISC ARCHITECTURE
  M:    Jonas Bonn <jonas@southpole.se>
  W:    http://openrisc.net
@@@ -7952,10 -7898,10 +7957,10 @@@ L:   rtc-linux@googlegroups.co
  S:    Maintained
  
  QAT DRIVER
 -M:      Tadeusz Struk <tadeusz.struk@intel.com>
 -L:      qat-linux@intel.com
 -S:      Supported
 -F:      drivers/crypto/qat/
 +M:    Tadeusz Struk <tadeusz.struk@intel.com>
 +L:    qat-linux@intel.com
 +S:    Supported
 +F:    drivers/crypto/qat/
  
  QIB DRIVER
  M:    Mike Marciniszyn <infinipath@intel.com>
@@@ -8106,17 -8052,11 +8111,17 @@@ S:   Maintaine
  F:    drivers/net/wireless/rt2x00/
  
  RAMDISK RAM BLOCK DEVICE DRIVER
 -M:    Nick Piggin <npiggin@kernel.dk>
 +M:    Jens Axboe <axboe@kernel.dk>
  S:    Maintained
  F:    Documentation/blockdev/ramdisk.txt
  F:    drivers/block/brd.c
  
 +PERSISTENT MEMORY DRIVER
 +M:    Ross Zwisler <ross.zwisler@linux.intel.com>
 +L:    linux-nvdimm@lists.01.org
 +S:    Supported
 +F:    drivers/block/pmem.c
 +
  RANDOM NUMBER DRIVER
  M:    "Theodore Ts'o" <tytso@mit.edu>
  S:    Maintained
@@@ -8188,7 -8128,6 +8193,7 @@@ X:      kernel/torture.
  
  REAL TIME CLOCK (RTC) SUBSYSTEM
  M:    Alessandro Zummo <a.zummo@towertech.it>
 +M:    Alexandre Belloni <alexandre.belloni@free-electrons.com>
  L:    rtc-linux@googlegroups.com
  Q:    http://patchwork.ozlabs.org/project/rtc-linux/list/
  S:    Maintained
@@@ -8400,6 -8339,7 +8405,6 @@@ F:      block/partitions/ibm.
  
  S390 NETWORK DRIVERS
  M:    Ursula Braun <ursula.braun@de.ibm.com>
 -M:    Frank Blaschka <blaschka@linux.vnet.ibm.com>
  M:    linux390@de.ibm.com
  L:    linux-s390@vger.kernel.org
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -8545,14 -8485,6 +8550,14 @@@ S:    Supporte
  L:    netdev@vger.kernel.org
  F:    drivers/net/ethernet/samsung/sxgbe/
  
 +SAMSUNG THERMAL DRIVER
 +M:    Lukasz Majewski <l.majewski@samsung.com>
 +L:    linux-pm@vger.kernel.org
 +L:    linux-samsung-soc@vger.kernel.org
 +S:    Supported
 +T:    https://github.com/lmajewski/linux-samsung-thermal.git
 +F:    drivers/thermal/samsung/
 +
  SAMSUNG USB2 PHY DRIVER
  M:    Kamil Debski <k.debski@samsung.com>
  L:    linux-kernel@vger.kernel.org
@@@ -8607,7 -8539,6 +8612,7 @@@ F:      include/uapi/linux/timex.
  F:    kernel/time/clocksource.c
  F:    kernel/time/time*.c
  F:    kernel/time/ntp.c
 +F:    tools/testing/selftests/timers/
  
  SC1200 WDT DRIVER
  M:    Zwane Mwaikambo <zwanem@gmail.com>
@@@ -8659,9 -8590,11 +8664,9 @@@ F:     drivers/scsi/sg.
  F:    include/scsi/sg.h
  
  SCSI SUBSYSTEM
 -M:    "James E.J. Bottomley" <JBottomley@parallels.com>
 +M:    "James E.J. Bottomley" <JBottomley@odin.com>
  L:    linux-scsi@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-pending-2.6.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git
  S:    Maintained
  F:    drivers/scsi/
  F:    include/scsi/
@@@ -8714,8 -8647,10 +8719,8 @@@ S:     Maintaine
  F:    drivers/mmc/host/sdricoh_cs.c
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
 -M:    Chris Ball <chris@printf.net>
  L:    linux-mmc@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git
 -S:    Maintained
 +S:    Orphan
  F:    drivers/mmc/host/sdhci.*
  F:    drivers/mmc/host/sdhci-pltfm.[ch]
  
@@@ -8731,12 -8666,18 +8736,12 @@@ F:   include/linux/seccomp.
  K:    \bsecure_computing
  K:    \bTIF_SECCOMP\b
  
 -SECURE DIGITAL HOST CONTROLLER INTERFACE, OPEN FIRMWARE BINDINGS (SDHCI-OF)
 -M:    Anton Vorontsov <anton@enomsg.org>
 -L:    linuxppc-dev@lists.ozlabs.org
 -L:    linux-mmc@vger.kernel.org
 -S:    Maintained
 -F:    drivers/mmc/host/sdhci-pltfm.[ch]
 -
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) SAMSUNG DRIVER
  M:    Ben Dooks <ben-linux@fluff.org>
 +M:    Jaehoon Chung <jh80.chung@samsung.com>
  L:    linux-mmc@vger.kernel.org
  S:    Maintained
 -F:    drivers/mmc/host/sdhci-s3c.c
 +F:    drivers/mmc/host/sdhci-s3c*
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) ST SPEAR DRIVER
  M:    Viresh Kumar <viresh.linux@gmail.com>
@@@ -8973,16 -8914,6 +8978,16 @@@ T:    git git://linuxtv.org/mhadli/v4l-dvb
  S:    Maintained
  F:    drivers/media/platform/am437x/
  
 +OV2659 OMNIVISION SENSOR DRIVER
 +M:    Lad, Prabhakar <prabhakar.csengg@gmail.com>
 +L:    linux-media@vger.kernel.org
 +W:    http://linuxtv.org/
 +Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 +T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
 +S:    Maintained
 +F:    drivers/media/i2c/ov2659.c
 +F:    include/media/ov2659.h
 +
  SIS 190 ETHERNET DRIVER
  M:    Francois Romieu <romieu@fr.zoreil.com>
  L:    netdev@vger.kernel.org
@@@ -9413,14 -9344,6 +9418,14 @@@ L:    linux-fbdev@vger.kernel.or
  S:    Maintained
  F:    drivers/staging/sm7xxfb/
  
 +STAGING - SILICON MOTION SM750 FRAME BUFFER DRIVER
 +M:    Sudip Mukherjee <sudipm.mukherjee@gmail.com>
 +M:    Teddy Wang <teddy.wang@siliconmotion.com>
 +M:    Sudip Mukherjee <sudip@vectorindia.org>
 +L:    linux-fbdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/staging/sm750fb/
 +
  STAGING - SLICOSS
  M:    Lior Dotan <liodot@gmail.com>
  M:    Christopher Harrer <charrer@alacritech.com>
@@@ -9883,7 -9806,7 +9888,7 @@@ F:      include/linux/wl12xx.
  
  TIPC NETWORK LAYER
  M:    Jon Maloy <jon.maloy@ericsson.com>
 -M:    Allan Stephens <allan.stephens@windriver.com>
 +M:    Ying Xue <ying.xue@windriver.com>
  L:    netdev@vger.kernel.org (core kernel code)
  L:    tipc-discussion@lists.sourceforge.net (user apps, general discussion)
  W:    http://tipc.sourceforge.net/
@@@ -9987,7 -9910,6 +9992,7 @@@ F:      drivers/media/pci/tw68
  TPM DEVICE DRIVER
  M:    Peter Huewe <peterhuewe@gmx.de>
  M:    Marcel Selhorst <tpmdd@selhorst.net>
 +R:    Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
  W:    http://tpmdd.sourceforge.net
  L:    tpmdd-devel@lists.sourceforge.net (moderated for non-subscribers)
  Q:    git git://github.com/PeterHuewe/linux-tpmdd.git
@@@ -10141,11 -10063,11 +10146,11 @@@ F:        include/linux/cdrom.
  F:    include/uapi/linux/cdrom.h
  
  UNISYS S-PAR DRIVERS
 -M:     Benjamin Romer <benjamin.romer@unisys.com>
 -M:     David Kershner <david.kershner@unisys.com>
 -L:     sparmaintainer@unisys.com (Unisys internal)
 -S:     Supported
 -F:     drivers/staging/unisys/
 +M:    Benjamin Romer <benjamin.romer@unisys.com>
 +M:    David Kershner <david.kershner@unisys.com>
 +L:    sparmaintainer@unisys.com (Unisys internal)
 +S:    Supported
 +F:    drivers/staging/unisys/
  
  UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER
  M:    Vinayak Holikatti <vinholikatti@gmail.com>
@@@ -10193,12 -10115,6 +10198,12 @@@ S: Maintaine
  F:    drivers/net/usb/cdc_*.c
  F:    include/uapi/linux/usb/cdc.h
  
 +USB CHAOSKEY DRIVER
 +M:    Keith Packard <keithp@keithp.com>
 +L:    linux-usb@vger.kernel.org
 +S:    Maintained
 +F:    drivers/usb/misc/chaoskey.c
 +
  USB CYPRESS C67X00 DRIVER
  M:    Peter Korsgaard <jacmet@sunsite.dk>
  L:    linux-usb@vger.kernel.org
@@@ -10277,13 -10193,6 +10282,13 @@@ S: Maintaine
  F:    Documentation/usb/ohci.txt
  F:    drivers/usb/host/ohci*
  
 +USB OTG FSM (Finite State Machine)
 +M:    Peter Chen <Peter.Chen@freescale.com>
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
 +L:    linux-usb@vger.kernel.org
 +S:    Maintained
 +F:    drivers/usb/common/usb-otg-fsm.c
 +
  USB OVER IP DRIVER
  M:    Valentina Manea <valentina.manea.m@gmail.com>
  M:    Shuah Khan <shuah.kh@samsung.com>
@@@ -10587,14 -10496,6 +10592,14 @@@ L: linux-kernel@vger.kernel.or
  S:    Maintained
  F:    drivers/misc/vmw_balloon.c
  
 +VMWARE VMMOUSE SUBDRIVER
 +M:    "VMware Graphics" <linux-graphics-maintainer@vmware.com>
 +M:    "VMware, Inc." <pv-drivers@vmware.com>
 +L:    linux-input@vger.kernel.org
 +S:    Maintained
 +F:    drivers/input/mouse/vmmouse.c
 +F:    drivers/input/mouse/vmmouse.h
 +
  VMWARE VMXNET3 ETHERNET DRIVER
  M:    Shreyas Bhatewara <sbhatewara@vmware.com>
  M:    "VMware, Inc." <pv-drivers@vmware.com>
@@@ -10710,7 -10611,7 +10715,7 @@@ F:   drivers/media/rc/winbond-cir.
  WIMAX STACK
  M:    Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
  M:    linux-wimax@intel.com
 -L:     wimax@linuxwimax.org (subscribers-only)
 +L:    wimax@linuxwimax.org (subscribers-only)
  S:    Supported
  W:    http://linuxwimax.org
  F:    Documentation/wimax/README.wimax
@@@ -10920,16 -10821,6 +10925,16 @@@ L: linux-serial@vger.kernel.or
  S:    Maintained
  F:    drivers/tty/serial/uartlite.c
  
 +XILINX VIDEO IP CORES
 +M:    Hyun Kwon <hyun.kwon@xilinx.com>
 +M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Supported
 +F:    Documentation/devicetree/bindings/media/xilinx/
 +F:    drivers/media/platform/xilinx/
 +F:    include/uapi/linux/xilinx-v4l2-controls.h
 +
  XILLYBUS DRIVER
  M:    Eli Billauer <eli.billauer@gmail.com>
  L:    linux-kernel@vger.kernel.org
@@@ -11011,7 -10902,6 +11016,7 @@@ L:   linux-mm@kvack.or
  S:    Maintained
  F:    mm/zsmalloc.c
  F:    include/linux/zsmalloc.h
 +F:    Documentation/vm/zsmalloc.txt
  
  ZSWAP COMPRESSED SWAP CACHING
  M:    Seth Jennings <sjennings@variantweb.net>
diff --combined arch/arm/Kconfig
index c8baa96ed748d251686dd1ec774e88e16b44c25e,b2796c806f424dba66d900c36442a4d3cf61c0bc..d74c9ea6eb064f48afcde2e9b9768a2953a4e584
@@@ -1,8 -1,8 +1,8 @@@
  config ARM
        bool
        default y
 -      select ARCH_BINFMT_ELF_RANDOMIZE_PIE
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
 +      select ARCH_HAS_ELF_RANDOMIZE
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
        select ARCH_HAVE_CUSTOM_GPIO_H
        select ARCH_HAS_GCOV_PROFILE_ALL
@@@ -21,7 -21,6 +21,7 @@@
        select GENERIC_IDLE_POLL_SETUP
        select GENERIC_IRQ_PROBE
        select GENERIC_IRQ_SHOW
 +      select GENERIC_IRQ_SHOW_LEVEL
        select GENERIC_PCI_IOMAP
        select GENERIC_SCHED_CLOCK
        select GENERIC_SMP_IDLE_THREAD
@@@ -287,11 -286,6 +287,11 @@@ config GENERIC_BU
        def_bool y
        depends on BUG
  
 +config PGTABLE_LEVELS
 +      int
 +      default 3 if ARM_LPAE
 +      default 2
 +
  source "init/Kconfig"
  
  source "kernel/Kconfig.freezer"
@@@ -367,9 -361,9 +367,9 @@@ config ARCH_AT9
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
        select IRQ_DOMAIN
 -      select NEED_MACH_IO_H if PCCARD
        select PINCTRL
        select PINCTRL_AT91
 +      select SOC_BUS
        select USE_OF
        help
          This enables support for systems based on Atmel
@@@ -625,13 -619,24 +625,13 @@@ config ARCH_PX
        select GENERIC_CLOCKEVENTS
        select GPIO_PXA
        select HAVE_IDE
 +      select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
        select PLAT_PXA
        select SPARSE_IRQ
        help
          Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
  
 -config ARCH_MSM
 -      bool "Qualcomm MSM (non-multiplatform)"
 -      select ARCH_REQUIRE_GPIOLIB
 -      select COMMON_CLK
 -      select GENERIC_CLOCKEVENTS
 -      help
 -        Support for Qualcomm MSM/QSD based systems.  This runs on the
 -        apps processor of the MSM/QSD and depends on a shared memory
 -        interface to the modem processor which runs the baseband
 -        stack and controls some vital subsystems
 -        (clock and power control, etc).
 -
  config ARCH_SHMOBILE_LEGACY
        bool "Renesas ARM SoCs (non-multiplatform)"
        select ARCH_SHMOBILE
@@@ -839,6 -844,8 +839,8 @@@ config ARCH_VIR
  #
  source "arch/arm/mach-mvebu/Kconfig"
  
+ source "arch/arm/mach-alpine/Kconfig"
  source "arch/arm/mach-asm9260/Kconfig"
  
  source "arch/arm/mach-at91/Kconfig"
@@@ -885,6 -892,8 +887,6 @@@ source "arch/arm/mach-ks8695/Kconfig
  
  source "arch/arm/mach-meson/Kconfig"
  
 -source "arch/arm/mach-msm/Kconfig"
 -
  source "arch/arm/mach-moxart/Kconfig"
  
  source "arch/arm/mach-mv78xx0/Kconfig"
@@@ -1050,7 -1059,7 +1052,7 @@@ config ARM_ERRATA_43097
        depends on CPU_V7
        help
          This option enables the workaround for the 430973 Cortex-A8
 -        (r1p0..r1p2) erratum. If a code sequence containing an ARM/Thumb
 +        r1p* erratum. If a code sequence containing an ARM/Thumb
          interworking branch is replaced with another code sequence at the
          same virtual address, whether due to self-modifying code or virtual
          to physical address re-mapping, Cortex-A8 does not recover from the
@@@ -1119,7 -1128,6 +1121,7 @@@ config ARM_ERRATA_74223
  config ARM_ERRATA_643719
        bool "ARM errata: LoUIS bit field in CLIDR register is incorrect"
        depends on CPU_V7 && SMP
 +      default y
        help
          This option enables the workaround for the 643719 Cortex-A9 (prior to
          r1p0) erratum. On affected cores the LoUIS bit field of the CLIDR
@@@ -1337,7 -1345,7 +1339,7 @@@ config SM
          If you don't know what to do here, say N.
  
  config SMP_ON_UP
 -      bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)"
 +      bool "Allow booting SMP kernel on uniprocessor systems"
        depends on SMP && !XIP_KERNEL && MMU
        default y
        help
@@@ -2119,6 -2127,16 +2121,6 @@@ menu "Userspace binary formats
  
  source "fs/Kconfig.binfmt"
  
 -config ARTHUR
 -      tristate "RISC OS personality"
 -      depends on !AEABI
 -      help
 -        Say Y here to include the kernel code necessary if you want to run
 -        Acorn RISC OS/Arthur binaries under Linux. This code is still very
 -        experimental; if this sounds frightening, say N and sleep in peace.
 -        You can also say M here to compile this support as a module (which
 -        will be called arthur).
 -
  endmenu
  
  menu "Power management options"
@@@ -2151,9 -2169,6 +2153,9 @@@ source "arch/arm/Kconfig.debug
  source "security/Kconfig"
  
  source "crypto/Kconfig"
 +if CRYPTO
 +source "arch/arm/crypto/Kconfig"
 +endif
  
  source "lib/Kconfig"
  
diff --combined arch/arm/Kconfig.debug
index 4cfb4b8fc2dde3bf206f29843d40b7ebe4524163,77f9f8eac1621b88db494867238ff5d411b47cd3..771d5185a3977750ab291d45ea668aabf91fcfd4
@@@ -93,6 -93,14 +93,14 @@@ choic
        prompt "Kernel low-level debugging port"
        depends on DEBUG_LL
  
+       config DEBUG_ALPINE_UART0
+               bool "Kernel low-level debugging messages via Alpine UART0"
+               depends on ARCH_ALPINE
+               select DEBUG_UART_8250
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Alpine based platforms.
        config DEBUG_ASM9260_UART
                bool "Kernel low-level debugging via asm9260 UART"
                depends on MACH_ASM9260
                  Say Y here if you want kernel low-level debugging support
                  on MMP UART3.
  
 -      config DEBUG_MSM_UART
 -              bool "Kernel low-level debugging messages via MSM UART"
 -              depends on ARCH_MSM
 -              help
 -                Say Y here if you want the debug print routines to direct
 -                their output to the serial port on MSM devices.
 -
 -                ARCH                DEBUG_UART_PHYS   DEBUG_UART_VIRT   #
 -                MSM7X00A, QSD8X50   0xa9a00000        0xe1000000        UART1
 -                MSM7X00A, QSD8X50   0xa9b00000        0xe1000000        UART2
 -                MSM7X00A, QSD8X50   0xa9c00000        0xe1000000        UART3
 -
 -                MSM7X30             0xaca00000        0xe1000000        UART1
 -                MSM7X30             0xacb00000        0xe1000000        UART2
 -                MSM7X30             0xacc00000        0xe1000000        UART3
 -
 -                Please adjust DEBUG_UART_PHYS and DEBUG_UART_BASE configuration
 -                options based on your needs.
 -
        config DEBUG_QCOM_UARTDM
                bool "Kernel low-level debugging messages via QCOM UARTDM"
                depends on ARCH_QCOM
                  via SCIF2 on Renesas R-Car H1 (R8A7779).
  
        config DEBUG_RCAR_GEN2_SCIF0
 -              bool "Kernel low-level debugging messages via SCIF0 on R8A7790/R8A7791/R8A7793)"
 +              bool "Kernel low-level debugging messages via SCIF0 on R8A7790/R8A7791/R8A7793"
                depends on ARCH_R8A7790 || ARCH_R8A7791 || ARCH_R8A7793
                help
                  Say Y here if you want kernel low-level debugging support
@@@ -1276,7 -1303,7 +1284,7 @@@ config DEBUG_LL_INCLUD
                                 DEBUG_IMX6SL_UART || \
                                 DEBUG_IMX6SX_UART
        default "debug/ks8695.S" if DEBUG_KS8695_UART
 -      default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
 +      default "debug/msm.S" if DEBUG_QCOM_UARTDM
        default "debug/netx.S" if DEBUG_NETX_UART
        default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
        default "debug/renesas-scif.S" if DEBUG_R7S72100_SCIF2
@@@ -1369,6 -1396,7 +1377,6 @@@ config DEBUG_UART_PHY
        default 0x80230000 if DEBUG_PICOXCELL_UART
        default 0x808c0000 if ARCH_EP93XX
        default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
 -      default 0xa9a00000 if DEBUG_MSM_UART
        default 0xb0060000 if DEBUG_SIRFPRIMA2_UART1
        default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
        default 0xc0013000 if DEBUG_U300_UART
        default 0xf8b00000 if DEBUG_HIX5HD2_UART
        default 0xf991e000 if DEBUG_QCOM_UARTDM
        default 0xfcb00000 if DEBUG_HI3620_UART
+       default 0xfd883000 if DEBUG_ALPINE_UART0
        default 0xfe800000 if ARCH_IOP32X
        default 0xff690000 if DEBUG_RK32_UART2
        default 0xffc02000 if DEBUG_SOCFPGA_UART
                DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
                DEBUG_LL_UART_EFM32 || \
                DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
 -              DEBUG_MSM_UART || DEBUG_NETX_UART || \
 +              DEBUG_NETX_UART || \
                DEBUG_QCOM_UARTDM || DEBUG_R7S72100_SCIF2 || \
                DEBUG_RCAR_GEN1_SCIF0 || DEBUG_RCAR_GEN1_SCIF2 || \
                DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \
@@@ -1426,6 -1455,7 +1435,6 @@@ config DEBUG_UART_VIR
        hex "Virtual base address of debug UART"
        default 0xe0000a00 if DEBUG_NETX_UART
        default 0xe0010fe0 if ARCH_RPC
 -      default 0xe1000000 if DEBUG_MSM_UART
        default 0xf0000be0 if ARCH_EBSA110
        default 0xf0010000 if DEBUG_ASM9260_UART
        default 0xf01fb000 if DEBUG_NOMADIK_UART
        default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX
        default 0xfd000000 if ARCH_SPEAR13XX
        default 0xfd012000 if ARCH_MV78XX0
+       default 0xfd883000 if DEBUG_ALPINE_UART0
        default 0xfde12000 if ARCH_DOVE
        default 0xfe012000 if ARCH_ORION5X
        default 0xf31004c0 if DEBUG_MESON_UARTAO
        default DEBUG_UART_PHYS if !MMU
        depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
                DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
 -              DEBUG_MSM_UART || DEBUG_NETX_UART || \
 +              DEBUG_NETX_UART || \
                DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
                DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || \
                DEBUG_SIRFSOC_UART || DEBUG_DIGICOLOR_UA0
@@@ -1522,7 -1553,7 +1532,7 @@@ config DEBUG_UART_8250_WOR
        depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
        depends on DEBUG_UART_8250_SHIFT >= 2
        default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \
-               ARCH_KEYSTONE || \
+               ARCH_KEYSTONE || DEBUG_ALPINE_UART0 || \
                DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \
                DEBUG_DAVINCI_DA8XX_UART2 || \
                DEBUG_BCM_KONA_UART || DEBUG_RK32_UART2 || \
@@@ -1535,7 -1566,7 +1545,7 @@@ config DEBUG_UART_8250_FLOW_CONTRO
  
  config DEBUG_UNCOMPRESS
        bool
 -      depends on ARCH_MULTIPLATFORM || ARCH_MSM || PLAT_SAMSUNG
 +      depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG
        default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
                     (!DEBUG_TEGRA_UART || !ZBOOT_ROM)
        help
@@@ -1589,6 -1620,59 +1599,6 @@@ config DEBUG_SET_MODULE_RON
          against certain classes of kernel exploits.
          If in doubt, say "N".
  
 -menuconfig CORESIGHT
 -      bool "CoreSight Tracing Support"
 -      select ARM_AMBA
 -      help
 -        This framework provides a kernel interface for the CoreSight debug
 -        and trace drivers to register themselves with. It's intended to build
 -        a topological view of the CoreSight components based on a DT
 -        specification and configure the right serie of components when a
 -        trace source gets enabled.
 -
 -if CORESIGHT
 -config CORESIGHT_LINKS_AND_SINKS
 -      bool "CoreSight Link and Sink drivers"
 -      help
 -        This enables support for CoreSight link and sink drivers that are
 -        responsible for transporting and collecting the trace data
 -        respectively.  Link and sinks are dynamically aggregated with a trace
 -        entity at run time to form a complete trace path.
 -
 -config CORESIGHT_LINK_AND_SINK_TMC
 -      bool "Coresight generic TMC driver"
 -      depends on CORESIGHT_LINKS_AND_SINKS
 -      help
 -        This enables support for the Trace Memory Controller driver.  Depending
 -        on its configuration the device can act as a link (embedded trace router
 -        - ETR) or sink (embedded trace FIFO).  The driver complies with the
 -        generic implementation of the component without special enhancement or
 -        added features.
 -
 -config CORESIGHT_SINK_TPIU
 -      bool "Coresight generic TPIU driver"
 -      depends on CORESIGHT_LINKS_AND_SINKS
 -      help
 -        This enables support for the Trace Port Interface Unit driver, responsible
 -        for bridging the gap between the on-chip coresight components and a trace
 -        port collection engine, typically connected to an external host for use
 -        case capturing more traces than the on-board coresight memory can handle.
 -
 -config CORESIGHT_SINK_ETBV10
 -      bool "Coresight ETBv1.0 driver"
 -      depends on CORESIGHT_LINKS_AND_SINKS
 -      help
 -        This enables support for the Embedded Trace Buffer version 1.0 driver
 -        that complies with the generic implementation of the component without
 -        special enhancement or added features.
 +source "drivers/hwtracing/coresight/Kconfig"
  
 -config CORESIGHT_SOURCE_ETM3X
 -      bool "CoreSight Embedded Trace Macrocell 3.x driver"
 -      select CORESIGHT_LINKS_AND_SINKS
 -      help
 -        This driver provides support for processor ETM3.x and PTM1.x modules,
 -        which allows tracing the instructions that a processor is executing
 -        This is primarily useful for instruction level tracing.  Depending
 -        the ETM version data tracing may also be available.
 -endif
  endmenu
diff --combined arch/arm/Makefile
index cced41d40ce237947002e7220cef02d8341abadf,739588c83d8bf4882877263e67ca25cf26cfdc5d..985227cbbd1bd797546c36099dcd7cc17c0efc4f
@@@ -13,7 -13,7 +13,7 @@@
  # Ensure linker flags are correct
  LDFLAGS               :=
  
 -LDFLAGS_vmlinux       :=-p --no-undefined -X
 +LDFLAGS_vmlinux       :=-p --no-undefined -X --pic-veneer
  ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
  LDFLAGS_vmlinux       += --be8
  LDFLAGS_MODULE        += --be8
@@@ -136,12 -136,14 +136,13 @@@ textofs-$(CONFIG_PM_H1940)      := 0x00
  ifeq ($(CONFIG_ARCH_SA1100),y)
  textofs-$(CONFIG_SA1111) := 0x00208000
  endif
 -textofs-$(CONFIG_ARCH_MSM7X30) := 0x00208000
  textofs-$(CONFIG_ARCH_MSM8X60) := 0x00208000
  textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000
  textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
  
  # Machine directory name.  This list is sorted alphanumerically
  # by CONFIG_* macro name.
+ machine-$(CONFIG_ARCH_ALPINE)         += alpine
  machine-$(CONFIG_ARCH_AT91)           += at91
  machine-$(CONFIG_ARCH_AXXIA)          += axxia
  machine-$(CONFIG_ARCH_BCM)            += bcm
@@@ -149,7 -151,6 +150,7 @@@ machine-$(CONFIG_ARCH_BERLIN)              += berli
  machine-$(CONFIG_ARCH_CLPS711X)               += clps711x
  machine-$(CONFIG_ARCH_CNS3XXX)                += cns3xxx
  machine-$(CONFIG_ARCH_DAVINCI)                += davinci
 +machine-$(CONFIG_ARCH_DIGICOLOR)      += digicolor
  machine-$(CONFIG_ARCH_DOVE)           += dove
  machine-$(CONFIG_ARCH_EBSA110)                += ebsa110
  machine-$(CONFIG_ARCH_EFM32)          += efm32
@@@ -170,6 -171,7 +171,6 @@@ machine-$(CONFIG_ARCH_LPC32XX)             += lpc3
  machine-$(CONFIG_ARCH_MESON)          += meson
  machine-$(CONFIG_ARCH_MMP)            += mmp
  machine-$(CONFIG_ARCH_MOXART)         += moxart
 -machine-$(CONFIG_ARCH_MSM)            += msm
  machine-$(CONFIG_ARCH_MV78XX0)                += mv78xx0
  machine-$(CONFIG_ARCH_MVEBU)          += mvebu
  machine-$(CONFIG_ARCH_MXC)            += imx
@@@ -262,7 -264,6 +263,7 @@@ core-$(CONFIG_FPE_FASTFPE) += $(FASTFPE
  core-$(CONFIG_VFP)            += arch/arm/vfp/
  core-$(CONFIG_XEN)            += arch/arm/xen/
  core-$(CONFIG_KVM_ARM_HOST)   += arch/arm/kvm/
 +core-$(CONFIG_VDSO)           += arch/arm/vdso/
  
  # If we have a machine-specific directory, then include it in the build.
  core-y                                += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
@@@ -320,12 -321,6 +321,12 @@@ dtbs: prepare script
  dtbs_install:
        $(Q)$(MAKE) $(dtbinst)=$(boot)/dts
  
 +PHONY += vdso_install
 +vdso_install:
 +ifeq ($(CONFIG_VDSO),y)
 +      $(Q)$(MAKE) $(build)=arch/arm/vdso $@
 +endif
 +
  # We use MRPROPER_FILES and CLEAN_FILES now
  archclean:
        $(Q)$(MAKE) $(clean)=$(boot)
@@@ -350,5 -345,4 +351,5 @@@ define archhel
    echo  '                  Install using (your) ~/bin/$(INSTALLKERNEL) or'
    echo  '                  (distribution) /sbin/$(INSTALLKERNEL) or'
    echo  '                  install to $$(INSTALL_PATH) and run lilo'
 +  echo  '  vdso_install  - Install unstripped vdso.so to $$(INSTALL_MOD_PATH)/vdso'
  endef
index 8576a9f734bd9aaf9dac0b83dd7e6744efcf86d2,3e45bcb4f003380861b962bc3dbfa59ec624436d..bcde0dd668df950f1918a66179715a56ec9578fa
@@@ -166,14 -166,16 +166,14 @@@ static void __init exynos_init_io(void
        exynos_map_io();
  }
  
 +/*
 + * Apparently, these SoCs are not able to wake-up from suspend using
 + * the PMU. Too bad. Should they suddenly become capable of such a
 + * feat, the matches below should be moved to suspend.c.
 + */
  static const struct of_device_id exynos_dt_pmu_match[] = {
 -      { .compatible = "samsung,exynos3250-pmu" },
 -      { .compatible = "samsung,exynos4210-pmu" },
 -      { .compatible = "samsung,exynos4212-pmu" },
 -      { .compatible = "samsung,exynos4412-pmu" },
 -      { .compatible = "samsung,exynos4415-pmu" },
 -      { .compatible = "samsung,exynos5250-pmu" },
        { .compatible = "samsung,exynos5260-pmu" },
        { .compatible = "samsung,exynos5410-pmu" },
 -      { .compatible = "samsung,exynos5420-pmu" },
        { /*sentinel*/ },
  };
  
@@@ -184,6 -186,9 +184,6 @@@ static void exynos_map_pmu(void
        np = of_find_matching_node(NULL, exynos_dt_pmu_match);
        if (np)
                pmu_base_addr = of_iomap(np, 0);
 -
 -      if (!pmu_base_addr)
 -              panic("failed to find exynos pmu register\n");
  }
  
  static void __init exynos_init_irq(void)
@@@ -206,7 -211,7 +206,7 @@@ static void __init exynos_dt_machine_in
        if (!IS_ENABLED(CONFIG_SMP))
                exynos_sysram_init();
  
 -#ifdef CONFIG_ARM_EXYNOS_CPUIDLE
 +#if defined(CONFIG_SMP) && defined(CONFIG_ARM_EXYNOS_CPUIDLE)
        if (of_machine_is_compatible("samsung,exynos4210"))
                exynos_cpuidle.dev.platform_data = &cpuidle_coupled_exynos_data;
  #endif
            of_machine_is_compatible("samsung,exynos4212") ||
            (of_machine_is_compatible("samsung,exynos4412") &&
             of_machine_is_compatible("samsung,trats2")) ||
+           of_machine_is_compatible("samsung,exynos3250") ||
            of_machine_is_compatible("samsung,exynos5250"))
                platform_device_register(&exynos_cpuidle);
  
index d2e9f12d12f187e1e2c40f11748f75bbe0a283f2,511b81ac2a1811716d40425bedbe40af9a58fc28..ebd135bb0995611517c1bce6d3b70deeeee37de4
@@@ -126,7 -126,10 +126,9 @@@ static inline void platform_do_lowpower
   */
  void exynos_cpu_power_down(int cpu)
  {
 -      if (cpu == 0 && (of_machine_is_compatible("samsung,exynos5420") ||
 -              of_machine_is_compatible("samsung,exynos5800"))) {
+       u32 core_conf;
 +      if (cpu == 0 && (soc_is_exynos5420() || soc_is_exynos5800())) {
                /*
                 * Bypass power down for CPU0 during suspend. Check for
                 * the SYS_PWR_REG value to decide if we are suspending
                if (!(val & S5P_CORE_LOCAL_PWR_EN))
                        return;
        }
-       pmu_raw_writel(0, EXYNOS_ARM_CORE_CONFIGURATION(cpu));
+       core_conf = pmu_raw_readl(EXYNOS_ARM_CORE_CONFIGURATION(cpu));
+       core_conf &= ~S5P_CORE_LOCAL_PWR_EN;
+       pmu_raw_writel(core_conf, EXYNOS_ARM_CORE_CONFIGURATION(cpu));
  }
  
  /**
   */
  void exynos_cpu_power_up(int cpu)
  {
-       pmu_raw_writel(S5P_CORE_LOCAL_PWR_EN,
+       u32 core_conf = S5P_CORE_LOCAL_PWR_EN;
+       if (soc_is_exynos3250())
+               core_conf |= S5P_CORE_AUTOWAKEUP_EN;
+       pmu_raw_writel(core_conf,
                        EXYNOS_ARM_CORE_CONFIGURATION(cpu));
  }
  
@@@ -226,6 -237,10 +236,10 @@@ static void exynos_core_restart(u32 cor
        if (!of_machine_is_compatible("samsung,exynos3250"))
                return;
  
+       while (!pmu_raw_readl(S5P_PMU_SPARE2))
+               udelay(10);
+       udelay(10);
        val = pmu_raw_readl(EXYNOS_ARM_CORE_STATUS(core_id));
        val |= S5P_CORE_WAKEUP_FROM_LOCAL_CFG;
        pmu_raw_writel(val, EXYNOS_ARM_CORE_STATUS(core_id));
@@@ -346,7 -361,10 +360,10 @@@ static int exynos_boot_secondary(unsign
  
                call_firmware_op(cpu_boot, core_id);
  
-               arch_send_wakeup_ipi_mask(cpumask_of(cpu));
+               if (soc_is_exynos3250())
+                       dsb_sev();
+               else
+                       arch_send_wakeup_ipi_mask(cpumask_of(cpu));
  
                if (pen_release == -1)
                        break;
index 5685250693fdf8b5b547674ae845e06c8d6130fe,0a7e3afd6fc78f30906b2bbb18649a0df998ac4f..cc75ab448be3b4ce9b3c0fc2e626da4ed3d6e6ca
@@@ -127,6 -127,8 +127,8 @@@ int exynos_pm_central_resume(void
  static void exynos_set_wakeupmask(long mask)
  {
        pmu_raw_writel(mask, S5P_WAKEUP_MASK);
+       if (soc_is_exynos3250())
+               pmu_raw_writel(0x0, S5P_WAKEUP_MASK2);
  }
  
  static void exynos_cpu_set_boot_vector(long flags)
@@@ -140,7 -142,7 +142,7 @@@ static int exynos_aftr_finisher(unsigne
  {
        int ret;
  
-       exynos_set_wakeupmask(0x0000ff3e);
+       exynos_set_wakeupmask(soc_is_exynos3250() ? 0x40003ffe : 0x0000ff3e);
        /* Set value of power down register for aftr mode */
        exynos_sys_powerdown_conf(SYS_AFTR);
  
  
  void exynos_enter_aftr(void)
  {
+       unsigned int cpuid = smp_processor_id();
        cpu_pm_enter();
  
+       if (soc_is_exynos3250())
+               exynos_set_boot_flag(cpuid, C2_STATE);
        exynos_pm_central_suspend();
  
        if (of_machine_is_compatible("samsung,exynos4212") ||
  
        exynos_pm_central_resume();
  
+       if (soc_is_exynos3250())
+               exynos_clear_boot_flag(cpuid, C2_STATE);
        cpu_pm_exit();
  }
  
 +#if defined(CONFIG_SMP) && defined(CONFIG_ARM_EXYNOS_CPUIDLE)
  static atomic_t cpu1_wakeup = ATOMIC_INIT(0);
  
  static int exynos_cpu0_enter_aftr(void)
@@@ -303,4 -312,3 +313,4 @@@ struct cpuidle_exynos_data cpuidle_coup
        .pre_enter_aftr         = exynos_pre_enter_aftr,
        .post_enter_aftr                = exynos_post_enter_aftr,
  };
 +#endif /* CONFIG_SMP && CONFIG_ARM_EXYNOS_CPUIDLE */
index 37266a8264372a9d8ab898aec6389476f707869f,a80d15d97df9829ed1280fc65c7a984cc95d408f..cbe56b35aea000fe2ad5841851b5eb9a57a307d5
@@@ -37,6 -37,7 +37,7 @@@ struct exynos_pm_domain 
        struct clk *oscclk;
        struct clk *clk[MAX_CLK_PER_DOMAIN];
        struct clk *pclk[MAX_CLK_PER_DOMAIN];
+       struct clk *asb_clk[MAX_CLK_PER_DOMAIN];
  };
  
  static int exynos_pd_power(struct generic_pm_domain *domain, bool power_on)
        void __iomem *base;
        u32 timeout, pwr;
        char *op;
+       int i;
  
        pd = container_of(domain, struct exynos_pm_domain, pd);
        base = pd->base;
  
+       for (i = 0; i < MAX_CLK_PER_DOMAIN; i++) {
+               if (IS_ERR(pd->asb_clk[i]))
+                       break;
+               clk_prepare_enable(pd->asb_clk[i]);
+       }
        /* Set oscclk before powering off a domain*/
        if (!power_on) {
-               int i;
                for (i = 0; i < MAX_CLK_PER_DOMAIN; i++) {
                        if (IS_ERR(pd->clk[i]))
                                break;
@@@ -81,8 -87,6 +87,6 @@@
  
        /* Restore clocks after powering on a domain*/
        if (power_on) {
-               int i;
                for (i = 0; i < MAX_CLK_PER_DOMAIN; i++) {
                        if (IS_ERR(pd->clk[i]))
                                break;
                }
        }
  
+       for (i = 0; i < MAX_CLK_PER_DOMAIN; i++) {
+               if (IS_ERR(pd->asb_clk[i]))
+                       break;
+               clk_disable_unprepare(pd->asb_clk[i]);
+       }
        return 0;
  }
  
@@@ -125,12 -135,21 +135,21 @@@ static __init int exynos4_pm_init_power
                        return -ENOMEM;
                }
  
-               pd->pd.name = kstrdup(np->name, GFP_KERNEL);
+               pd->pd.name = kstrdup(dev_name(dev), GFP_KERNEL);
                pd->name = pd->pd.name;
                pd->base = of_iomap(np, 0);
                pd->pd.power_off = exynos_pd_power_off;
                pd->pd.power_on = exynos_pd_power_on;
  
+               for (i = 0; i < MAX_CLK_PER_DOMAIN; i++) {
+                       char clk_name[8];
+                       snprintf(clk_name, sizeof(clk_name), "asb%d", i);
+                       pd->asb_clk[i] = clk_get(dev, clk_name);
+                       if (IS_ERR(pd->asb_clk[i]))
+                               break;
+               }
                pd->oscclk = clk_get(dev, "oscclk");
                if (IS_ERR(pd->oscclk))
                        goto no_clk;
@@@ -161,34 -180,6 +180,34 @@@ no_clk
                of_genpd_add_provider_simple(np, &pd->pd);
        }
  
 +      /* Assign the child power domains to their parents */
 +      for_each_compatible_node(np, NULL, "samsung,exynos4210-pd") {
 +              struct generic_pm_domain *child_domain, *parent_domain;
 +              struct of_phandle_args args;
 +
 +              args.np = np;
 +              args.args_count = 0;
 +              child_domain = of_genpd_get_from_provider(&args);
 +              if (!child_domain)
 +                      continue;
 +
 +              if (of_parse_phandle_with_args(np, "power-domains",
 +                                       "#power-domain-cells", 0, &args) != 0)
 +                      continue;
 +
 +              parent_domain = of_genpd_get_from_provider(&args);
 +              if (!parent_domain)
 +                      continue;
 +
 +              if (pm_genpd_add_subdomain(parent_domain, child_domain))
 +                      pr_warn("%s failed to add subdomain: %s\n",
 +                              parent_domain->name, child_domain->name);
 +              else
 +                      pr_info("%s has as child subdomain: %s.\n",
 +                              parent_domain->name, child_domain->name);
 +              of_node_put(np);
 +      }
 +
        return 0;
  }
  arch_initcall(exynos4_pm_init_power_domain);
index 2146d918aedd265623cd3a7cb1393e4437095f3b,89a6d3fb32842fd53cc82d48693e309f853fc8d6..3e6aea7f83af199d7c624372fb96549430504cc2
@@@ -18,9 -18,7 +18,9 @@@
  #include <linux/syscore_ops.h>
  #include <linux/cpu_pm.h>
  #include <linux/io.h>
 -#include <linux/irqchip/arm-gic.h>
 +#include <linux/irq.h>
 +#include <linux/irqdomain.h>
 +#include <linux/of_address.h>
  #include <linux/err.h>
  #include <linux/regulator/machine.h>
  
@@@ -45,8 -43,8 +45,8 @@@
  #define EXYNOS5420_CPU_STATE  0x28
  
  /**
 - * struct exynos_wkup_irq - Exynos GIC to PMU IRQ mapping
 - * @hwirq: Hardware IRQ signal of the GIC
 + * struct exynos_wkup_irq - PMU IRQ to mask mapping
 + * @hwirq: Hardware IRQ signal of the PMU
   * @mask: Mask in PMU wake-up mask register
   */
  struct exynos_wkup_irq {
@@@ -65,8 -63,6 +65,6 @@@ static struct sleep_save exynos_core_sa
  
  struct exynos_pm_data {
        const struct exynos_wkup_irq *wkup_irq;
-       struct sleep_save *extra_save;
-       int num_extra_save;
        unsigned int wake_disable_mask;
        unsigned int *release_ret_regs;
  
@@@ -77,7 -73,7 +75,7 @@@
        int (*cpu_suspend)(unsigned long);
  };
  
- struct exynos_pm_data *pm_data;
+ static const struct exynos_pm_data *pm_data;
  
  static int exynos5420_cpu_state;
  static unsigned int exynos_pmu_spare3;
  static u32 exynos_irqwake_intmask = 0xffffffff;
  
  static const struct exynos_wkup_irq exynos3250_wkup_irq[] = {
 -      { 73, BIT(1) }, /* RTC alarm */
 -      { 74, BIT(2) }, /* RTC tick */
 +      { 105, BIT(1) }, /* RTC alarm */
 +      { 106, BIT(2) }, /* RTC tick */
        { /* sentinel */ },
  };
  
  static const struct exynos_wkup_irq exynos4_wkup_irq[] = {
 -      { 76, BIT(1) }, /* RTC alarm */
 -      { 77, BIT(2) }, /* RTC tick */
 +      { 44, BIT(1) }, /* RTC alarm */
 +      { 45, BIT(2) }, /* RTC tick */
        { /* sentinel */ },
  };
  
  static const struct exynos_wkup_irq exynos5250_wkup_irq[] = {
 -      { 75, BIT(1) }, /* RTC alarm */
 -      { 76, BIT(2) }, /* RTC tick */
 +      { 43, BIT(1) }, /* RTC alarm */
 +      { 44, BIT(2) }, /* RTC tick */
        { /* sentinel */ },
  };
  
- unsigned int exynos_release_ret_regs[] = {
static unsigned int exynos_release_ret_regs[] = {
        S5P_PAD_RET_MAUDIO_OPTION,
        S5P_PAD_RET_GPIO_OPTION,
        S5P_PAD_RET_UART_OPTION,
        REG_TABLE_END,
  };
  
- unsigned int exynos3250_release_ret_regs[] = {
static unsigned int exynos3250_release_ret_regs[] = {
        S5P_PAD_RET_MAUDIO_OPTION,
        S5P_PAD_RET_GPIO_OPTION,
        S5P_PAD_RET_UART_OPTION,
        REG_TABLE_END,
  };
  
- unsigned int exynos5420_release_ret_regs[] = {
static unsigned int exynos5420_release_ret_regs[] = {
        EXYNOS_PAD_RET_DRAM_OPTION,
        EXYNOS_PAD_RET_MAUDIO_OPTION,
        EXYNOS_PAD_RET_JTAG_OPTION,
@@@ -169,113 -165,6 +167,113 @@@ static int exynos_irq_set_wake(struct i
        return -ENOENT;
  }
  
 +static struct irq_chip exynos_pmu_chip = {
 +      .name                   = "PMU",
 +      .irq_eoi                = irq_chip_eoi_parent,
 +      .irq_mask               = irq_chip_mask_parent,
 +      .irq_unmask             = irq_chip_unmask_parent,
 +      .irq_retrigger          = irq_chip_retrigger_hierarchy,
 +      .irq_set_wake           = exynos_irq_set_wake,
 +#ifdef CONFIG_SMP
 +      .irq_set_affinity       = irq_chip_set_affinity_parent,
 +#endif
 +};
 +
 +static int exynos_pmu_domain_xlate(struct irq_domain *domain,
 +                                 struct device_node *controller,
 +                                 const u32 *intspec,
 +                                 unsigned int intsize,
 +                                 unsigned long *out_hwirq,
 +                                 unsigned int *out_type)
 +{
 +      if (domain->of_node != controller)
 +              return -EINVAL; /* Shouldn't happen, really... */
 +      if (intsize != 3)
 +              return -EINVAL; /* Not GIC compliant */
 +      if (intspec[0] != 0)
 +              return -EINVAL; /* No PPI should point to this domain */
 +
 +      *out_hwirq = intspec[1];
 +      *out_type = intspec[2];
 +      return 0;
 +}
 +
 +static int exynos_pmu_domain_alloc(struct irq_domain *domain,
 +                                 unsigned int virq,
 +                                 unsigned int nr_irqs, void *data)
 +{
 +      struct of_phandle_args *args = data;
 +      struct of_phandle_args parent_args;
 +      irq_hw_number_t hwirq;
 +      int i;
 +
 +      if (args->args_count != 3)
 +              return -EINVAL; /* Not GIC compliant */
 +      if (args->args[0] != 0)
 +              return -EINVAL; /* No PPI should point to this domain */
 +
 +      hwirq = args->args[1];
 +
 +      for (i = 0; i < nr_irqs; i++)
 +              irq_domain_set_hwirq_and_chip(domain, virq + i, hwirq + i,
 +                                            &exynos_pmu_chip, NULL);
 +
 +      parent_args = *args;
 +      parent_args.np = domain->parent->of_node;
 +      return irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, &parent_args);
 +}
 +
 +static struct irq_domain_ops exynos_pmu_domain_ops = {
 +      .xlate  = exynos_pmu_domain_xlate,
 +      .alloc  = exynos_pmu_domain_alloc,
 +      .free   = irq_domain_free_irqs_common,
 +};
 +
 +static int __init exynos_pmu_irq_init(struct device_node *node,
 +                                    struct device_node *parent)
 +{
 +      struct irq_domain *parent_domain, *domain;
 +
 +      if (!parent) {
 +              pr_err("%s: no parent, giving up\n", node->full_name);
 +              return -ENODEV;
 +      }
 +
 +      parent_domain = irq_find_host(parent);
 +      if (!parent_domain) {
 +              pr_err("%s: unable to obtain parent domain\n", node->full_name);
 +              return -ENXIO;
 +      }
 +
 +      pmu_base_addr = of_iomap(node, 0);
 +
 +      if (!pmu_base_addr) {
 +              pr_err("%s: failed to find exynos pmu register\n",
 +                     node->full_name);
 +              return -ENOMEM;
 +      }
 +
 +      domain = irq_domain_add_hierarchy(parent_domain, 0, 0,
 +                                        node, &exynos_pmu_domain_ops,
 +                                        NULL);
 +      if (!domain) {
 +              iounmap(pmu_base_addr);
 +              return -ENOMEM;
 +      }
 +
 +      return 0;
 +}
 +
 +#define EXYNOS_PMU_IRQ(symbol, name)  OF_DECLARE_2(irqchip, symbol, name, exynos_pmu_irq_init)
 +
 +EXYNOS_PMU_IRQ(exynos3250_pmu_irq, "samsung,exynos3250-pmu");
 +EXYNOS_PMU_IRQ(exynos4210_pmu_irq, "samsung,exynos4210-pmu");
 +EXYNOS_PMU_IRQ(exynos4212_pmu_irq, "samsung,exynos4212-pmu");
 +EXYNOS_PMU_IRQ(exynos4412_pmu_irq, "samsung,exynos4412-pmu");
 +EXYNOS_PMU_IRQ(exynos4415_pmu_irq, "samsung,exynos4415-pmu");
 +EXYNOS_PMU_IRQ(exynos5250_pmu_irq, "samsung,exynos5250-pmu");
 +EXYNOS_PMU_IRQ(exynos5420_pmu_irq, "samsung,exynos5420-pmu");
 +
  static int exynos_cpu_do_idle(void)
  {
        /* issue the standby signal into the pm unit. */
@@@ -349,10 -238,6 +347,6 @@@ static void exynos_pm_prepare(void
  
        s3c_pm_do_save(exynos_core_save, ARRAY_SIZE(exynos_core_save));
  
-        if (pm_data->extra_save)
-               s3c_pm_do_save(pm_data->extra_save,
-                               pm_data->num_extra_save);
        exynos_pm_enter_sleep_mode();
  
        /* ensure at least INFORM0 has the resume address */
@@@ -475,10 -360,6 +469,6 @@@ static void exynos_pm_resume(void
        /* For release retention */
        exynos_pm_release_retention();
  
-       if (pm_data->extra_save)
-               s3c_pm_do_restore_core(pm_data->extra_save,
-                                       pm_data->num_extra_save);
        s3c_pm_do_restore_core(exynos_core_save, ARRAY_SIZE(exynos_core_save));
  
        if (cpuid == ARM_CPU_PART_CORTEX_A9)
@@@ -685,7 -566,7 +675,7 @@@ static const struct exynos_pm_data exyn
        .cpu_suspend    = exynos_cpu_suspend,
  };
  
- static struct exynos_pm_data exynos5420_pm_data = {
+ static const struct exynos_pm_data exynos5420_pm_data = {
        .wkup_irq       = exynos5250_wkup_irq,
        .wake_disable_mask = (0x7F << 7) | (0x1F << 1),
        .release_ret_regs = exynos5420_release_ret_regs,
@@@ -724,19 -605,17 +714,19 @@@ static struct syscore_ops exynos_pm_sys
  void __init exynos_pm_init(void)
  {
        const struct of_device_id *match;
 +      struct device_node *np;
        u32 tmp;
  
 -      of_find_matching_node_and_match(NULL, exynos_pmu_of_device_ids, &match);
 -      if (!match) {
 +      np = of_find_matching_node_and_match(NULL, exynos_pmu_of_device_ids, &match);
 +      if (!np) {
                pr_err("Failed to find PMU node\n");
                return;
        }
 -      pm_data = (const struct exynos_pm_data *) match->data;
  
 -      /* Platform-specific GIC callback */
 -      gic_arch_extn.irq_set_wake = exynos_irq_set_wake;
 +      if (WARN_ON(!of_find_property(np, "interrupt-controller", NULL)))
 +              pr_warn("Outdated DT detected, suspend/resume will NOT work\n");
 +
-       pm_data = (struct exynos_pm_data *) match->data;
++      pm_data = (const struct exynos_pm_data *) match->data;
  
        /* All wakeup disable */
        tmp = pmu_raw_readl(S5P_WAKEUP_MASK);
index 0748747b2bc65abe6be98be2168e19d4d7888c63,bf42a6a86bedc159c5c023a4c8e6a510d0fca400..3a3d3e9d7bfd6eb7f781bfa904df5caede06a33c
@@@ -21,6 -21,7 +21,7 @@@ config MXC_AVI
  
  config MXC_DEBUG_BOARD
        bool "Enable MXC debug board(for 3-stack)"
+       depends on MACH_MX27_3DS || MACH_MX31_3DS || MACH_MX35_3DS
        help
          The debug board is an integral part of the MXC 3-stack(PDK)
          platforms, it can be attached or removed from the peripheral
@@@ -50,6 -51,7 +51,7 @@@ config HAVE_IMX_ANATO
  
  config HAVE_IMX_GPC
        bool
+       select PM_GENERIC_DOMAINS if PM
  
  config HAVE_IMX_MMDC
        bool
@@@ -77,6 -79,13 +79,6 @@@ config SOC_IMX2
        select IMX_HAVE_IOMUX_V1
        select MXC_AVIC
  
 -config SOC_IMX25
 -      bool
 -      select ARCH_MXC_IOMUX_V3
 -      select CPU_ARM926T
 -      select MXC_AVIC
 -      select PINCTRL_IMX25
 -
  config SOC_IMX27
        bool
        select CPU_ARM926T
@@@ -142,6 -151,62 +144,6 @@@ config MACH_MX21AD
          Include support for MX21ADS platform. This includes specific
          configurations for the board and its peripherals.
  
 -comment "MX25 platforms:"
 -
 -config MACH_MX25_3DS
 -      bool "Support MX25PDK (3DS) Platform"
 -      select IMX_HAVE_PLATFORM_FLEXCAN
 -      select IMX_HAVE_PLATFORM_FSL_USB2_UDC
 -      select IMX_HAVE_PLATFORM_IMX2_WDT
 -      select IMX_HAVE_PLATFORM_IMXDI_RTC
 -      select IMX_HAVE_PLATFORM_IMX_FB
 -      select IMX_HAVE_PLATFORM_IMX_I2C
 -      select IMX_HAVE_PLATFORM_IMX_KEYPAD
 -      select IMX_HAVE_PLATFORM_IMX_UART
 -      select IMX_HAVE_PLATFORM_MXC_EHCI
 -      select IMX_HAVE_PLATFORM_MXC_NAND
 -      select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
 -      select SOC_IMX25
 -
 -config MACH_EUKREA_CPUIMX25SD
 -      bool "Support Eukrea CPUIMX25 Platform"
 -      select IMX_HAVE_PLATFORM_FLEXCAN
 -      select IMX_HAVE_PLATFORM_FSL_USB2_UDC
 -      select IMX_HAVE_PLATFORM_IMX2_WDT
 -      select IMX_HAVE_PLATFORM_IMXDI_RTC
 -      select IMX_HAVE_PLATFORM_IMX_FB
 -      select IMX_HAVE_PLATFORM_IMX_I2C
 -      select IMX_HAVE_PLATFORM_IMX_UART
 -      select IMX_HAVE_PLATFORM_MXC_EHCI
 -      select IMX_HAVE_PLATFORM_MXC_NAND
 -      select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
 -      select USB_ULPI_VIEWPORT if USB_ULPI
 -      select SOC_IMX25
 -
 -choice
 -      prompt "Baseboard"
 -      depends on MACH_EUKREA_CPUIMX25SD
 -      default MACH_EUKREA_MBIMXSD25_BASEBOARD
 -
 -config MACH_EUKREA_MBIMXSD25_BASEBOARD
 -      bool "Eukrea MBIMXSD development board"
 -      select IMX_HAVE_PLATFORM_GPIO_KEYS
 -      select IMX_HAVE_PLATFORM_IMX_SSI
 -      select IMX_HAVE_PLATFORM_SPI_IMX
 -      select LEDS_GPIO_REGISTER
 -      help
 -        This adds board specific devices that can be found on Eukrea's
 -        MBIMXSD evaluation board.
 -
 -endchoice
 -
 -config MACH_IMX25_DT
 -      bool "Support i.MX25 platforms from device tree"
 -      select SOC_IMX25
 -      help
 -        Include support for Freescale i.MX25 based platforms
 -        using the device tree for discovery
 -
  comment "MX27 platforms:"
  
  config MACH_MX27ADS
@@@ -494,20 -559,6 +496,20 @@@ config MACH_VPR20
  
  endif
  
 +if ARCH_MULTI_V5
 +
 +comment "Device tree only"
 +
 +config SOC_IMX25
 +      bool "i.MX25 support"
 +      select ARCH_MXC_IOMUX_V3
 +      select CPU_ARM926T
 +      select MXC_AVIC
 +      select PINCTRL_IMX25
 +      help
 +        This enables support for Freescale i.MX25 processor
 +endif
 +
  if ARCH_MULTI_V7
  
  comment "Device tree only"
@@@ -582,13 -633,13 +584,14 @@@ config SOC_IMX6S
  
  config SOC_VF610
        bool "Vybrid Family VF610 support"
 +      select IRQ_DOMAIN_HIERARCHY
        select ARM_GIC
        select PINCTRL_VF610
        select PL310_ERRATA_769419 if CACHE_L2X0
+       select SMP_ON_UP if SMP
  
        help
 -        This enable support for Freescale Vybrid VF610 processor.
 +        This enables support for Freescale Vybrid VF610 processor.
  
  choice
        prompt "Clocksource for scheduler clock"
@@@ -618,7 -669,7 +621,7 @@@ config SOC_LS1021
        select ZONE_DMA if ARM_LPAE
  
        help
 -        This enable support for Freescale LS1021A processor.
 +        This enables support for Freescale LS1021A processor.
  
  endif
  
index 31b66f26e029ab5155762cd3bb8d2fed4b0704cb,db8d15f9ad57d2c7629a95e8b178aef28a3c2bd3..afee9083ad92bc6d16bb7b29ef5f86f811351847
@@@ -184,7 -184,7 +184,7 @@@ static void __init mvebu_dt_init(void
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
  }
  
 -static const char * const armada_370_xp_dt_compat[] = {
 +static const char * const armada_370_xp_dt_compat[] __initconst = {
        "marvell,armada-370-xp",
        NULL,
  };
@@@ -205,7 -205,7 +205,7 @@@ DT_MACHINE_START(ARMADA_370_XP_DT, "Mar
        .dt_compat      = armada_370_xp_dt_compat,
  MACHINE_END
  
 -static const char * const armada_375_dt_compat[] = {
 +static const char * const armada_375_dt_compat[] __initconst = {
        "marvell,armada375",
        NULL,
  };
@@@ -219,7 -219,7 +219,7 @@@ DT_MACHINE_START(ARMADA_375_DT, "Marvel
        .dt_compat      = armada_375_dt_compat,
  MACHINE_END
  
 -static const char * const armada_38x_dt_compat[] = {
 +static const char * const armada_38x_dt_compat[] __initconst = {
        "marvell,armada380",
        "marvell,armada385",
        NULL,
@@@ -232,3 -232,17 +232,17 @@@ DT_MACHINE_START(ARMADA_38X_DT, "Marvel
        .restart        = mvebu_restart,
        .dt_compat      = armada_38x_dt_compat,
  MACHINE_END
+ static const char * const armada_39x_dt_compat[] __initconst = {
+       "marvell,armada390",
+       "marvell,armada398",
+       NULL,
+ };
+ DT_MACHINE_START(ARMADA_39X_DT, "Marvell Armada 39x (Device Tree)")
+       .l2c_aux_val    = 0,
+       .l2c_aux_mask   = ~0,
+       .init_irq       = mvebu_init_irq,
+       .restart        = mvebu_restart,
+       .dt_compat      = armada_39x_dt_compat,
+ MACHINE_END
index 16fe7a1b7a3578069746371dc789e51308cc2134,701234d8db1b90e927f4772a2c9d3bebabbaebfd..0e64c2fac0b5fad2c92af76a2042a1080108fc04
@@@ -1466,16 -1466,53 +1466,16 @@@ static struct omap_hwmod dra7xx_ocp2scp
   *
   */
  
 -static struct omap_hwmod_class dra7xx_pcie_hwmod_class = {
 +static struct omap_hwmod_class dra7xx_pciess_hwmod_class = {
        .name   = "pcie",
  };
  
  /* pcie1 */
 -static struct omap_hwmod dra7xx_pcie1_hwmod = {
 +static struct omap_hwmod dra7xx_pciess1_hwmod = {
        .name           = "pcie1",
 -      .class          = &dra7xx_pcie_hwmod_class,
 +      .class          = &dra7xx_pciess_hwmod_class,
        .clkdm_name     = "pcie_clkdm",
        .main_clk       = "l4_root_clk_div",
 -      .prcm = {
 -              .omap4 = {
 -                      .clkctrl_offs   = DRA7XX_CM_PCIE_CLKSTCTRL_OFFSET,
 -                      .modulemode     = MODULEMODE_SWCTRL,
 -              },
 -      },
 -};
 -
 -/* pcie2 */
 -static struct omap_hwmod dra7xx_pcie2_hwmod = {
 -      .name           = "pcie2",
 -      .class          = &dra7xx_pcie_hwmod_class,
 -      .clkdm_name     = "pcie_clkdm",
 -      .main_clk       = "l4_root_clk_div",
 -      .prcm = {
 -              .omap4 = {
 -                      .clkctrl_offs = DRA7XX_CM_PCIE_CLKSTCTRL_OFFSET,
 -                      .modulemode   = MODULEMODE_SWCTRL,
 -              },
 -      },
 -};
 -
 -/*
 - * 'PCIE PHY' class
 - *
 - */
 -
 -static struct omap_hwmod_class dra7xx_pcie_phy_hwmod_class = {
 -      .name   = "pcie-phy",
 -};
 -
 -/* pcie1 phy */
 -static struct omap_hwmod dra7xx_pcie1_phy_hwmod = {
 -      .name           = "pcie1-phy",
 -      .class          = &dra7xx_pcie_phy_hwmod_class,
 -      .clkdm_name     = "l3init_clkdm",
 -      .main_clk       = "l4_root_clk_div",
        .prcm = {
                .omap4 = {
                        .clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS1_CLKCTRL_OFFSET,
        },
  };
  
 -/* pcie2 phy */
 -static struct omap_hwmod dra7xx_pcie2_phy_hwmod = {
 -      .name           = "pcie2-phy",
 -      .class          = &dra7xx_pcie_phy_hwmod_class,
 -      .clkdm_name     = "l3init_clkdm",
 +/* pcie2 */
 +static struct omap_hwmod dra7xx_pciess2_hwmod = {
 +      .name           = "pcie2",
 +      .class          = &dra7xx_pciess_hwmod_class,
 +      .clkdm_name     = "pcie_clkdm",
        .main_clk       = "l4_root_clk_div",
        .prcm = {
                .omap4 = {
@@@ -1726,21 -1763,6 +1726,6 @@@ static struct omap_hwmod_class dra7xx_t
        .sysc   = &dra7xx_timer_1ms_sysc,
  };
  
- static struct omap_hwmod_class_sysconfig dra7xx_timer_secure_sysc = {
-       .rev_offs       = 0x0000,
-       .sysc_offs      = 0x0010,
-       .sysc_flags     = (SYSC_HAS_EMUFREE | SYSC_HAS_RESET_STATUS |
-                          SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
-       .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
-                          SIDLE_SMART_WKUP),
-       .sysc_fields    = &omap_hwmod_sysc_type2,
- };
- static struct omap_hwmod_class dra7xx_timer_secure_hwmod_class = {
-       .name   = "timer",
-       .sysc   = &dra7xx_timer_secure_sysc,
- };
  static struct omap_hwmod_class_sysconfig dra7xx_timer_sysc = {
        .rev_offs       = 0x0000,
        .sysc_offs      = 0x0010,
@@@ -1804,7 -1826,7 +1789,7 @@@ static struct omap_hwmod dra7xx_timer3_
  /* timer4 */
  static struct omap_hwmod dra7xx_timer4_hwmod = {
        .name           = "timer4",
-       .class          = &dra7xx_timer_secure_hwmod_class,
+       .class          = &dra7xx_timer_hwmod_class,
        .clkdm_name     = "l4per_clkdm",
        .main_clk       = "timer4_gfclk_mux",
        .prcm = {
@@@ -1921,6 -1943,66 +1906,66 @@@ static struct omap_hwmod dra7xx_timer11
        },
  };
  
+ /* timer13 */
+ static struct omap_hwmod dra7xx_timer13_hwmod = {
+       .name           = "timer13",
+       .class          = &dra7xx_timer_hwmod_class,
+       .clkdm_name     = "l4per3_clkdm",
+       .main_clk       = "timer13_gfclk_mux",
+       .prcm = {
+               .omap4 = {
+                       .clkctrl_offs = DRA7XX_CM_L4PER3_TIMER13_CLKCTRL_OFFSET,
+                       .context_offs = DRA7XX_RM_L4PER3_TIMER13_CONTEXT_OFFSET,
+                       .modulemode   = MODULEMODE_SWCTRL,
+               },
+       },
+ };
+ /* timer14 */
+ static struct omap_hwmod dra7xx_timer14_hwmod = {
+       .name           = "timer14",
+       .class          = &dra7xx_timer_hwmod_class,
+       .clkdm_name     = "l4per3_clkdm",
+       .main_clk       = "timer14_gfclk_mux",
+       .prcm = {
+               .omap4 = {
+                       .clkctrl_offs = DRA7XX_CM_L4PER3_TIMER14_CLKCTRL_OFFSET,
+                       .context_offs = DRA7XX_RM_L4PER3_TIMER14_CONTEXT_OFFSET,
+                       .modulemode   = MODULEMODE_SWCTRL,
+               },
+       },
+ };
+ /* timer15 */
+ static struct omap_hwmod dra7xx_timer15_hwmod = {
+       .name           = "timer15",
+       .class          = &dra7xx_timer_hwmod_class,
+       .clkdm_name     = "l4per3_clkdm",
+       .main_clk       = "timer15_gfclk_mux",
+       .prcm = {
+               .omap4 = {
+                       .clkctrl_offs = DRA7XX_CM_L4PER3_TIMER15_CLKCTRL_OFFSET,
+                       .context_offs = DRA7XX_RM_L4PER3_TIMER15_CONTEXT_OFFSET,
+                       .modulemode   = MODULEMODE_SWCTRL,
+               },
+       },
+ };
+ /* timer16 */
+ static struct omap_hwmod dra7xx_timer16_hwmod = {
+       .name           = "timer16",
+       .class          = &dra7xx_timer_hwmod_class,
+       .clkdm_name     = "l4per3_clkdm",
+       .main_clk       = "timer16_gfclk_mux",
+       .prcm = {
+               .omap4 = {
+                       .clkctrl_offs = DRA7XX_CM_L4PER3_TIMER16_CLKCTRL_OFFSET,
+                       .context_offs = DRA7XX_RM_L4PER3_TIMER16_CONTEXT_OFFSET,
+                       .modulemode   = MODULEMODE_SWCTRL,
+               },
+       },
+ };
  /*
   * 'uart' class
   *
@@@ -2840,34 -2922,50 +2885,34 @@@ static struct omap_hwmod_ocp_if dra7xx_
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
  };
  
 -/* l3_main_1 -> pcie1 */
 -static struct omap_hwmod_ocp_if dra7xx_l3_main_1__pcie1 = {
 +/* l3_main_1 -> pciess1 */
 +static struct omap_hwmod_ocp_if dra7xx_l3_main_1__pciess1 = {
        .master         = &dra7xx_l3_main_1_hwmod,
 -      .slave          = &dra7xx_pcie1_hwmod,
 +      .slave          = &dra7xx_pciess1_hwmod,
        .clk            = "l3_iclk_div",
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
  };
  
 -/* l4_cfg -> pcie1 */
 -static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pcie1 = {
 +/* l4_cfg -> pciess1 */
 +static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pciess1 = {
        .master         = &dra7xx_l4_cfg_hwmod,
 -      .slave          = &dra7xx_pcie1_hwmod,
 +      .slave          = &dra7xx_pciess1_hwmod,
        .clk            = "l4_root_clk_div",
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
  };
  
 -/* l3_main_1 -> pcie2 */
 -static struct omap_hwmod_ocp_if dra7xx_l3_main_1__pcie2 = {
 +/* l3_main_1 -> pciess2 */
 +static struct omap_hwmod_ocp_if dra7xx_l3_main_1__pciess2 = {
        .master         = &dra7xx_l3_main_1_hwmod,
 -      .slave          = &dra7xx_pcie2_hwmod,
 +      .slave          = &dra7xx_pciess2_hwmod,
        .clk            = "l3_iclk_div",
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
  };
  
 -/* l4_cfg -> pcie2 */
 -static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pcie2 = {
 -      .master         = &dra7xx_l4_cfg_hwmod,
 -      .slave          = &dra7xx_pcie2_hwmod,
 -      .clk            = "l4_root_clk_div",
 -      .user           = OCP_USER_MPU | OCP_USER_SDMA,
 -};
 -
 -/* l4_cfg -> pcie1 phy */
 -static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pcie1_phy = {
 -      .master         = &dra7xx_l4_cfg_hwmod,
 -      .slave          = &dra7xx_pcie1_phy_hwmod,
 -      .clk            = "l4_root_clk_div",
 -      .user           = OCP_USER_MPU | OCP_USER_SDMA,
 -};
 -
 -/* l4_cfg -> pcie2 phy */
 -static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pcie2_phy = {
 +/* l4_cfg -> pciess2 */
 +static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pciess2 = {
        .master         = &dra7xx_l4_cfg_hwmod,
 -      .slave          = &dra7xx_pcie2_phy_hwmod,
 +      .slave          = &dra7xx_pciess2_hwmod,
        .clk            = "l4_root_clk_div",
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
  };
@@@ -3059,6 -3157,38 +3104,38 @@@ static struct omap_hwmod_ocp_if dra7xx_
        .user           = OCP_USER_MPU | OCP_USER_SDMA,
  };
  
+ /* l4_per3 -> timer13 */
+ static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer13 = {
+       .master         = &dra7xx_l4_per3_hwmod,
+       .slave          = &dra7xx_timer13_hwmod,
+       .clk            = "l3_iclk_div",
+       .user           = OCP_USER_MPU | OCP_USER_SDMA,
+ };
+ /* l4_per3 -> timer14 */
+ static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer14 = {
+       .master         = &dra7xx_l4_per3_hwmod,
+       .slave          = &dra7xx_timer14_hwmod,
+       .clk            = "l3_iclk_div",
+       .user           = OCP_USER_MPU | OCP_USER_SDMA,
+ };
+ /* l4_per3 -> timer15 */
+ static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer15 = {
+       .master         = &dra7xx_l4_per3_hwmod,
+       .slave          = &dra7xx_timer15_hwmod,
+       .clk            = "l3_iclk_div",
+       .user           = OCP_USER_MPU | OCP_USER_SDMA,
+ };
+ /* l4_per3 -> timer16 */
+ static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer16 = {
+       .master         = &dra7xx_l4_per3_hwmod,
+       .slave          = &dra7xx_timer16_hwmod,
+       .clk            = "l3_iclk_div",
+       .user           = OCP_USER_MPU | OCP_USER_SDMA,
+ };
  /* l4_per1 -> uart1 */
  static struct omap_hwmod_ocp_if dra7xx_l4_per1__uart1 = {
        .master         = &dra7xx_l4_per1_hwmod,
@@@ -3274,10 -3404,12 +3351,10 @@@ static struct omap_hwmod_ocp_if *dra7xx
        &dra7xx_l4_cfg__mpu,
        &dra7xx_l4_cfg__ocp2scp1,
        &dra7xx_l4_cfg__ocp2scp3,
 -      &dra7xx_l3_main_1__pcie1,
 -      &dra7xx_l4_cfg__pcie1,
 -      &dra7xx_l3_main_1__pcie2,
 -      &dra7xx_l4_cfg__pcie2,
 -      &dra7xx_l4_cfg__pcie1_phy,
 -      &dra7xx_l4_cfg__pcie2_phy,
 +      &dra7xx_l3_main_1__pciess1,
 +      &dra7xx_l4_cfg__pciess1,
 +      &dra7xx_l3_main_1__pciess2,
 +      &dra7xx_l4_cfg__pciess2,
        &dra7xx_l3_main_1__qspi,
        &dra7xx_l4_per3__rtcss,
        &dra7xx_l4_cfg__sata,
        &dra7xx_l4_per1__timer9,
        &dra7xx_l4_per1__timer10,
        &dra7xx_l4_per1__timer11,
+       &dra7xx_l4_per3__timer13,
+       &dra7xx_l4_per3__timer14,
+       &dra7xx_l4_per3__timer15,
+       &dra7xx_l4_per3__timer16,
        &dra7xx_l4_per1__uart1,
        &dra7xx_l4_per1__uart2,
        &dra7xx_l4_per1__uart3,
index 03794b0de64b5cfc1714ccd8d82cca9af6ffd213,fb9ef904f4b5c576f52b5c2c8c31b8889df288a1..3631d8b6fc5e6deb767bc2615f45776f2cefde99
@@@ -12,8 -12,8 +12,8 @@@ obj-$(CONFIG_ARCH_R8A73A4)    += setup-r8a
  obj-$(CONFIG_ARCH_R8A7740)    += setup-r8a7740.o pm-r8a7740.o
  obj-$(CONFIG_ARCH_R8A7778)    += setup-r8a7778.o
  obj-$(CONFIG_ARCH_R8A7779)    += setup-r8a7779.o pm-r8a7779.o
 -obj-$(CONFIG_ARCH_R8A7790)    += setup-r8a7790.o pm-r8a7790.o
 -obj-$(CONFIG_ARCH_R8A7791)    += setup-r8a7791.o pm-r8a7791.o
 +obj-$(CONFIG_ARCH_R8A7790)    += setup-r8a7790.o
 +obj-$(CONFIG_ARCH_R8A7791)    += setup-r8a7791.o
  obj-$(CONFIG_ARCH_R8A7794)    += setup-r8a7794.o
  obj-$(CONFIG_ARCH_EMEV2)      += setup-emev2.o
  obj-$(CONFIG_ARCH_R7S72100)   += setup-r7s72100.o
@@@ -35,6 -35,8 +35,8 @@@ cpu-y                         := platsmp.o headsmp.
  # Shared SoC family objects
  obj-$(CONFIG_ARCH_RCAR_GEN2)  += setup-rcar-gen2.o platsmp-apmu.o $(cpu-y)
  CFLAGS_setup-rcar-gen2.o      += -march=armv7-a
+ obj-$(CONFIG_ARCH_R8A7790)    += regulator-quirk-rcar-gen2.o
+ obj-$(CONFIG_ARCH_R8A7791)    += regulator-quirk-rcar-gen2.o
  
  # SMP objects
  smp-y                         := $(cpu-y)
@@@ -46,10 -48,10 +48,10 @@@ smp-$(CONFIG_ARCH_EMEV2)   += smp-emev2.
  
  # PM objects
  obj-$(CONFIG_SUSPEND)         += suspend.o
 -obj-$(CONFIG_CPU_IDLE)                += cpuidle.o
  obj-$(CONFIG_CPU_FREQ)                += cpufreq.o
  obj-$(CONFIG_PM_RCAR)         += pm-rcar.o
  obj-$(CONFIG_PM_RMOBILE)      += pm-rmobile.o
 +obj-$(CONFIG_ARCH_RCAR_GEN2)  += pm-rcar-gen2.o
  
  # special sh7372 handling for IRQ objects and low level sleep code
  obj-$(CONFIG_ARCH_SH7372)     += entry-intc.o sleep-sh7372.o
index 51464cc6d65baaf7241551e65364a788cdb2dfed,8c7ec9374e3b51428e8e5036eb5ebae48392ebf8..5d13595aa027447dc9b933f4a5132c6d9f75407c
@@@ -21,6 -21,7 +21,7 @@@
  #include <linux/dma-contiguous.h>
  #include <linux/io.h>
  #include <linux/kernel.h>
+ #include <linux/memblock.h>
  #include <linux/of.h>
  #include <linux/of_fdt.h>
  #include <asm/mach/arch.h>
@@@ -50,7 -51,9 +51,7 @@@ u32 rcar_gen2_read_mode_pins(void
  
  void __init rcar_gen2_timer_init(void)
  {
 -#if defined(CONFIG_ARM_ARCH_TIMER) || defined(CONFIG_COMMON_CLK)
        u32 mode = rcar_gen2_read_mode_pins();
 -#endif
  #ifdef CONFIG_ARM_ARCH_TIMER
        void __iomem *base;
        int extal_mhz = 0;
        iounmap(base);
  #endif /* CONFIG_ARM_ARCH_TIMER */
  
 -#ifdef CONFIG_COMMON_CLK
        rcar_gen2_clocks_init(mode);
 -#endif
  #ifdef CONFIG_ARCH_SHMOBILE_MULTI
        clocksource_of_init();
  #endif
@@@ -195,7 -200,7 +196,7 @@@ void __init rcar_gen2_reserve(void
  
        of_scan_flat_dt(rcar_gen2_scan_mem, &mrc);
  #ifdef CONFIG_DMA_CMA
-       if (mrc.size)
+       if (mrc.size && memblock_is_region_memory(mrc.base, mrc.size))
                dma_contiguous_reserve_area(mrc.size, mrc.base, 0,
                                            &rcar_gen2_dma_contiguous, true);
  #endif