Merge tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 10 Nov 2015 22:48:36 +0000 (14:48 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 10 Nov 2015 22:48:36 +0000 (14:48 -0800)
Pull ARM SoC cleanups from Olof Johansson:
 "Again we have a sizable (but not huge) cleanup branch with a net delta
  of about -3k lines.

  Main contents here is:

   - A bunch of development/cleanup of a few PXA boards
   - Removal of bockw platforms on shmobile, since the platform has now
     gone completely multiplatform.  Whee!
   - move of the 32kHz timer on OMAP to a proper timesource
   - Misc cleanup of older OMAP material (incl removal of one board
     file)
   - Switch over to new common PWM lookup support for several platforms

  There's also a handful of other cleanups across the tree, but the
  above are the major pieces"

* tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (103 commits)
  ARM: OMAP3: hwmod data: Remove legacy mailbox data and addrs
  ARM: DRA7: hwmod data: Remove spinlock hwmod addrs
  ARM: OMAP4: hwmod data: Remove spinlock hwmod addrs
  ARM: DRA7/AM335x/AM437x: hwmod: Remove gpmc address space from hwmod data
  ARM: Remove __ref on hotplug cpu die path
  ARM: Remove open-coded version of IRQCHIP_DECLARE
  arm: omap2: board-generic: use omap4_local_timer_init for AM437x
  ARM: DRA7/AM335x/AM437x: hwmod: Remove elm address space from hwmod data
  ARM: OMAP: Remove duplicated operand in OR operation
  clocksource: ti-32k: make it depend on GENERIC_CLOCKSOURCE
  ARM: pxa: remove incorrect __init annotation on pxa27x_set_pwrmode
  ARM: pxa: raumfeld: make some variables static
  ARM: OMAP: Change all cpu_is_* occurences to soc_is_* for id.c
  ARM: OMAP2+: Rename cpu_is macros to soc_is
  arm: omap2: timer: limit hwmod usage to non-DT boots
  arm: omap2+: select 32k clocksource driver
  clocksource: add TI 32.768 Hz counter driver
  arm: omap2: timer: rename omap_sync32k_timer_init()
  arm: omap2: timer: always call clocksource_of_init() when DT
  arm: omap2: timer: move realtime_counter_init() around
  ...

1  2 
MAINTAINERS
arch/arm/Kconfig
arch/arm/boot/dts/Makefile
arch/arm/mach-exynos/suspend.c
arch/arm/mach-imx/gpc.c
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/omap-wakeupgen.c
arch/arm/mach-omap2/timer.c
drivers/clocksource/Kconfig
drivers/clocksource/Makefile

diff --combined MAINTAINERS
index bc93927db022124006827237a96759d12ab9f1f5,c9ba956b6c4a7d1c21b8395f2c8c00c4f5796be1..f68d84051616287386f4935ea9e4a93af9fa8236
@@@ -240,12 -240,6 +240,12 @@@ L:       lm-sensors@lm-sensors.or
  S:    Maintained
  F:    drivers/hwmon/abituguru3.c
  
 +ACCES 104-IDIO-16 GPIO DRIVER
 +M:    "William Breathitt Gray" <vilhelm.gray@gmail.com>
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/gpio/gpio-104-idio-16.c
 +
  ACENIC DRIVER
  M:    Jes Sorensen <jes@trained-monkey.org>
  L:    linux-acenic@sunsite.dk
@@@ -660,6 -654,11 +660,6 @@@ F:        drivers/gpu/drm/radeon/radeon_kfd.
  F:    drivers/gpu/drm/radeon/radeon_kfd.h
  F:    include/uapi/linux/kfd_ioctl.h
  
 -AMD MICROCODE UPDATE SUPPORT
 -M:    Borislav Petkov <bp@alien8.de>
 -S:    Maintained
 -F:    arch/x86/kernel/cpu/microcode/amd*
 -
  AMD XGBE DRIVER
  M:    Tom Lendacky <thomas.lendacky@amd.com>
  L:    netdev@vger.kernel.org
@@@ -823,13 -822,12 +823,13 @@@ F:      arch/arm/include/asm/floppy.
  
  ARM PMU PROFILING AND DEBUGGING
  M:    Will Deacon <will.deacon@arm.com>
 +R:    Mark Rutland <mark.rutland@arm.com>
  S:    Maintained
 -F:    arch/arm/kernel/perf_*
 +F:    arch/arm*/kernel/perf_*
  F:    arch/arm/oprofile/common.c
 -F:    arch/arm/kernel/hw_breakpoint.c
 -F:    arch/arm/include/asm/hw_breakpoint.h
 -F:    arch/arm/include/asm/perf_event.h
 +F:    arch/arm*/kernel/hw_breakpoint.c
 +F:    arch/arm*/include/asm/hw_breakpoint.h
 +F:    arch/arm*/include/asm/perf_event.h
  F:    drivers/perf/arm_pmu.c
  F:    include/linux/perf/arm_pmu.h
  
@@@ -896,12 -894,11 +896,12 @@@ M:      Lennert Buytenhek <kernel@wantstofly
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
 -ARM/Allwinner A1X SoC support
 +ARM/Allwinner sunXi SoC support
  M:    Maxime Ripard <maxime.ripard@free-electrons.com>
 +M:    Chen-Yu Tsai <wens@csie.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -N:    sun[x4567]i
 +N:    sun[x456789]i
  
  ARM/Allwinner SoC Clock Support
  M:    Emilio López <emilio@elopez.com.ar>
@@@ -1233,13 -1230,6 +1233,13 @@@ ARM/LPC18XX ARCHITECTUR
  M:    Joachim Eastwood <manabian@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 +F:    arch/arm/boot/dts/lpc43*
 +F:    drivers/clk/nxp/clk-lpc18xx*
 +F:    drivers/clocksource/time-lpc32xx.c
 +F:    drivers/i2c/busses/i2c-lpc2k.c
 +F:    drivers/memory/pl172.c
 +F:    drivers/mtd/spi-nor/nxp-spifi.c
 +F:    drivers/rtc/rtc-lpc24xx.c
  N:    lpc18xx
  
  ARM/MAGICIAN MACHINE SUPPORT
@@@ -1307,13 -1297,6 +1307,13 @@@ F:    arch/arm/mach-mediatek
  N:    mtk
  K:    mediatek
  
 +ARM/Mediatek USB3 PHY DRIVER
 +M:    Chunfeng Yun <chunfeng.yun@mediatek.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:    drivers/phy/phy-mt65xx-usb3.c
 +
  ARM/MICREL KS8695 ARCHITECTURE
  M:    Greg Ungerer <gerg@uclinux.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1496,14 -1479,6 +1496,14 @@@ L:    linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/platform/s5p-tv/
  
 +ARM/SAMSUNG S5P SERIES JPEG CODEC SUPPORT
 +M:    Andrzej Pietrasiewicz <andrzej.p@samsung.com>
 +M:    Jacek Anaszewski <j.anaszewski@samsung.com>
 +L:    linux-arm-kernel@lists.infradead.org
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/media/platform/s5p-jpeg/
 +
  ARM/SHMOBILE ARM ARCHITECTURE
  M:    Simon Horman <horms@verge.net.au>
  M:    Magnus Damm <magnus.damm@gmail.com>
@@@ -1516,8 -1491,6 +1516,6 @@@ F:      arch/arm/boot/dts/emev2
  F:    arch/arm/boot/dts/r7s*
  F:    arch/arm/boot/dts/r8a*
  F:    arch/arm/boot/dts/sh*
- F:    arch/arm/configs/bockw_defconfig
- F:    arch/arm/configs/marzen_defconfig
  F:    arch/arm/configs/shmobile_defconfig
  F:    arch/arm/include/debug/renesas-scif.S
  F:    arch/arm/mach-shmobile/
@@@ -1552,7 -1525,6 +1550,7 @@@ W:      http://www.stlinux.co
  S:    Maintained
  F:    arch/arm/mach-sti/
  F:    arch/arm/boot/dts/sti*
 +F:    drivers/char/hw_random/st-rng.c
  F:    drivers/clocksource/arm_global_timer.c
  F:    drivers/clocksource/clksrc_st_lpc.c
  F:    drivers/i2c/busses/i2c-st.c
@@@ -1633,7 -1605,6 +1631,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    arch/arm/boot/dts/uniphier*
  F:    arch/arm/mach-uniphier/
 +F:    drivers/i2c/busses/i2c-uniphier*
  F:    drivers/pinctrl/uniphier/
  F:    drivers/tty/serial/8250/8250_uniphier.c
  N:    uniphier
@@@ -1806,14 -1777,6 +1804,14 @@@ S:    Supporte
  F:    Documentation/aoe/
  F:    drivers/block/aoe/
  
 +ATHEROS 71XX/9XXX GPIO DRIVER
 +M:    Alban Bedel <albeu@free.fr>
 +W:    https://github.com/AlbanBedel/linux
 +T:    git git://github.com/AlbanBedel/linux
 +S:    Maintained
 +F:    drivers/gpio/gpio-ath79.c
 +F:    Documentation/devicetree/bindings/gpio/gpio-ath79.txt
 +
  ATHEROS ATH GENERIC UTILITIES
  M:    "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
  L:    linux-wireless@vger.kernel.org
@@@ -2395,27 -2358,19 +2393,27 @@@ L:   linux-scsi@vger.kernel.or
  S:    Supported
  F:    drivers/scsi/bnx2i/
  
 -BROADCOM CYGNUS/IPROC ARM ARCHITECTURE
 +BROADCOM IPROC ARM ARCHITECTURE
  M:    Ray Jui <rjui@broadcom.com>
  M:    Scott Branden <sbranden@broadcom.com>
 +M:    Jon Mason <jonmason@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    bcm-kernel-feedback-list@broadcom.com
  T:    git git://github.com/broadcom/cygnus-linux.git
  S:    Maintained
  N:    iproc
  N:    cygnus
 +N:    nsp
  N:    bcm9113*
  N:    bcm9583*
 -N:    bcm583*
 +N:    bcm9585*
 +N:    bcm9586*
 +N:    bcm988312
  N:    bcm113*
 +N:    bcm583*
 +N:    bcm585*
 +N:    bcm586*
 +N:    bcm88312
  
  BROADCOM BRCMSTB GPIO DRIVER
  M:    Gregory Fong <gregory.0xf0@gmail.com>
@@@ -2773,10 -2728,9 +2771,10 @@@ S:    Supporte
  F:    drivers/net/ethernet/cisco/enic/
  
  CISCO VIC LOW LATENCY NIC DRIVER
 -M:    Upinder Malhi <umalhi@cisco.com>
 +M:    Christian Benvenuti <benve@cisco.com>
 +M:    Dave Goodell <dgoodell@cisco.com>
  S:    Supported
 -F:    drivers/infiniband/hw/usnic
 +F:    drivers/infiniband/hw/usnic/
  
  CIRRUS LOGIC EP93XX ETHERNET DRIVER
  M:    Hartley Sweeten <hsweeten@visionengravers.com>
@@@ -3203,15 -3157,6 +3201,15 @@@ F:    Documentation/powerpc/cxl.tx
  F:    Documentation/powerpc/cxl.txt
  F:    Documentation/ABI/testing/sysfs-class-cxl
  
 +CXLFLASH (IBM Coherent Accelerator Processor Interface CAPI Flash) SCSI DRIVER
 +M:    Manoj N. Kumar <manoj@linux.vnet.ibm.com>
 +M:    Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
 +L:    linux-scsi@vger.kernel.org
 +S:    Supported
 +F:    drivers/scsi/cxlflash/
 +F:    include/uapi/scsi/cxlflash_ioctls.h
 +F:    Documentation/powerpc/cxlflash.txt
 +
  STMMAC ETHERNET DRIVER
  M:    Giuseppe Cavallaro <peppe.cavallaro@st.com>
  L:    netdev@vger.kernel.org
@@@ -3420,7 -3365,6 +3418,7 @@@ M:      Support Opensource <support.opensour
  W:    http://www.dialog-semiconductor.com/products
  S:    Supported
  F:    Documentation/hwmon/da90??
 +F:    Documentation/devicetree/bindings/sound/da[79]*.txt
  F:    drivers/gpio/gpio-da90??.c
  F:    drivers/hwmon/da90??-hwmon.c
  F:    drivers/iio/adc/da91??-*.c
@@@ -3555,15 -3499,13 +3553,15 @@@ M:   Jonathan Corbet <corbet@lwn.net
  L:    linux-doc@vger.kernel.org
  S:    Maintained
  F:    Documentation/
 +F:    scripts/docproc.c
 +F:    scripts/kernel-doc*
  X:    Documentation/ABI/
  X:    Documentation/devicetree/
  X:    Documentation/acpi
  X:    Documentation/power
  X:    Documentation/spi
  X:    Documentation/DocBook/media
 -T:    git git://git.lwn.net/linux-2.6.git docs-next
 +T:    git git://git.lwn.net/linux.git docs-next
  
  DOUBLETALK DRIVER
  M:    "James R. Van Zandt" <jrv@vanzandt.mv.com>
@@@ -3633,14 -3575,13 +3631,14 @@@ S:   Maintaine
  F:    drivers/gpu/drm/drm_panel.c
  F:    drivers/gpu/drm/panel/
  F:    include/drm/drm_panel.h
 -F:    Documentation/devicetree/bindings/panel/
 +F:    Documentation/devicetree/bindings/display/panel/
  
  INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets)
  M:    Daniel Vetter <daniel.vetter@intel.com>
  M:    Jani Nikula <jani.nikula@linux.intel.com>
  L:    intel-gfx@lists.freedesktop.org
  L:    dri-devel@lists.freedesktop.org
 +W:    https://01.org/linuxgraphics/
  Q:    http://patchwork.freedesktop.org/project/intel-gfx/
  T:    git git://anongit.freedesktop.org/drm-intel
  S:    Supported
@@@ -3648,13 -3589,6 +3646,13 @@@ F:    drivers/gpu/drm/i915
  F:    include/drm/i915*
  F:    include/uapi/drm/i915*
  
 +DRM DRIVERS FOR ATMEL HLCDC
 +M:    Boris Brezillon <boris.brezillon@free-electrons.com>
 +L:    dri-devel@lists.freedesktop.org
 +S:    Supported
 +F:    drivers/gpu/drm/atmel-hlcdc/
 +F:    Documentation/devicetree/bindings/drm/atmel/
 +
  DRM DRIVERS FOR EXYNOS
  M:    Inki Dae <inki.dae@samsung.com>
  M:    Joonyoung Shim <jy0922.shim@samsung.com>
@@@ -3673,24 -3607,15 +3671,24 @@@ M:   Alison Wang <alison.wang@freescale.c
  L:    dri-devel@lists.freedesktop.org
  S:    Supported
  F:    drivers/gpu/drm/fsl-dcu/
 -F:    Documentation/devicetree/bindings/video/fsl,dcu.txt
 -F:    Documentation/devicetree/bindings/panel/nec,nl4827hc19_05b.txt
 +F:    Documentation/devicetree/bindings/display/fsl,dcu.txt
 +F:    Documentation/devicetree/bindings/display/panel/nec,nl4827hc19_05b.txt
  
  DRM DRIVERS FOR FREESCALE IMX
  M:    Philipp Zabel <p.zabel@pengutronix.de>
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
  F:    drivers/gpu/drm/imx/
 -F:    Documentation/devicetree/bindings/drm/imx/
 +F:    drivers/gpu/ipu-v3/
 +F:    Documentation/devicetree/bindings/display/imx/
 +
 +DRM DRIVERS FOR GMA500 (Poulsbo, Moorestown and derivative chipsets)
 +M:    Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
 +L:    dri-devel@lists.freedesktop.org
 +T:    git git://github.com/patjak/drm-gma500
 +S:    Maintained
 +F:    drivers/gpu/drm/gma500
 +F:    include/drm/gma500*
  
  DRM DRIVERS FOR NVIDIA TEGRA
  M:    Thierry Reding <thierry.reding@gmail.com>
@@@ -3703,7 -3628,7 +3701,7 @@@ F:      drivers/gpu/drm/tegra
  F:    drivers/gpu/host1x/
  F:    include/linux/host1x.h
  F:    include/uapi/drm/tegra_drm.h
 -F:    Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt
 +F:    Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
  
  DRM DRIVERS FOR RENESAS
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
@@@ -3720,7 -3645,7 +3718,7 @@@ M:      Mark Yao <mark.yao@rock-chips.com
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
  F:    drivers/gpu/drm/rockchip/
 -F:    Documentation/devicetree/bindings/video/rockchip*
 +F:    Documentation/devicetree/bindings/display/rockchip*
  
  DRM DRIVERS FOR STI
  M:    Benjamin Gaignard <benjamin.gaignard@linaro.org>
@@@ -3729,7 -3654,7 +3727,7 @@@ L:      dri-devel@lists.freedesktop.or
  T:    git http://git.linaro.org/people/benjamin.gaignard/kernel.git
  S:    Maintained
  F:    drivers/gpu/drm/sti
 -F:    Documentation/devicetree/bindings/gpu/st,stih4xx.txt
 +F:    Documentation/devicetree/bindings/display/st,stih4xx.txt
  
  DSBR100 USB FM RADIO DRIVER
  M:    Alexey Klimov <klimov.linux@gmail.com>
@@@ -4076,7 -4001,7 +4074,7 @@@ S:      Maintaine
  F:    sound/usb/misc/ua101.c
  
  EXTENSIBLE FIRMWARE INTERFACE (EFI)
 -M:    Matt Fleming <matt.fleming@intel.com>
 +M:    Matt Fleming <matt@codeblueprint.co.uk>
  L:    linux-efi@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git
  S:    Maintained
@@@ -4091,7 -4016,7 +4089,7 @@@ F:      include/linux/efi*.
  EFI VARIABLE FILESYSTEM
  M:    Matthew Garrett <matthew.garrett@nebula.com>
  M:    Jeremy Kerr <jk@ozlabs.org>
 -M:    Matt Fleming <matt.fleming@intel.com>
 +M:    Matt Fleming <matt@codeblueprint.co.uk>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git
  L:    linux-efi@vger.kernel.org
  S:    Maintained
@@@ -4227,10 -4152,7 +4225,10 @@@ L:    linux-kernel@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon.git
  S:    Maintained
  F:    drivers/extcon/
 +F:    include/linux/extcon/
 +F:    include/linux/extcon.h
  F:    Documentation/extcon/
 +F:    Documentation/devicetree/bindings/extcon/
  
  EXYNOS DP DRIVER
  M:    Jingoo Han <jingoohan1@gmail.com>
@@@ -4397,13 -4319,6 +4395,13 @@@ F:    include/linux/fmc*.
  F:    include/linux/ipmi-fru.h
  K:    fmc_d.*register
  
 +FPGA MANAGER FRAMEWORK
 +M:    Alan Tull <atull@opensource.altera.com>
 +S:    Maintained
 +F:    drivers/fpga/
 +F:    include/linux/fpga/fpga-mgr.h
 +W:    http://www.rocketboards.org
 +
  FPU EMULATOR
  M:    Bill Metzenthen <billm@melbpc.org.au>
  W:    http://floatingpoint.sourceforge.net/emulator/index.html
@@@ -4425,6 -4340,7 +4423,6 @@@ Q:      http://patchwork.kernel.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/plagnioj/linux-fbdev.git
  S:    Maintained
  F:    Documentation/fb/
 -F:    Documentation/devicetree/bindings/fb/
  F:    drivers/video/
  F:    include/video/
  F:    include/linux/fb.h
@@@ -4494,14 -4410,6 +4492,14 @@@ L:    linuxppc-dev@lists.ozlabs.or
  S:    Maintained
  F:    drivers/net/ethernet/freescale/ucc_geth*
  
 +FREESCALE eTSEC ETHERNET DRIVER (GIANFAR)
 +M:    Claudiu Manoil <claudiu.manoil@freescale.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/ethernet/freescale/gianfar*
 +X:    drivers/net/ethernet/freescale/gianfar_ptp.c
 +F:    Documentation/devicetree/bindings/net/fsl-tsec-phy.txt
 +
  FREESCALE QUICC ENGINE UCC UART DRIVER
  M:    Timur Tabi <timur@tabi.org>
  L:    linuxppc-dev@lists.ozlabs.org
@@@ -5179,7 -5087,6 +5177,7 @@@ S:      Maintaine
  F:    Documentation/devicetree/bindings/i2c/
  F:    Documentation/i2c/
  F:    drivers/i2c/
 +F:    drivers/i2c/*/
  F:    include/linux/i2c.h
  F:    include/linux/i2c-*.h
  F:    include/uapi/linux/i2c.h
@@@ -5521,6 -5428,12 +5519,6 @@@ W:     https://01.org/linux-acp
  S:    Supported
  F:    drivers/platform/x86/intel_menlow.c
  
 -INTEL IA32 MICROCODE UPDATE SUPPORT
 -M:    Borislav Petkov <bp@alien8.de>
 -S:    Maintained
 -F:    arch/x86/kernel/cpu/microcode/core*
 -F:    arch/x86/kernel/cpu/microcode/intel*
 -
  INTEL I/OAT DMA DRIVER
  M:    Dave Jiang <dave.jiang@intel.com>
  R:    Dan Williams <dan.j.williams@intel.com>
@@@ -5600,12 -5513,6 +5598,12 @@@ F:    Documentation/networking/README.ipw2
  F:    Documentation/networking/README.ipw2200
  F:    drivers/net/wireless/ipw2x00/
  
 +INTEL(R) TRACE HUB
 +M:    Alexander Shishkin <alexander.shishkin@linux.intel.com>
 +S:    Supported
 +F:    Documentation/trace/intel_th.txt
 +F:    drivers/hwtracing/intel_th/
 +
  INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
  M:    Richard L Maliszewski <richard.l.maliszewski@intel.com>
  M:    Gang Wei <gang.wei@intel.com>
@@@ -5637,7 -5544,7 +5635,7 @@@ F:      drivers/net/wireless/iwlegacy
  INTEL WIRELESS WIFI LINK (iwlwifi)
  M:    Johannes Berg <johannes.berg@intel.com>
  M:    Emmanuel Grumbach <emmanuel.grumbach@intel.com>
 -M:    Intel Linux Wireless <ilw@linux.intel.com>
 +M:    Intel Linux Wireless <linuxwifi@intel.com>
  L:    linux-wireless@vger.kernel.org
  W:    http://intellinuxwireless.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git
@@@ -5653,22 -5560,6 +5651,22 @@@ F:    include/linux/mei_cl_bus.
  F:    drivers/misc/mei/*
  F:    Documentation/misc-devices/mei/*
  
 +INTEL MIC DRIVERS (mic)
 +M:    Sudeep Dutt <sudeep.dutt@intel.com>
 +M:    Ashutosh Dixit <ashutosh.dixit@intel.com>
 +S:    Supported
 +W:    https://github.com/sudeepdutt/mic
 +W:    http://software.intel.com/en-us/mic-developer
 +F:    include/linux/mic_bus.h
 +F:    include/linux/scif.h
 +F:    include/uapi/linux/mic_common.h
 +F:    include/uapi/linux/mic_ioctl.h
 +F     include/uapi/linux/scif_ioctl.h
 +F:    drivers/misc/mic/
 +F:    drivers/dma/mic_x100_dma.c
 +F:    drivers/dma/mic_x100_dma.h
 +F     Documentation/mic/
 +
  INTEL PMC IPC DRIVER
  M:    Zha Qipeng<qipeng.zha@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -6200,13 -6091,6 +6198,13 @@@ F:    Documentation/auxdisplay/ks010
  F:    drivers/auxdisplay/ks0108.c
  F:    include/linux/ks0108.h
  
 +L3MDEV
 +M:    David Ahern <dsa@cumulusnetworks.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    net/l3mdev
 +F:    include/net/l3mdev.h
 +
  LAPB module
  L:    linux-x25@vger.kernel.org
  S:    Orphan
@@@ -6357,14 -6241,6 +6355,14 @@@ F:    drivers/nvdimm/pmem.
  F:    include/linux/pmem.h
  F:    arch/*/include/asm/pmem.h
  
 +LIGHTNVM PLATFORM SUPPORT
 +M:    Matias Bjorling <mb@lightnvm.io>
 +W:    http://github/OpenChannelSSD
 +S:    Maintained
 +F:    drivers/lightnvm/
 +F:    include/linux/lightnvm.h
 +F:    include/uapi/linux/lightnvm.h
 +
  LINUX FOR IBM pSERIES (RS/6000)
  M:    Paul Mackerras <paulus@au.ibm.com>
  W:    http://www.ibm.com/linux/ltc/projects/ppc
@@@ -6682,13 -6558,6 +6680,13 @@@ M:    Guenter Roeck <linux@roeck-us.net
  S:    Maintained
  F:    drivers/net/dsa/mv88e6352.c
  
 +MARVELL CRYPTO DRIVER
 +M:    Boris Brezillon <boris.brezillon@free-electrons.com>
 +M:    Arnaud Ebalard <arno@natisbad.org>
 +F:    drivers/crypto/marvell/
 +S:    Maintained
 +L:    linux-crypto@vger.kernel.org
 +
  MARVELL GIGABIT ETHERNET DRIVERS (skge/sky2)
  M:    Mirko Lindner <mlindner@marvell.com>
  M:    Stephen Hemminger <stephen@networkplumber.org>
@@@ -6811,12 -6680,6 +6809,12 @@@ W:    http://linuxtv.or
  S:    Maintained
  F:    drivers/media/radio/radio-maxiradio*
  
 +MCP4531 MICROCHIP DIGITAL POTENTIOMETER DRIVER
 +M:    Peter Rosin <peda@axentia.se>
 +L:    linux-iio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/iio/potentiometer/mcp4531.c
 +
  MEDIA DRIVERS FOR RENESAS - VSP1
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-media@vger.kernel.org
@@@ -6913,6 -6776,7 +6911,6 @@@ 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
@@@ -6989,7 -6853,6 +6987,7 @@@ S:      Supporte
  F:    arch/metag/
  F:    Documentation/metag/
  F:    Documentation/devicetree/bindings/metag/
 +F:    Documentation/devicetree/bindings/interrupt-controller/img,*
  F:    drivers/clocksource/metag_generic.c
  F:    drivers/irqchip/irq-metag.c
  F:    drivers/irqchip/irq-metag-ext.c
@@@ -7053,13 -6916,6 +7051,13 @@@ S:    Supporte
  F:    include/linux/mlx5/
  F:    drivers/infiniband/hw/mlx5/
  
 +MELEXIS MLX90614 DRIVER
 +M:    Crt Mori <cmo@melexis.com>
 +L:    linux-iio@vger.kernel.org
 +W:    http://www.melexis.com
 +S:    Supported
 +F:    drivers/iio/temperature/mlx90614.c
 +
  MN88472 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
  L:    linux-media@vger.kernel.org
@@@ -7113,7 -6969,6 +7111,7 @@@ M:      Alan Ott <alan@signal11.us
  L:    linux-wpan@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ieee802154/mrf24j40.c
 +F:    Documentation/devicetree/bindings/net/ieee802154/mrf24j40.txt
  
  MSI LAPTOP SUPPORT
  M:    "Lee, Chun-Yi" <jlee@suse.com>
@@@ -7186,6 -7041,7 +7184,6 @@@ F:      drivers/media/i2c/mt9v032.
  F:    include/media/mt9v032.h
  
  MULTIFUNCTION DEVICES (MFD)
 -M:    Samuel Ortiz <sameo@linux.intel.com>
  M:    Lee Jones <lee.jones@linaro.org>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git
  S:    Supported
@@@ -7447,6 -7303,7 +7445,6 @@@ S:      Odd Fixe
  F:    drivers/net/
  F:    include/linux/if_*
  F:    include/linux/netdevice.h
 -F:    include/linux/arcdevice.h
  F:    include/linux/etherdevice.h
  F:    include/linux/fcdevice.h
  F:    include/linux/fddidevice.h
@@@ -7512,7 -7369,6 +7510,7 @@@ S:      Supporte
  F:    Documentation/filesystems/nilfs2.txt
  F:    fs/nilfs2/
  F:    include/linux/nilfs2_fs.h
 +F:    include/trace/events/nilfs2.h
  
  NINJA SCSI-3 / NINJA SCSI-32Bi (16bit/CardBus) PCMCIA SCSI HOST ADAPTER DRIVER
  M:    YOKOTA Hiroshi <yokota@netlab.is.tsukuba.ac.jp>
@@@ -7540,10 -7396,10 +7538,10 @@@ NOKIA N900 POWER SUPPLY DRIVER
  M:    Pali Rohár <pali.rohar@gmail.com>
  S:    Maintained
  F:    include/linux/power/bq2415x_charger.h
 -F:    include/linux/power/bq27x00_battery.h
 +F:    include/linux/power/bq27xxx_battery.h
  F:    include/linux/power/isp1704_charger.h
  F:    drivers/power/bq2415x_charger.c
 -F:    drivers/power/bq27x00_battery.c
 +F:    drivers/power/bq27xxx_battery.c
  F:    drivers/power/isp1704_charger.c
  F:    drivers/power/rx51_battery.c
  
@@@ -7586,13 -7442,11 +7584,13 @@@ F:   drivers/video/fbdev/riva
  F:    drivers/video/fbdev/nvidia/
  
  NVM EXPRESS DRIVER
 -M:    Matthew Wilcox <willy@linux.intel.com>
 +M:    Keith Busch <keith.busch@intel.com>
 +M:    Jens Axboe <axboe@fb.com>
  L:    linux-nvme@lists.infradead.org
 -T:    git git://git.infradead.org/users/willy/linux-nvme.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
 +W:    https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux-block/
  S:    Supported
 -F:    drivers/block/nvme*
 +F:    drivers/nvme/host/
  F:    include/linux/nvme.h
  
  NVMEM FRAMEWORK
@@@ -8087,14 -7941,6 +8085,14 @@@ F:    include/linux/pci
  F:    arch/x86/pci/
  F:    arch/x86/kernel/quirks.c
  
 +PCI DRIVER FOR ALTERA PCIE IP
 +M:    Ley Foon Tan <lftan@altera.com>
 +L:    rfi@lists.rocketboards.org (moderated for non-subscribers)
 +L:    linux-pci@vger.kernel.org
 +S:    Supported
 +F:    Documentation/devicetree/bindings/pci/altera-pcie.txt
 +F:    drivers/pci/host/pcie-altera.c
 +
  PCI DRIVER FOR ARM VERSATILE PLATFORM
  M:    Rob Herring <robh@kernel.org>
  L:    linux-pci@vger.kernel.org
@@@ -8196,14 -8042,6 +8194,14 @@@ L:    linux-pci@vger.kernel.or
  S:    Maintained
  F:    drivers/pci/host/*spear*
  
 +PCI MSI DRIVER FOR ALTERA MSI IP
 +M:    Ley Foon Tan <lftan@altera.com>
 +L:    rfi@lists.rocketboards.org (moderated for non-subscribers)
 +L:    linux-pci@vger.kernel.org
 +S:    Supported
 +F:    Documentation/devicetree/bindings/pci/altera-pcie-msi.txt
 +F:    drivers/pci/host/pcie-altera-msi.c
 +
  PCI MSI DRIVER FOR APPLIEDMICRO XGENE
  M:    Duc Dang <dhdang@apm.com>
  L:    linux-pci@vger.kernel.org
@@@ -8212,13 -8050,6 +8210,13 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/pci/xgene-pci-msi.txt
  F:    drivers/pci/host/pci-xgene-msi.c
  
 +PCIE DRIVER FOR HISILICON
 +M:    Zhou Wang <wangzhou1@hisilicon.com>
 +L:    linux-pci@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/hisilicon-pcie.txt
 +F:    drivers/pci/host/pcie-hisi.c
 +
  PCMCIA SUBSYSTEM
  P:    Linux PCMCIA Team
  L:    linux-pcmcia@lists.infradead.org
@@@ -8325,13 -8156,6 +8323,13 @@@ L:    linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    drivers/pinctrl/pinctrl-at91.*
  
 +PIN CONTROLLER - ATMEL AT91 PIO4
 +M:    Ludovic Desroches <ludovic.desroches@atmel.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +L:    linux-gpio@vger.kernel.org
 +S:    Supported
 +F:    drivers/pinctrl/pinctrl-at91-pio4.*
 +
  PIN CONTROLLER - INTEL
  M:    Mika Westerberg <mika.westerberg@linux.intel.com>
  M:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
@@@ -8435,6 -8259,12 +8433,6 @@@ M:     "Rafael J. Wysocki" <rafael.j.wysock
  S:    Maintained
  F:    drivers/pnp/
  
 -PNXxxxx I2C DRIVER
 -M:    Vitaly Wool <vitalywool@gmail.com>
 -L:    linux-i2c@vger.kernel.org
 -S:    Maintained
 -F:    drivers/i2c/busses/i2c-pnx.c
 -
  PPP PROTOCOL DRIVERS AND COMPRESSORS
  M:    Paul Mackerras <paulus@samba.org>
  L:    linux-ppp@vger.kernel.org
@@@ -8687,16 -8517,6 +8685,16 @@@ L:    netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/qlogic/qlge/
  
 +QLOGIC QL4xxx ETHERNET DRIVER
 +M:    Yuval Mintz <Yuval.Mintz@qlogic.com>
 +M:    Ariel Elior <Ariel.Elior@qlogic.com>
 +M:    everest-linux-l2@qlogic.com
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/ethernet/qlogic/qed/
 +F:    include/linux/qed/
 +F:    drivers/net/ethernet/qlogic/qede/
 +
  QNX4 FILESYSTEM
  M:    Anders Larsen <al@alarsen.net>
  W:    http://www.alarsen.net/linux/qnx4fs/
@@@ -9048,13 -8868,6 +9046,13 @@@ S:    Maintaine
  F:    drivers/net/wireless/rtlwifi/
  F:    drivers/net/wireless/rtlwifi/rtl8192ce/
  
 +RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
 +M:    Jes Sorensen <Jes.Sorensen@redhat.com>
 +L:    linux-wireless@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8723au-mac80211
 +S:    Maintained
 +F:    drivers/net/wireless/realtek/rtl8xxxu/
 +
  S3 SAVAGE FRAMEBUFFER DRIVER
  M:    Antonino Daplas <adaplas@gmail.com>
  L:    linux-fbdev@vger.kernel.org
@@@ -9128,13 -8941,6 +9126,13 @@@ F:    drivers/s390/net/*iucv
  F:    include/net/iucv/
  F:    net/iucv/
  
 +S390 IOMMU (PCI)
 +M:    Gerald Schaefer <gerald.schaefer@de.ibm.com>
 +L:    linux-s390@vger.kernel.org
 +W:    http://www.ibm.com/developerworks/linux/linux390/
 +S:    Supported
 +F:    drivers/iommu/s390-iommu.c
 +
  S3C24XX SD/MMC Driver
  M:    Ben Dooks <ben-linux@fluff.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -9293,15 -9099,6 +9291,15 @@@ S: Supporte
  F: Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
  F: drivers/net/ethernet/synopsys/dwc_eth_qos.c
  
 +SYNOPSYS DESIGNWARE I2C DRIVER
 +M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
 +M:    Jarkko Nikula <jarkko.nikula@linux.intel.com>
 +M:    Mika Westerberg <mika.westerberg@linux.intel.com>
 +L:    linux-i2c@vger.kernel.org
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-designware-*
 +F:    include/linux/platform_data/i2c-designware.h
 +
  SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
  M:    Seungwon Jeon <tgih.jun@samsung.com>
  M:    Jaehoon Chung <jh80.chung@samsung.com>
@@@ -9310,14 -9107,6 +9308,14 @@@ S:    Maintaine
  F:    include/linux/mmc/dw_mmc.h
  F:    drivers/mmc/host/dw_mmc*
  
 +SYSTEM TRACE MODULE CLASS
 +M:    Alexander Shishkin <alexander.shishkin@linux.intel.com>
 +S:    Maintained
 +F:    Documentation/trace/stm.txt
 +F:    drivers/hwtracing/stm/
 +F:    include/linux/stm.h
 +F:    include/uapi/linux/stm.h
 +
  THUNDERBOLT DRIVER
  M:    Andreas Noever <andreas.noever@gmail.com>
  S:    Maintained
@@@ -9523,8 -9312,8 +9521,8 @@@ F:      include/uapi/linux/phantom.
  
  SERVER ENGINES 10Gbps iSCSI - BladeEngine 2 DRIVER
  M:    Jayamohan Kallickal <jayamohan.kallickal@avagotech.com>
 -M:    Minh Tran <minh.tran@avagotech.com>
 -M:    John Soni Jose <sony.john-n@avagotech.com>
 +M:    Ketan Mukadam <ketan.mukadam@avagotech.com>
 +M:    John Soni Jose <sony.john@avagotech.com>
  L:    linux-scsi@vger.kernel.org
  W:    http://www.avagotech.com
  S:    Supported
@@@ -9652,7 -9441,7 +9650,7 @@@ SIMPLEFB FB DRIVE
  M:    Hans de Goede <hdegoede@redhat.com>
  L:    linux-fbdev@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/video/simple-framebuffer.txt
 +F:    Documentation/devicetree/bindings/display/simple-framebuffer.txt
  F:    drivers/video/fbdev/simplefb.c
  F:    include/linux/platform_data/simplefb.h
  
@@@ -10123,6 -9912,7 +10121,6 @@@ S:    Maintaine
  F:    drivers/staging/lustre
  
  STAGING - NVIDIA COMPLIANT EMBEDDED CONTROLLER INTERFACE (nvec)
 -M:    Julian Andres Klode <jak@jak-linux.org>
  M:    Marc Dietrich <marvin24@gmx.de>
  L:    ac100@lists.launchpad.net (moderated for non-subscribers)
  L:    linux-tegra@vger.kernel.org
@@@ -10186,11 -9976,9 +10184,11 @@@ F:  drivers/staging/vt665?
  
  STAGING - WILC1000 WIFI DRIVER
  M:    Johnny Kim <johnny.kim@atmel.com>
 -M:    Rachel Kim <rachel.kim@atmel.com>
 -M:    Dean Lee <dean.lee@atmel.com>
 +M:    Austin Shin <austin.shin@atmel.com>
  M:    Chris Park <chris.park@atmel.com>
 +M:    Tony Cho <tony.cho@atmel.com>
 +M:    Glen Lee <glen.lee@atmel.com>
 +M:    Leo Kim <leo.kim@atmel.com>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  F:    drivers/staging/wilc1000/
@@@ -10279,11 -10067,9 +10277,11 @@@ F: include/net/switchdev.
  
  SYNOPSYS ARC ARCHITECTURE
  M:    Vineet Gupta <vgupta@synopsys.com>
 +L:    linux-snps-arc@lists.infraded.org
  S:    Supported
  F:    arch/arc/
  F:    Documentation/devicetree/bindings/arc/*
 +F:    Documentation/devicetree/bindings/interrupt-controller/snps,arc*
  F:    drivers/tty/serial/arc_uart.c
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git
  
@@@ -10741,12 -10527,6 +10739,12 @@@ L: platform-driver-x86@vger.kernel.or
  S:    Maintained
  F:    drivers/platform/x86/toshiba_haps.c
  
 +TOSHIBA WMI HOTKEYS DRIVER
 +M:    Azael Avalos <coproscefalo@gmail.com>
 +L:    platform-driver-x86@vger.kernel.org
 +S:    Maintained
 +F:    drivers/platform/x86/toshiba-wmi.c
 +
  TOSHIBA SMM DRIVER
  M:    Jonathan Buzzard <jonathan@buzzard.org.uk>
  W:    http://www.buzzard.org.uk/toshiba/
@@@ -10804,7 -10584,6 +10802,7 @@@ F:   drivers/media/pci/tw68
  TPM DEVICE DRIVER
  M:    Peter Huewe <peterhuewe@gmx.de>
  M:    Marcel Selhorst <tpmdd@selhorst.net>
 +M:    Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
  R:    Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
  W:    http://tpmdd.sourceforge.net
  L:    tpmdd-devel@lists.sourceforge.net (moderated for non-subscribers)
@@@ -11289,12 -11068,6 +11287,12 @@@ S: Maintaine
  F:    Documentation/fb/uvesafb.txt
  F:    drivers/video/fbdev/uvesafb.*
  
 +VF610 NAND DRIVER
 +M:    Stefan Agner <stefan@agner.ch>
 +L:    linux-mtd@lists.infradead.org
 +S:    Supported
 +F:    drivers/mtd/nand/vf610_nfc.c
 +
  VFAT/FAT/MSDOS FILESYSTEM
  M:    OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
  S:    Maintained
@@@ -11325,12 -11098,6 +11323,12 @@@ S: Maintaine
  F:    drivers/media/v4l2-core/videobuf2-*
  F:    include/media/videobuf2-*
  
 +VIRTUAL SERIO DEVICE DRIVER
 +M:    Stephen Chandler Paul <thatslyude@gmail.com>
 +S:    Maintained
 +F:    drivers/input/serio/userio.c
 +F:    include/uapi/linux/userio.h
 +
  VIRTIO CONSOLE DRIVER
  M:    Amit Shah <amit.shah@redhat.com>
  L:    virtualization@lists.linux-foundation.org
@@@ -11408,13 -11175,6 +11406,13 @@@ L: netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/via/via-velocity.*
  
 +VIRT LIB
 +M:    Alex Williamson <alex.williamson@redhat.com>
 +M:    Paolo Bonzini <pbonzini@redhat.com>
 +L:    kvm@vger.kernel.org
 +S:    Supported
 +F:    virt/lib/
 +
  VIVID VIRTUAL VIDEO DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -11503,6 -11263,7 +11501,6 @@@ M:   Shrijeet Mukherjee <shm@cumulusnetwo
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/vrf.c
 -F:    include/net/vrf.h
  F:    Documentation/networking/vrf.txt
  
  VT1211 HARDWARE MONITOR DRIVER
@@@ -11615,15 -11376,21 +11613,15 @@@ W:        http://oops.ghostprotocols.net:81/bl
  S:    Maintained
  F:    drivers/net/wireless/wl3501*
  
 -WM97XX TOUCHSCREEN DRIVERS
 -M:    Mark Brown <broonie@kernel.org>
 -M:    Liam Girdwood <lrg@slimlogic.co.uk>
 -L:    linux-input@vger.kernel.org
 -W:    https://github.com/CirrusLogic/linux-drivers/wiki
 -S:    Supported
 -F:    drivers/input/touchscreen/*wm97*
 -F:    include/linux/wm97xx.h
 -
  WOLFSON MICROELECTRONICS DRIVERS
  L:    patches@opensource.wolfsonmicro.com
  T:    git https://github.com/CirrusLogic/linux-drivers.git
  W:    https://github.com/CirrusLogic/linux-drivers/wiki
  S:    Supported
  F:    Documentation/hwmon/wm83??
 +F:    Documentation/devicetree/bindings/extcon/extcon-arizona.txt
 +F:    Documentation/devicetree/bindings/regulator/arizona-regulator.txt
 +F:    Documentation/devicetree/bindings/mfd/arizona.txt
  F:    arch/arm/mach-s3c64xx/mach-crag6410*
  F:    drivers/clk/clk-wm83*.c
  F:    drivers/extcon/extcon-arizona.c
@@@ -11684,7 -11451,6 +11682,7 @@@ L:   platform-driver-x86@vger.kernel.or
  T:    git git://git.infradead.org/users/dvhart/linux-platform-drivers-x86.git
  S:    Maintained
  F:    drivers/platform/x86/
 +F:    drivers/platform/olpc/
  
  X86 MCE INFRASTRUCTURE
  M:    Tony Luck <tony.luck@intel.com>
@@@ -11693,11 -11459,6 +11691,11 @@@ L: linux-edac@vger.kernel.or
  S:    Maintained
  F:    arch/x86/kernel/cpu/mcheck/*
  
 +X86 MICROCODE UPDATE SUPPORT
 +M:    Borislav Petkov <bp@alien8.de>
 +S:    Maintained
 +F:    arch/x86/kernel/cpu/microcode/*
 +
  X86 VDSO
  M:    Andy Lutomirski <luto@amacapital.net>
  L:    linux-kernel@vger.kernel.org
@@@ -11898,7 -11659,6 +11896,7 @@@ F:   drivers/tty/serial/zs.
  ZSMALLOC COMPRESSED SLAB MEMORY ALLOCATOR
  M:    Minchan Kim <minchan@kernel.org>
  M:    Nitin Gupta <ngupta@vflare.org>
 +R:    Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    mm/zsmalloc.c
diff --combined arch/arm/Kconfig
index 9246bd7cc3cf063d06c1d9c8b6513d33870ca11c,471a3670cd3ee74ede9b0a57ef3d9c9679d50538..0365cbbc917989853d87b8a84c8409ae268d6e33
@@@ -621,31 -621,8 +621,9 @@@ config ARCH_PX
        help
          Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
  
- config ARCH_SHMOBILE_LEGACY
-       bool "Renesas ARM SoCs (non-multiplatform)"
-       select ARCH_SHMOBILE
-       select ARM_PATCH_PHYS_VIRT if MMU
-       select CLKDEV_LOOKUP
-       select CPU_V7
-       select GENERIC_CLOCKEVENTS
-       select HAVE_ARM_SCU if SMP
-       select HAVE_ARM_TWD if SMP
-       select HAVE_SMP
-       select MIGHT_HAVE_CACHE_L2X0
-       select MULTI_IRQ_HANDLER
-       select NO_IOPORT_MAP
-       select PINCTRL
-       select PM_GENERIC_DOMAINS if PM
-       select SH_CLK_CPG
-       select SPARSE_IRQ
-       help
-         Support for Renesas ARM SoC platforms using a non-multiplatform
-         kernel. This includes the SH-Mobile, R-Mobile, EMMA-Mobile, R-Car
-         and RZ families.
  config ARCH_RPC
        bool "RiscPC"
 +      depends on MMU
        select ARCH_ACORN
        select ARCH_MAY_HAVE_PC_FDC
        select ARCH_SPARSEMEM_ENABLE
@@@ -737,6 -714,7 +715,6 @@@ config ARCH_DAVINC
        select GENERIC_CLOCKEVENTS
        select GENERIC_IRQ_CHIP
        select HAVE_IDE
 -      select TI_PRIV_EDMA
        select USE_OF
        select ZONE_DMA
        help
@@@ -819,7 -797,6 +797,7 @@@ config ARCH_VIR
        bool "Dummy Virtual Machine" if ARCH_MULTI_V7
        select ARM_AMBA
        select ARM_GIC
 +      select ARM_GIC_V3
        select ARM_PSCI
        select HAVE_ARM_ARCH_TIMER
  
@@@ -1411,6 -1388,7 +1389,6 @@@ config HAVE_ARM_ARCH_TIME
  
  config HAVE_ARM_TWD
        bool
 -      depends on SMP
        select CLKSRC_OF if OF
        help
          This options enables support for the ARM timer and watchdog unit
@@@ -1470,8 -1448,6 +1448,8 @@@ choic
  
        config VMSPLIT_3G
                bool "3G/1G user/kernel split"
 +      config VMSPLIT_3G_OPT
 +              bool "3G/1G user/kernel split (for full 1G low memory)"
        config VMSPLIT_2G
                bool "2G/2G user/kernel split"
        config VMSPLIT_1G
@@@ -1483,7 -1459,6 +1461,7 @@@ config PAGE_OFFSE
        default PHYS_OFFSET if !MMU
        default 0x40000000 if VMSPLIT_1G
        default 0x80000000 if VMSPLIT_2G
 +      default 0xB0000000 if VMSPLIT_3G_OPT
        default 0xC0000000
  
  config NR_CPUS
@@@ -1537,7 -1512,6 +1515,6 @@@ config HZ_FIXE
        default 200 if ARCH_EBSA110 || ARCH_S3C24XX || \
                ARCH_S5PV210 || ARCH_EXYNOS4
        default 128 if SOC_AT91RM9200
-       default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE_LEGACY
        default 0
  
  choice
@@@ -1698,9 -1672,8 +1675,9 @@@ config HIGHME
          If unsure, say n.
  
  config HIGHPTE
 -      bool "Allocate 2nd-level pagetables from highmem"
 +      bool "Allocate 2nd-level pagetables from highmem" if EXPERT
        depends on HIGHMEM
 +      default y
        help
          The VM uses one page of physical memory for each page table.
          For systems with a lot of processes, this can use a lot of
@@@ -1756,8 -1729,7 +1733,7 @@@ config ARM_MODULE_PLT
  source "mm/Kconfig"
  
  config FORCE_MAX_ZONEORDER
-       int "Maximum zone order" if ARCH_SHMOBILE_LEGACY
-       range 11 64 if ARCH_SHMOBILE_LEGACY
+       int "Maximum zone order"
        default "12" if SOC_AM33XX
        default "9" if SA1111 || ARCH_EFM32
        default "11"
index 6019f5d3ad7f7314c5664f41b6100fef556a6f49,08f85bcc7da794700acb8deb13bc3040eeef9e83..19b348ec65e86fd115dea3ea5393dd8b63bc3b4d
@@@ -522,9 -522,6 +522,6 @@@ dtb-$(CONFIG_ARCH_S5PV210) += 
        s5pv210-smdkc110.dtb \
        s5pv210-smdkv210.dtb \
        s5pv210-torbreck.dtb
- dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += \
-       r8a7778-bockw.dtb \
-       r8a7778-bockw-reference.dtb
  dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
        emev2-kzm9d.dtb \
        r7s72100-genmai.dtb \
@@@ -578,7 -575,7 +575,7 @@@ dtb-$(CONFIG_MACH_SUN4I) += 
        sun4i-a10-hackberry.dtb \
        sun4i-a10-hyundai-a7hd.dtb \
        sun4i-a10-inet97fv2.dtb \
 -      sun4i-a10-itead-iteaduino-plus.dts \
 +      sun4i-a10-itead-iteaduino-plus.dtb \
        sun4i-a10-jesurun-q5.dtb \
        sun4i-a10-marsboard.dtb \
        sun4i-a10-mini-xplus.dtb \
@@@ -740,8 -737,5 +737,8 @@@ dtb-$(CONFIG_ARCH_MEDIATEK) += 
  dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
  endif
  
 +dtstree               := $(srctree)/$(src)
 +dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
 +
  always                := $(dtb-y)
  clean-files   := *.dtb
index 5a7e47ceec91f7a6486821cc0a4b93e7d51257a9,dfb1fcf4042fe54abb8c1ba904da7913d0cf8a24..c169cc3049aa3bbe270905eea1840d1b603b125c
@@@ -19,6 -19,7 +19,7 @@@
  #include <linux/cpu_pm.h>
  #include <linux/io.h>
  #include <linux/irq.h>
+ #include <linux/irqchip.h>
  #include <linux/irqdomain.h>
  #include <linux/of_address.h>
  #include <linux/err.h>
@@@ -177,57 -178,54 +178,57 @@@ static struct irq_chip exynos_pmu_chip 
  #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)
 +static int exynos_pmu_domain_translate(struct irq_domain *d,
 +                                     struct irq_fwspec *fwspec,
 +                                     unsigned long *hwirq,
 +                                     unsigned int *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 */
 +      if (is_of_node(fwspec->fwnode)) {
 +              if (fwspec->param_count != 3)
 +                      return -EINVAL;
 +
 +              /* No PPI should point to this domain */
 +              if (fwspec->param[0] != 0)
 +                      return -EINVAL;
 +
 +              *hwirq = fwspec->param[1];
 +              *type = fwspec->param[2];
 +              return 0;
 +      }
  
 -      *out_hwirq = intspec[1];
 -      *out_type = intspec[2];
 -      return 0;
 +      return -EINVAL;
  }
  
  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;
 +      struct irq_fwspec *fwspec = data;
 +      struct irq_fwspec parent_fwspec;
        irq_hw_number_t hwirq;
        int i;
  
 -      if (args->args_count != 3)
 +      if (fwspec->param_count != 3)
                return -EINVAL; /* Not GIC compliant */
 -      if (args->args[0] != 0)
 +      if (fwspec->param[0] != 0)
                return -EINVAL; /* No PPI should point to this domain */
  
 -      hwirq = args->args[1];
 +      hwirq = fwspec->param[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);
 +      parent_fwspec = *fwspec;
 +      parent_fwspec.fwnode = domain->parent->fwnode;
 +      return irq_domain_alloc_irqs_parent(domain, virq, nr_irqs,
 +                                          &parent_fwspec);
  }
  
  static const struct irq_domain_ops exynos_pmu_domain_ops = {
 -      .xlate  = exynos_pmu_domain_xlate,
 -      .alloc  = exynos_pmu_domain_alloc,
 -      .free   = irq_domain_free_irqs_common,
 +      .translate      = exynos_pmu_domain_translate,
 +      .alloc          = exynos_pmu_domain_alloc,
 +      .free           = irq_domain_free_irqs_common,
  };
  
  static int __init exynos_pmu_irq_init(struct device_node *node,
        return 0;
  }
  
- #define EXYNOS_PMU_IRQ(symbol, name)  OF_DECLARE_2(irqchip, symbol, name, exynos_pmu_irq_init)
+ #define EXYNOS_PMU_IRQ(symbol, name)  IRQCHIP_DECLARE(symbol, name, exynos_pmu_irq_init)
  
  EXYNOS_PMU_IRQ(exynos3250_pmu_irq, "samsung,exynos3250-pmu");
  EXYNOS_PMU_IRQ(exynos4210_pmu_irq, "samsung,exynos4210-pmu");
diff --combined arch/arm/mach-imx/gpc.c
index 10bf7159b27def3adf90403541fed2214b6bac4e,f2783b087d3366c78910eca7ec8073a0d8879dca..8e7976a4c3e723e1b27a08928700bac2b6cb9a09
@@@ -14,6 -14,7 +14,7 @@@
  #include <linux/delay.h>
  #include <linux/io.h>
  #include <linux/irq.h>
+ #include <linux/irqchip.h>
  #include <linux/of.h>
  #include <linux/of_address.h>
  #include <linux/of_irq.h>
@@@ -181,42 -182,40 +182,42 @@@ static struct irq_chip imx_gpc_chip = 
  #endif
  };
  
 -static int imx_gpc_domain_xlate(struct irq_domain *domain,
 -                              struct device_node *controller,
 -                              const u32 *intspec,
 -                              unsigned int intsize,
 -                              unsigned long *out_hwirq,
 -                              unsigned int *out_type)
 +static int imx_gpc_domain_translate(struct irq_domain *d,
 +                                  struct irq_fwspec *fwspec,
 +                                  unsigned long *hwirq,
 +                                  unsigned int *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 */
 +      if (is_of_node(fwspec->fwnode)) {
 +              if (fwspec->param_count != 3)
 +                      return -EINVAL;
  
 -      *out_hwirq = intspec[1];
 -      *out_type = intspec[2];
 -      return 0;
 +              /* No PPI should point to this domain */
 +              if (fwspec->param[0] != 0)
 +                      return -EINVAL;
 +
 +              *hwirq = fwspec->param[1];
 +              *type = fwspec->param[2];
 +              return 0;
 +      }
 +
 +      return -EINVAL;
  }
  
  static int imx_gpc_domain_alloc(struct irq_domain *domain,
                                  unsigned int irq,
                                  unsigned int nr_irqs, void *data)
  {
 -      struct of_phandle_args *args = data;
 -      struct of_phandle_args parent_args;
 +      struct irq_fwspec *fwspec = data;
 +      struct irq_fwspec parent_fwspec;
        irq_hw_number_t hwirq;
        int i;
  
 -      if (args->args_count != 3)
 +      if (fwspec->param_count != 3)
                return -EINVAL; /* Not GIC compliant */
 -      if (args->args[0] != 0)
 +      if (fwspec->param[0] != 0)
                return -EINVAL; /* No PPI should point to this domain */
  
 -      hwirq = args->args[1];
 +      hwirq = fwspec->param[1];
        if (hwirq >= GPC_MAX_IRQS)
                return -EINVAL; /* Can't deal with this */
  
                irq_domain_set_hwirq_and_chip(domain, irq + i, hwirq + i,
                                              &imx_gpc_chip, NULL);
  
 -      parent_args = *args;
 -      parent_args.np = domain->parent->of_node;
 -      return irq_domain_alloc_irqs_parent(domain, irq, nr_irqs, &parent_args);
 +      parent_fwspec = *fwspec;
 +      parent_fwspec.fwnode = domain->parent->fwnode;
 +      return irq_domain_alloc_irqs_parent(domain, irq, nr_irqs,
 +                                          &parent_fwspec);
  }
  
  static const struct irq_domain_ops imx_gpc_domain_ops = {
 -      .xlate  = imx_gpc_domain_xlate,
 -      .alloc  = imx_gpc_domain_alloc,
 -      .free   = irq_domain_free_irqs_common,
 +      .translate      = imx_gpc_domain_translate,
 +      .alloc          = imx_gpc_domain_alloc,
 +      .free           = irq_domain_free_irqs_common,
  };
  
  static int __init imx_gpc_init(struct device_node *node,
  
        return 0;
  }
- /*
-  * We cannot use the IRQCHIP_DECLARE macro that lives in
-  * drivers/irqchip, so we're forced to roll our own. Not very nice.
-  */
- OF_DECLARE_2(irqchip, imx_gpc, "fsl,imx6q-gpc", imx_gpc_init);
+ IRQCHIP_DECLARE(imx_gpc, "fsl,imx6q-gpc", imx_gpc_init);
  
  void __init imx_gpc_check_dt(void)
  {
index ddf912406ce8f271f1d77dee457a878c28eafee4,dc793cc6096507b70459b7a41f81624516eb8053..5076d3f334d28753e697b9e801b050c5807cadad
@@@ -49,7 -49,6 +49,7 @@@ config SOC_OMAP
        select OMAP_INTERCONNECT
        select OMAP_INTERCONNECT_BARRIER
        select PM_OPP if PM
 +      select ZONE_DMA if ARM_LPAE
  
  config SOC_AM33XX
        bool "TI AM33XX"
@@@ -79,7 -78,6 +79,7 @@@ config SOC_DRA7X
        select OMAP_INTERCONNECT
        select OMAP_INTERCONNECT_BARRIER
        select PM_OPP if PM
 +      select ZONE_DMA if ARM_LPAE
  
  config ARCH_OMAP2PLUS
        bool
@@@ -96,7 -94,9 +96,8 @@@
        select OMAP_GPMC
        select PINCTRL
        select SOC_BUS
 -      select TI_PRIV_EDMA
        select OMAP_IRQCHIP
+       select CLKSRC_TI_32K
        help
          Systems based on OMAP2, OMAP3, OMAP4 or OMAP5
  
index fb219a30c10c60ff56f8b6c0ae754a861f886dc0,6bcea25f5f10d9b24bcde35c06b72af7e118b15b..04a56cc04dfa48cfc8c9752033cff152e5f15dba
@@@ -46,7 -46,7 +46,7 @@@ DT_MACHINE_START(OMAP242X_DT, "Generic 
        .map_io         = omap242x_map_io,
        .init_early     = omap2420_init_early,
        .init_machine   = omap_generic_init,
-       .init_time      = omap2_sync32k_timer_init,
+       .init_time      = omap_init_time,
        .dt_compat      = omap242x_boards_compat,
        .restart        = omap2xxx_restart,
  MACHINE_END
@@@ -63,7 -63,7 +63,7 @@@ DT_MACHINE_START(OMAP243X_DT, "Generic 
        .map_io         = omap243x_map_io,
        .init_early     = omap2430_init_early,
        .init_machine   = omap_generic_init,
-       .init_time      = omap2_sync32k_timer_init,
+       .init_time      = omap_init_time,
        .dt_compat      = omap243x_boards_compat,
        .restart        = omap2xxx_restart,
  MACHINE_END
@@@ -82,7 -82,7 +82,7 @@@ DT_MACHINE_START(OMAP3_N900_DT, "Nokia 
        .init_early     = omap3430_init_early,
        .init_machine   = omap_generic_init,
        .init_late      = omap3_init_late,
-       .init_time      = omap3_sync32k_timer_init,
+       .init_time      = omap_init_time,
        .dt_compat      = n900_boards_compat,
        .restart        = omap3xxx_restart,
  MACHINE_END
@@@ -100,13 -100,12 +100,13 @@@ DT_MACHINE_START(OMAP3_DT, "Generic OMA
        .init_early     = omap3430_init_early,
        .init_machine   = omap_generic_init,
        .init_late      = omap3_init_late,
-       .init_time      = omap3_sync32k_timer_init,
+       .init_time      = omap_init_time,
        .dt_compat      = omap3_boards_compat,
        .restart        = omap3xxx_restart,
  MACHINE_END
  
  static const char *const omap36xx_boards_compat[] __initconst = {
 +      "ti,omap3630",
        "ti,omap36xx",
        NULL,
  };
@@@ -117,7 -116,7 +117,7 @@@ DT_MACHINE_START(OMAP36XX_DT, "Generic 
        .init_early     = omap3630_init_early,
        .init_machine   = omap_generic_init,
        .init_late      = omap3_init_late,
-       .init_time      = omap3_sync32k_timer_init,
+       .init_time      = omap_init_time,
        .dt_compat      = omap36xx_boards_compat,
        .restart        = omap3xxx_restart,
  MACHINE_END
@@@ -244,9 -243,6 +244,9 @@@ static const char *const omap5_boards_c
  };
  
  DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)")
 +#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
 +      .dma_zone_size  = SZ_2G,
 +#endif
        .reserve        = omap_reserve,
        .smp            = smp_ops(omap4_smp_ops),
        .map_io         = omap5_map_io,
@@@ -276,7 -272,7 +276,7 @@@ DT_MACHINE_START(AM43_DT, "Generic AM4
        .init_late      = am43xx_init_late,
        .init_irq       = omap_gic_of_init,
        .init_machine   = omap_generic_init,
-       .init_time      = omap3_gptimer_timer_init,
+       .init_time      = omap4_local_timer_init,
        .dt_compat      = am43_boards_compat,
        .restart        = omap44xx_restart,
  MACHINE_END
@@@ -292,9 -288,6 +292,9 @@@ static const char *const dra74x_boards_
  };
  
  DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)")
 +#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
 +      .dma_zone_size  = SZ_2G,
 +#endif
        .reserve        = omap_reserve,
        .smp            = smp_ops(omap4_smp_ops),
        .map_io         = dra7xx_map_io,
@@@ -315,9 -308,6 +315,9 @@@ static const char *const dra72x_boards_
  };
  
  DT_MACHINE_START(DRA72X_DT, "Generic DRA72X (Flattened Device Tree)")
 +#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
 +      .dma_zone_size  = SZ_2G,
 +#endif
        .reserve        = omap_reserve,
        .map_io         = dra7xx_map_io,
        .init_early     = dra7xx_init_early,
index db7e0bab3587cb975ea1ecb5c89e10956fcc7214,68768a1dd8a875c455589145c9fe75632bb0d2bc..f397bd6bd6e30149c525e270853701a916500e96
@@@ -20,6 -20,7 +20,7 @@@
  #include <linux/init.h>
  #include <linux/io.h>
  #include <linux/irq.h>
+ #include <linux/irqchip.h>
  #include <linux/irqdomain.h>
  #include <linux/of_address.h>
  #include <linux/platform_device.h>
@@@ -330,7 -331,7 +331,7 @@@ static int irq_cpu_hotplug_notify(struc
        return NOTIFY_OK;
  }
  
- static struct notifier_block __refdata irq_hotplug_notifier = {
+ static struct notifier_block irq_hotplug_notifier = {
        .notifier_call = irq_cpu_hotplug_notify,
  };
  
@@@ -399,42 -400,40 +400,42 @@@ static struct irq_chip wakeupgen_chip 
  #endif
  };
  
 -static int wakeupgen_domain_xlate(struct irq_domain *domain,
 -                                struct device_node *controller,
 -                                const u32 *intspec,
 -                                unsigned int intsize,
 -                                unsigned long *out_hwirq,
 -                                unsigned int *out_type)
 +static int wakeupgen_domain_translate(struct irq_domain *d,
 +                                    struct irq_fwspec *fwspec,
 +                                    unsigned long *hwirq,
 +                                    unsigned int *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 */
 +      if (is_of_node(fwspec->fwnode)) {
 +              if (fwspec->param_count != 3)
 +                      return -EINVAL;
  
 -      *out_hwirq = intspec[1];
 -      *out_type = intspec[2];
 -      return 0;
 +              /* No PPI should point to this domain */
 +              if (fwspec->param[0] != 0)
 +                      return -EINVAL;
 +
 +              *hwirq = fwspec->param[1];
 +              *type = fwspec->param[2];
 +              return 0;
 +      }
 +
 +      return -EINVAL;
  }
  
  static int wakeupgen_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;
 +      struct irq_fwspec *fwspec = data;
 +      struct irq_fwspec parent_fwspec;
        irq_hw_number_t hwirq;
        int i;
  
 -      if (args->args_count != 3)
 +      if (fwspec->param_count != 3)
                return -EINVAL; /* Not GIC compliant */
 -      if (args->args[0] != 0)
 +      if (fwspec->param[0] != 0)
                return -EINVAL; /* No PPI should point to this domain */
  
 -      hwirq = args->args[1];
 +      hwirq = fwspec->param[1];
        if (hwirq >= MAX_IRQS)
                return -EINVAL; /* Can't deal with this */
  
                irq_domain_set_hwirq_and_chip(domain, virq + i, hwirq + i,
                                              &wakeupgen_chip, NULL);
  
 -      parent_args = *args;
 -      parent_args.np = domain->parent->of_node;
 -      return irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, &parent_args);
 +      parent_fwspec = *fwspec;
 +      parent_fwspec.fwnode = domain->parent->fwnode;
 +      return irq_domain_alloc_irqs_parent(domain, virq, nr_irqs,
 +                                          &parent_fwspec);
  }
  
  static const struct irq_domain_ops wakeupgen_domain_ops = {
 -      .xlate  = wakeupgen_domain_xlate,
 -      .alloc  = wakeupgen_domain_alloc,
 -      .free   = irq_domain_free_irqs_common,
 +      .translate      = wakeupgen_domain_translate,
 +      .alloc          = wakeupgen_domain_alloc,
 +      .free           = irq_domain_free_irqs_common,
  };
  
  /*
@@@ -540,9 -538,4 +541,4 @@@ static int __init wakeupgen_init(struc
  
        return 0;
  }
- /*
-  * We cannot use the IRQCHIP_DECLARE macro that lives in
-  * drivers/irqchip, so we're forced to roll our own. Not very nice.
-  */
- OF_DECLARE_2(irqchip, ti_wakeupgen, "ti,omap4-wugen-mpu", wakeupgen_init);
+ IRQCHIP_DECLARE(ti_wakeupgen, "ti,omap4-wugen-mpu", wakeupgen_init);
index bef41837bf7fd7090eccf768c2881662ac42025a,05c17eb2f2d9374122bdecffcd163931f2ab251c..b18ebbefae09577e20b19e53167aca5ef11b8d86
@@@ -183,7 -183,8 +183,8 @@@ static struct device_node * __init omap
                                  of_get_property(np, "ti,timer-secure", NULL)))
                        continue;
  
-               of_add_property(np, &device_disabled);
+               if (!of_device_is_compatible(np, "ti,omap-counter32k"))
+                       of_add_property(np, &device_disabled);
                return np;
        }
  
@@@ -394,7 -395,6 +395,6 @@@ static int __init __maybe_unused omap2_
        int ret;
        struct device_node *np = NULL;
        struct omap_hwmod *oh;
-       void __iomem *vbase;
        const char *oh_name = "counter_32k";
  
        /*
  
        omap_hwmod_setup_one(oh_name);
  
-       if (np) {
-               vbase = of_iomap(np, 0);
-               of_node_put(np);
-       } else {
-               vbase = omap_hwmod_get_mpu_rt_va(oh);
-       }
-       if (!vbase) {
-               pr_warn("%s: failed to get counter_32k resource\n", __func__);
-               return -ENXIO;
-       }
        ret = omap_hwmod_enable(oh);
        if (ret) {
                pr_warn("%s: failed to enable counter_32k module (%d)\n",
                return ret;
        }
  
-       ret = omap_init_clocksource_32k(vbase);
-       if (ret) {
-               pr_warn("%s: failed to initialize counter_32k as a clocksource (%d)\n",
-                                                       __func__, ret);
-               omap_hwmod_idle(oh);
-       }
+       if (!of_have_populated_dt()) {
+               void __iomem *vbase;
+               vbase = omap_hwmod_get_mpu_rt_va(oh);
  
+               ret = omap_init_clocksource_32k(vbase);
+               if (ret) {
+                       pr_warn("%s: failed to initialize counter_32k as a clocksource (%d)\n",
+                                       __func__, ret);
+                       omap_hwmod_idle(oh);
+               }
+       }
        return ret;
  }
  
@@@ -476,7 -469,64 +469,64 @@@ static void __init omap2_gptimer_clocks
                        clocksource_gpt.name, clksrc.rate);
  }
  
- #ifdef CONFIG_SOC_HAS_REALTIME_COUNTER
+ static void __init __omap_sync32k_timer_init(int clkev_nr, const char *clkev_src,
+               const char *clkev_prop, int clksrc_nr, const char *clksrc_src,
+               const char *clksrc_prop, bool gptimer)
+ {
+       omap_clk_init();
+       omap_dmtimer_init();
+       omap2_gp_clockevent_init(clkev_nr, clkev_src, clkev_prop);
+       /* Enable the use of clocksource="gp_timer" kernel parameter */
+       if (use_gptimer_clksrc || gptimer)
+               omap2_gptimer_clocksource_init(clksrc_nr, clksrc_src,
+                                               clksrc_prop);
+       else
+               omap2_sync32k_clocksource_init();
+ }
+ void __init omap_init_time(void)
+ {
+       __omap_sync32k_timer_init(1, "timer_32k_ck", "ti,timer-alwon",
+                       2, "timer_sys_ck", NULL, false);
+       if (of_have_populated_dt())
 -              clocksource_of_init();
++              clocksource_probe();
+ }
+ #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM43XX)
+ void __init omap3_secure_sync32k_timer_init(void)
+ {
+       __omap_sync32k_timer_init(12, "secure_32k_fck", "ti,timer-secure",
+                       2, "timer_sys_ck", NULL, false);
+ }
+ #endif /* CONFIG_ARCH_OMAP3 */
+ #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX)
+ void __init omap3_gptimer_timer_init(void)
+ {
+       __omap_sync32k_timer_init(2, "timer_sys_ck", NULL,
+                       1, "timer_sys_ck", "ti,timer-alwon", true);
+ }
+ #endif
+ #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) ||                \
+       defined(CONFIG_SOC_DRA7XX) || defined(CONFIG_SOC_AM43XX)
+ static void __init omap4_sync32k_timer_init(void)
+ {
+       __omap_sync32k_timer_init(1, "timer_32k_ck", "ti,timer-alwon",
+                       2, "sys_clkin_ck", NULL, false);
+ }
+ void __init omap4_local_timer_init(void)
+ {
+       omap4_sync32k_timer_init();
 -      clocksource_of_init();
++      clocksource_probe();
+ }
+ #endif
+ #if defined(CONFIG_SOC_OMAP5) || defined(CONFIG_SOC_DRA7XX)
  /*
   * The realtime counter also called master counter, is a free-running
   * counter, which is related to real time. It produces the count used
   */
  static void __init realtime_counter_init(void)
  {
+ #ifdef CONFIG_SOC_HAS_REALTIME_COUNTER
        void __iomem *base;
        static struct clk *sys_clk;
        unsigned long rate;
@@@ -586,84 -637,15 +637,15 @@@ sysclk1_based
        set_cntfreq();
  
        iounmap(base);
- }
- #else
- static inline void __init realtime_counter_init(void)
- {}
  #endif
- #define OMAP_SYS_GP_TIMER_INIT(name, clkev_nr, clkev_src, clkev_prop, \
-                              clksrc_nr, clksrc_src, clksrc_prop)      \
- void __init omap##name##_gptimer_timer_init(void)                     \
- {                                                                     \
-       omap_clk_init();                                        \
-       omap_dmtimer_init();                                            \
-       omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop);    \
-       omap2_gptimer_clocksource_init((clksrc_nr), clksrc_src,         \
-                                       clksrc_prop);                   \
  }
  
- #define OMAP_SYS_32K_TIMER_INIT(name, clkev_nr, clkev_src, clkev_prop,        \
-                               clksrc_nr, clksrc_src, clksrc_prop)     \
- void __init omap##name##_sync32k_timer_init(void)             \
- {                                                                     \
-       omap_clk_init();                                        \
-       omap_dmtimer_init();                                            \
-       omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop);    \
-       /* Enable the use of clocksource="gp_timer" kernel parameter */ \
-       if (use_gptimer_clksrc)                                         \
-               omap2_gptimer_clocksource_init((clksrc_nr), clksrc_src, \
-                                               clksrc_prop);           \
-       else                                                            \
-               omap2_sync32k_clocksource_init();                       \
- }
- #ifdef CONFIG_ARCH_OMAP2
- OMAP_SYS_32K_TIMER_INIT(2, 1, "timer_32k_ck", "ti,timer-alwon",
-                       2, "timer_sys_ck", NULL);
- #endif /* CONFIG_ARCH_OMAP2 */
- #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM43XX)
- OMAP_SYS_32K_TIMER_INIT(3, 1, "timer_32k_ck", "ti,timer-alwon",
-                       2, "timer_sys_ck", NULL);
- OMAP_SYS_32K_TIMER_INIT(3_secure, 12, "secure_32k_fck", "ti,timer-secure",
-                       2, "timer_sys_ck", NULL);
- #endif /* CONFIG_ARCH_OMAP3 */
- #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) || \
-       defined(CONFIG_SOC_AM43XX)
- OMAP_SYS_GP_TIMER_INIT(3, 2, "timer_sys_ck", NULL,
-                      1, "timer_sys_ck", "ti,timer-alwon");
- #endif
- #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \
-       defined(CONFIG_SOC_DRA7XX)
- static OMAP_SYS_32K_TIMER_INIT(4, 1, "timer_32k_ck", "ti,timer-alwon",
-                              2, "sys_clkin_ck", NULL);
- #endif
- #ifdef CONFIG_ARCH_OMAP4
- #ifdef CONFIG_HAVE_ARM_TWD
- void __init omap4_local_timer_init(void)
- {
-       omap4_sync32k_timer_init();
-       clocksource_probe();
- }
- #else
- void __init omap4_local_timer_init(void)
- {
-       omap4_sync32k_timer_init();
- }
- #endif /* CONFIG_HAVE_ARM_TWD */
- #endif /* CONFIG_ARCH_OMAP4 */
- #if defined(CONFIG_SOC_OMAP5) || defined(CONFIG_SOC_DRA7XX)
  void __init omap5_realtime_timer_init(void)
  {
        omap4_sync32k_timer_init();
        realtime_counter_init();
  
 -      clocksource_of_init();
 +      clocksource_probe();
  }
  #endif /* CONFIG_SOC_OMAP5 || CONFIG_SOC_DRA7XX */
  
index 9ceaef7eb81d6522f2bcf6c9973023e29c568cf2,3a1efa3fd88d2d4a0809b9560fb8330953f1e345..71cfdf7c97086273b1cc8ae1235ecf919abcfda1
@@@ -2,14 -2,6 +2,14 @@@ menu "Clock Source drivers
  
  config CLKSRC_OF
        bool
 +      select CLKSRC_PROBE
 +
 +config CLKSRC_ACPI
 +      bool
 +      select CLKSRC_PROBE
 +
 +config CLKSRC_PROBE
 +      bool
  
  config CLKSRC_I8253
        bool
@@@ -123,6 -115,14 +123,14 @@@ config CLKSRC_PISTACHI
        bool
        select CLKSRC_OF
  
+ config CLKSRC_TI_32K
+       bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
+       depends on GENERIC_SCHED_CLOCK
+       select CLKSRC_OF if OF
+       help
+         This option enables support for Texas Instruments 32.768 Hz clocksource
+         available on many OMAP-like platforms.
  config CLKSRC_STM32
        bool "Clocksource for STM32 SoCs" if !ARCH_STM32
        depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
  config ARM_ARCH_TIMER
        bool
        select CLKSRC_OF if OF
 +      select CLKSRC_ACPI if ACPI
  
  config ARM_ARCH_TIMER_EVTSTREAM
        bool "Support for ARM architected timer event stream generation"
@@@ -288,10 -287,6 +296,10 @@@ config CLKSRC_MIPS_GI
        depends on MIPS_GIC
        select CLKSRC_OF
  
 +config CLKSRC_TANGO_XTAL
 +      bool
 +      select CLKSRC_OF
 +
  config CLKSRC_PXA
        def_bool y if ARCH_PXA || ARCH_SA1100
        select CLKSRC_OF if OF
index e8aec9dfa597255b3ca167de8456fa8434383c92,749abc3665b31319b03c8faf43479e9ab8d44897..56bd16e77ae37147da0fa4e977adffcb9bc1a4c6
@@@ -1,4 -1,4 +1,4 @@@
 -obj-$(CONFIG_CLKSRC_OF)       += clksrc-of.o
 +obj-$(CONFIG_CLKSRC_PROBE)    += clksrc-probe.o
  obj-$(CONFIG_ATMEL_PIT)               += timer-atmel-pit.o
  obj-$(CONFIG_ATMEL_ST)                += timer-atmel-st.o
  obj-$(CONFIG_ATMEL_TCB_CLKSRC)        += tcb_clksrc.o
@@@ -45,6 -45,7 +45,7 @@@ obj-$(CONFIG_VF_PIT_TIMER)    += vf_pit_ti
  obj-$(CONFIG_CLKSRC_QCOM)     += qcom-timer.o
  obj-$(CONFIG_MTK_TIMER)               += mtk_timer.o
  obj-$(CONFIG_CLKSRC_PISTACHIO)        += time-pistachio.o
+ obj-$(CONFIG_CLKSRC_TI_32K)   += timer-ti-32k.o
  
  obj-$(CONFIG_ARM_ARCH_TIMER)          += arm_arch_timer.o
  obj-$(CONFIG_ARM_GLOBAL_TIMER)                += arm_global_timer.o
@@@ -56,11 -57,9 +57,11 @@@ obj-$(CONFIG_ARCH_KEYSTONE)         += timer-k
  obj-$(CONFIG_ARCH_INTEGRATOR_AP)      += timer-integrator-ap.o
  obj-$(CONFIG_CLKSRC_VERSATILE)                += versatile.o
  obj-$(CONFIG_CLKSRC_MIPS_GIC)         += mips-gic-timer.o
 +obj-$(CONFIG_CLKSRC_TANGO_XTAL)               += tango_xtal.o
  obj-$(CONFIG_CLKSRC_IMX_GPT)          += timer-imx-gpt.o
  obj-$(CONFIG_ASM9260_TIMER)           += asm9260_timer.o
  obj-$(CONFIG_H8300)                   += h8300_timer8.o
  obj-$(CONFIG_H8300_TMR16)             += h8300_timer16.o
  obj-$(CONFIG_H8300_TPU)                       += h8300_tpu.o
  obj-$(CONFIG_CLKSRC_ST_LPC)           += clksrc_st_lpc.o
 +obj-$(CONFIG_X86_NUMACHIP)            += numachip.o