]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'arm-soc/for-next'
authorThierry Reding <treding@nvidia.com>
Thu, 24 Oct 2013 13:00:02 +0000 (15:00 +0200)
committerThierry Reding <treding@nvidia.com>
Thu, 24 Oct 2013 13:00:02 +0000 (15:00 +0200)
Conflicts:
MAINTAINERS
arch/arm/boot/dts/omap3-evm.dts
arch/arm/mach-tegra/Kconfig
arch/arm/mach-ux500/board-mop500.c

33 files changed:
1  2 
MAINTAINERS
arch/arm/Kconfig
arch/arm/boot/dts/am33xx.dtsi
arch/arm/boot/dts/omap3-beagle-xm.dts
arch/arm/boot/dts/omap4.dtsi
arch/arm/boot/dts/omap5.dtsi
arch/arm/common/Makefile
arch/arm/mach-davinci/board-da830-evm.c
arch/arm/mach-davinci/board-da850-evm.c
arch/arm/mach-davinci/board-dm365-evm.c
arch/arm/mach-davinci/board-dm644x-evm.c
arch/arm/mach-davinci/board-dm646x-evm.c
arch/arm/mach-exynos/common.c
arch/arm/mach-exynos/common.h
arch/arm/mach-exynos/mach-exynos4-dt.c
arch/arm/mach-exynos/mach-exynos5-dt.c
arch/arm/mach-highbank/Kconfig
arch/arm/mach-imx/mach-imx6q.c
arch/arm/mach-omap2/board-rx51-peripherals.c
arch/arm/mach-s3c64xx/mach-crag6410.c
arch/arm/mach-tegra/Kconfig
arch/arm/mach-tegra/fuse.c
arch/arm/mach-ux500/Kconfig
drivers/block/Kconfig
drivers/cpufreq/integrator-cpufreq.c
drivers/cpuidle/Kconfig.arm
drivers/dma/Kconfig
drivers/ide/Kconfig
drivers/input/serio/Kconfig
drivers/pci/host/Kconfig
drivers/usb/host/ohci-s3c2410.c
drivers/usb/musb/ux500.c
drivers/video/cyber2000fb.c

diff --combined MAINTAINERS
index 5a7ed4c3590e131ff07d35e6a2076b8905b2e574,83685591362a1679fa770424d1c7f68de1dc9856..2906f6af30b24a62683618b2e3efbf5f4da95708
@@@ -237,11 -237,11 +237,11 @@@ F:      drivers/platform/x86/acer-wmi.
  
  ACPI
  M:    Len Brown <lenb@kernel.org>
 -M:    Rafael J. Wysocki <rjw@sisk.pl>
 +M:    Rafael J. Wysocki <rjw@rjwysocki.net>
  L:    linux-acpi@vger.kernel.org
 -W:    http://www.lesswatts.org/projects/acpi/
 -Q:    http://patchwork.kernel.org/project/linux-acpi/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
 +W:    https://01.org/linux-acpi
 +Q:    https://patchwork.kernel.org/project/linux-acpi/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
  S:    Supported
  F:    drivers/acpi/
  F:    drivers/pnp/pnpacpi/
@@@ -253,38 -253,24 +253,38 @@@ F:      drivers/pci/*acpi
  F:    drivers/pci/*/*acpi*
  F:    drivers/pci/*/*/*acpi*
  
 +ACPI COMPONENT ARCHITECTURE (ACPICA)
 +M:    Robert Moore <robert.moore@intel.com>
 +M:    Lv Zheng <lv.zheng@intel.com>
 +M:    Rafael J. Wysocki <rafael.j.wysocki@intel.com>
 +L:    linux-acpi@vger.kernel.org
 +L:    devel@acpica.org
 +W:    https://acpica.org/
 +W:    https://github.com/acpica/acpica/
 +Q:    https://patchwork.kernel.org/project/linux-acpi/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
 +S:    Supported
 +F:    drivers/acpi/acpica/
 +F:    include/acpi/
 +
  ACPI FAN DRIVER
  M:    Zhang Rui <rui.zhang@intel.com>
  L:    linux-acpi@vger.kernel.org
 -W:    http://www.lesswatts.org/projects/acpi/
 +W:    https://01.org/linux-acpi
  S:    Supported
  F:    drivers/acpi/fan.c
  
  ACPI THERMAL DRIVER
  M:    Zhang Rui <rui.zhang@intel.com>
  L:    linux-acpi@vger.kernel.org
 -W:    http://www.lesswatts.org/projects/acpi/
 +W:    https://01.org/linux-acpi
  S:    Supported
  F:    drivers/acpi/*thermal*
  
  ACPI VIDEO DRIVER
  M:    Zhang Rui <rui.zhang@intel.com>
  L:    linux-acpi@vger.kernel.org
 -W:    http://www.lesswatts.org/projects/acpi/
 +W:    https://01.org/linux-acpi
  S:    Supported
  F:    drivers/acpi/video.c
  
@@@ -777,6 -763,10 +777,10 @@@ W:       http://maxim.org.za/at91_26.htm
  W:    http://www.linux4sam.org
  S:    Supported
  F:    arch/arm/mach-at91/
+ F:    arch/arm/boot/dts/at91*.dts
+ F:    arch/arm/boot/dts/at91*.dtsi
+ F:    arch/arm/boot/dts/sama*.dts
+ F:    arch/arm/boot/dts/sama*.dtsi
  
  ARM/CALXEDA HIGHBANK ARCHITECTURE
  M:    Rob Herring <rob.herring@calxeda.com>
@@@ -943,7 -933,7 +947,7 @@@ M: Javier Martinez Canillas <javier@dow
  L:    linux-omap@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
- F:    arch/arm/mach-omap2/board-igep0020.c
+ F:    arch/arm/boot/dts/omap3-igep*
  
  ARM/INCOME PXA270 SUPPORT
  M:    Marek Vasut <marek.vasut@gmail.com>
@@@ -1023,6 -1013,7 +1027,7 @@@ ARM/Marvell Armada 370 and Armada XP SO
  M:    Jason Cooper <jason@lakedaemon.net>
  M:    Andrew Lunn <andrew@lunn.ch>
  M:    Gregory Clement <gregory.clement@free-electrons.com>
+ M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-mvebu/
  ARM/Marvell Dove/Kirkwood/MV78xx0/Orion SOC support
  M:    Jason Cooper <jason@lakedaemon.net>
  M:    Andrew Lunn <andrew@lunn.ch>
+ M:    Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-dove/
@@@ -1162,10 -1154,12 +1168,12 @@@ F:   drivers/net/ethernet/i825xx/ether1
  F:    drivers/net/ethernet/seeq/ether3*
  F:    drivers/scsi/arm/
  
- ARM/SHARK MACHINE SUPPORT
- M:    Alexander Schulz <alex@shark-linux.de>
- W:    http://www.shark-linux.de/shark.html
+ ARM/Rockchip SoC support
+ M:    Heiko Stuebner <heiko@sntech.de>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
+ F:    arch/arm/mach-rockchip/
+ F:    drivers/*/*rockchip*
  
  ARM/SAMSUNG ARM ARCHITECTURES
  M:    Ben Dooks <ben-linux@fluff.org>
@@@ -1416,7 -1410,7 +1424,7 @@@ M:      Wolfram Sang <wsa@the-dreams.de
  L:    linux-i2c@vger.kernel.org
  S:    Maintained
  F:    drivers/misc/eeprom/at24.c
 -F:    include/linux/i2c/at24.h
 +F:    include/linux/platform_data/at24.h
  
  ATA OVER ETHERNET (AOE) DRIVER
  M:    "Ed L. Cashin" <ecashin@coraid.com>
@@@ -1672,9 -1666,9 +1680,9 @@@ F:      drivers/video/backlight
  F:    include/linux/backlight.h
  
  BATMAN ADVANCED
 -M:    Marek Lindner <lindner_marek@yahoo.de>
 -M:    Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
 -M:    Antonio Quartulli <ordex@autistici.org>
 +M:    Marek Lindner <mareklindner@neomailbox.ch>
 +M:    Simon Wunderlich <sw@simonwunderlich.de>
 +M:    Antonio Quartulli <antonio@meshcoding.com>
  L:    b.a.t.m.a.n@lists.open-mesh.org
  W:    http://www.open-mesh.org/
  S:    Maintained
@@@ -1805,7 -1799,6 +1813,7 @@@ F:      include/net/bluetooth
  
  BONDING DRIVER
  M:    Jay Vosburgh <fubar@us.ibm.com>
 +M:    Veaceslav Falico <vfalico@redhat.com>
  M:    Andy Gospodarek <andy@greyhouse.net>
  L:    netdev@vger.kernel.org
  W:    http://sourceforge.net/projects/bonding/
@@@ -1872,7 -1865,7 +1880,7 @@@ S:      Supporte
  F:    drivers/net/wireless/brcm80211/
  
  BROADCOM BNX2FC 10 GIGABIT FCOE DRIVER
 -M:    Bhanu Prakash Gollapudi <bprakash@broadcom.com>
 +M:    Eddie Wai <eddie.wai@broadcom.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/bnx2fc/
@@@ -2315,7 -2308,7 +2323,7 @@@ S:      Maintaine
  F:    drivers/net/ethernet/ti/cpmac.c
  
  CPU FREQUENCY DRIVERS
 -M:    Rafael J. Wysocki <rjw@sisk.pl>
 +M:    Rafael J. Wysocki <rjw@rjwysocki.net>
  M:    Viresh Kumar <viresh.kumar@linaro.org>
  L:    cpufreq@vger.kernel.org
  L:    linux-pm@vger.kernel.org
@@@ -2346,7 -2339,7 +2354,7 @@@ S:      Maintaine
  F:      drivers/cpuidle/cpuidle-big_little.c
  
  CPUIDLE DRIVERS
 -M:    Rafael J. Wysocki <rjw@sisk.pl>
 +M:    Rafael J. Wysocki <rjw@rjwysocki.net>
  M:    Daniel Lezcano <daniel.lezcano@linaro.org>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
@@@ -2733,8 -2726,6 +2741,8 @@@ T:      git git://git.linaro.org/people/sumi
  DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
  M:    Vinod Koul <vinod.koul@intel.com>
  M:    Dan Williams <dan.j.williams@intel.com>
 +L:    dmaengine@vger.kernel.org
 +Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
  S:    Supported
  F:    drivers/dma/
  F:    include/linux/dma*
@@@ -2838,10 -2829,8 +2846,10 @@@ M:    Terje Bergström <tbergstrom@nvidia.
  L:    dri-devel@lists.freedesktop.org
  L:    linux-tegra@vger.kernel.org
  T:    git git://anongit.freedesktop.org/tegra/linux.git
- S:    Maintained
+ S:    Supported
 +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
  
@@@ -3572,7 -3561,7 +3580,7 @@@ F:      fs/freevxfs
  
  FREEZER
  M:    Pavel Machek <pavel@ucw.cz>
 -M:    "Rafael J. Wysocki" <rjw@sisk.pl>
 +M:    "Rafael J. Wysocki" <rjw@rjwysocki.net>
  L:    linux-pm@vger.kernel.org
  S:    Supported
  F:    Documentation/power/freezing-of-tasks.txt
@@@ -3643,12 -3632,6 +3651,12 @@@ L:    linux-scsi@vger.kernel.or
  S:    Odd Fixes (e.g., new signatures)
  F:    drivers/scsi/fdomain.*
  
 +GCOV BASED KERNEL PROFILING
 +M:    Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
 +S:    Maintained
 +F:    kernel/gcov/
 +F:    Documentation/gcov.txt
 +
  GDT SCSI DISK ARRAY CONTROLLER DRIVER
  M:    Achim Leubner <achim_leubner@adaptec.com>
  L:    linux-scsi@vger.kernel.org
@@@ -3698,14 -3681,6 +3706,14 @@@ S:    Maintaine
  F:    include/asm-generic/
  F:    include/uapi/asm-generic/
  
 +GENERIC PHY FRAMEWORK
 +M:    Kishon Vijay Abraham I <kishon@ti.com>
 +L:    linux-kernel@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy.git
 +S:    Supported
 +F:    drivers/phy/
 +F:    include/linux/phy/
 +
  GENERIC UIO DRIVER FOR PCI DEVICES
  M:    "Michael S. Tsirkin" <mst@redhat.com>
  L:    kvm@vger.kernel.org
@@@ -3922,7 -3897,7 +3930,7 @@@ F:      drivers/video/hgafb.
  
  HIBERNATION (aka Software Suspend, aka swsusp)
  M:    Pavel Machek <pavel@ucw.cz>
 -M:    "Rafael J. Wysocki" <rjw@sisk.pl>
 +M:    "Rafael J. Wysocki" <rjw@rjwysocki.net>
  L:    linux-pm@vger.kernel.org
  S:    Supported
  F:    arch/x86/power/
@@@ -4247,7 -4222,7 +4255,7 @@@ S:      Maintaine
  F:    drivers/media/rc/iguanair.c
  
  IIO SUBSYSTEM AND DRIVERS
 -M:    Jonathan Cameron <jic23@cam.ac.uk>
 +M:    Jonathan Cameron <jic23@kernel.org>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
  F:    drivers/iio/
@@@ -4372,7 -4347,7 +4380,7 @@@ F:      drivers/video/i810
  INTEL MENLOW THERMAL DRIVER
  M:    Sujith Thomas <sujith.thomas@intel.com>
  L:    platform-driver-x86@vger.kernel.org
 -W:    http://www.lesswatts.org/projects/acpi/
 +W:    https://01.org/linux-acpi
  S:    Supported
  F:    drivers/platform/x86/intel_menlow.c
  
@@@ -4384,10 -4359,7 +4392,10 @@@ F:    arch/x86/kernel/microcode_intel.
  
  INTEL I/OAT DMA DRIVER
  M:    Dan Williams <dan.j.williams@intel.com>
 -S:    Maintained
 +M:    Dave Jiang <dave.jiang@intel.com>
 +L:    dmaengine@vger.kernel.org
 +Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
 +S:    Supported
  F:    drivers/dma/ioat*
  
  INTEL IOMMU (VT-d)
@@@ -4446,12 -4418,6 +4454,12 @@@ F:    Documentation/networking/ixgbevf.tx
  F:    Documentation/networking/i40e.txt
  F:    drivers/net/ethernet/intel/
  
 +INTEL-MID GPIO DRIVER
 +M:    David Cohen <david.a.cohen@linux.intel.com>
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/gpio/gpio-intel-mid.c
 +
  INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
  M:    Stanislav Yakovlev <stas.yakovlev@gmail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -4790,13 -4756,6 +4798,13 @@@ S:    Maintaine
  F:    Documentation/hwmon/k8temp
  F:    drivers/hwmon/k8temp.c
  
 +KTAP
 +M:    Jovi Zhangwei <jovi.zhangwei@gmail.com>
 +W:    http://www.ktap.org
 +L:    ktap@freelists.org
 +S:    Maintained
 +F:    drivers/staging/ktap/
 +
  KCONFIG
  M:    Michal Marek <mmarek@suse.cz>
  L:    linux-kbuild@vger.kernel.org
@@@ -6421,12 -6380,6 +6429,12 @@@ S:    Supporte
  F:    Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
  F:    drivers/pci/host/pci-tegra.c
  
 +PCI DRIVER FOR SAMSUNG EXYNOS
 +M:    Jingoo Han <jg1.han@samsung.com>
 +L:    linux-pci@vger.kernel.org
 +S:    Maintained
 +F:    drivers/pci/host/pci-exynos.c
 +
  PCMCIA SUBSYSTEM
  P:    Linux PCMCIA Team
  L:    linux-pcmcia@lists.infradead.org
@@@ -6897,14 -6850,6 +6905,14 @@@ L:    linux-hexagon@vger.kernel.or
  S:    Supported
  F:    arch/hexagon/
  
 +QUALCOMM WCN36XX WIRELESS DRIVER
 +M:    Eugene Krasnikov <k.eugene.e@gmail.com>
 +L:    wcn36xx@lists.infradead.org
 +W:    http://wireless.kernel.org/en/users/Drivers/wcn36xx
 +T:    git git://github.com/KrasnikovEugene/wcn36xx.git
 +S:    Supported
 +F:    drivers/net/wireless/ath/wcn36xx/
 +
  QUICKCAM PARALLEL PORT WEBCAMS
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -6992,7 -6937,7 +7000,7 @@@ M:      "Paul E. McKenney" <paulmck@linux.vn
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
  F:    Documentation/RCU/torture.txt
 -F:    kernel/rcutorture.c
 +F:    kernel/rcu/torture.c
  
  RDC R-321X SoC
  M:    Florian Fainelli <florian@openwrt.org>
@@@ -7019,9 -6964,8 +7027,9 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/RCU/
  X:    Documentation/RCU/torture.txt
  F:    include/linux/rcu*
 -F:    kernel/rcu*
 -X:    kernel/rcutorture.c
 +X:    include/linux/srcu.h
 +F:    kernel/rcu/
 +X:    kernel/rcu/torture.c
  
  REAL TIME CLOCK (RTC) SUBSYSTEM
  M:    Alessandro Zummo <a.zummo@towertech.it>
@@@ -7346,8 -7290,6 +7354,8 @@@ S:      Maintaine
  F:    kernel/sched/
  F:    include/linux/sched.h
  F:    include/uapi/linux/sched.h
 +F:    kernel/wait.c
 +F:    include/linux/wait.h
  
  SCORE ARCHITECTURE
  M:    Chen Liqin <liqin.linux@gmail.com>
@@@ -7482,10 -7424,9 +7490,10 @@@ SELINUX SECURITY MODUL
  M:    Stephen Smalley <sds@tycho.nsa.gov>
  M:    James Morris <james.l.morris@oracle.com>
  M:    Eric Paris <eparis@parisplace.org>
 +M:    Paul Moore <paul@paul-moore.com>
  L:    selinux@tycho.nsa.gov (subscribers-only, general discussion)
  W:    http://selinuxproject.org
 -T:    git git://git.infradead.org/users/eparis/selinux.git
 +T:    git git://git.infradead.org/users/pcmoore/selinux
  S:    Supported
  F:    include/linux/selinux*
  F:    security/selinux/
@@@ -7711,8 -7652,8 +7719,8 @@@ M:      "Paul E. McKenney" <paulmck@linux.vn
  W:    http://www.rdrop.com/users/paulmck/RCU/
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 -F:    include/linux/srcu*
 -F:    kernel/srcu*
 +F:    include/linux/srcu.h
 +F:    kernel/rcu/srcu.c
  
  SMACK SECURITY MODULE
  M:    Casey Schaufler <casey@schaufler-ca.com>
@@@ -7883,13 -7824,6 +7891,13 @@@ F:    Documentation/sound/alsa/soc
  F:    sound/soc/
  F:    include/sound/soc*
  
 +SOUND - DMAENGINE HELPERS
 +M:    Lars-Peter Clausen <lars@metafoo.de>
 +S:    Supported
 +F:    include/sound/dmaengine_pcm.h
 +F:    sound/core/pcm_dmaengine.c
 +F:    sound/soc/soc-generic-dmaengine-pcm.c
 +
  SPARC + UltraSPARC (sparc/sparc64)
  M:    "David S. Miller" <davem@davemloft.net>
  L:    sparclinux@vger.kernel.org
@@@ -8047,7 -7981,7 +8055,7 @@@ S:      Maintaine
  F:    drivers/staging/media/go7007/
  
  STAGING - INDUSTRIAL IO
 -M:    Jonathan Cameron <jic23@cam.ac.uk>
 +M:    Jonathan Cameron <jic23@kernel.org>
  L:    linux-iio@vger.kernel.org
  S:    Odd Fixes
  F:    drivers/staging/iio/
@@@ -8169,7 -8103,7 +8177,7 @@@ F:      drivers/sh
  SUSPEND TO RAM
  M:    Len Brown <len.brown@intel.com>
  M:    Pavel Machek <pavel@ucw.cz>
 -M:    "Rafael J. Wysocki" <rjw@sisk.pl>
 +M:    "Rafael J. Wysocki" <rjw@rjwysocki.net>
  L:    linux-pm@vger.kernel.org
  S:    Supported
  F:    Documentation/power/
@@@ -8362,14 -8296,72 +8370,72 @@@ L:   linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/rc/ttusbir.c
  
- TEGRA SUPPORT
+ TEGRA ARCHITECTURE SUPPORT
  M:    Stephen Warren <swarren@wwwdotorg.org>
+ M:    Thierry Reding <thierry.reding@gmail.com>
  L:    linux-tegra@vger.kernel.org
  Q:    http://patchwork.ozlabs.org/project/linux-tegra/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git
  S:    Supported
  N:    [^a-z]tegra
  
+ TEGRA ASOC DRIVER
+ M:    Stephen Warren <swarren@wwwdotorg.org>
+ S:    Supported
+ F:    sound/soc/tegra/
+ TEGRA CLOCK DRIVER
+ M:    Peter De Schrijver <pdeschrijver@nvidia.com>
+ M:    Prashant Gaikwad <pgaikwad@nvidia.com>
+ S:    Supported
+ F:    drivers/clk/tegra/
+ TEGRA DMA DRIVER
+ M:    Laxman Dewangan <ldewangan@nvidia.com>
+ S:    Supported
+ F:    drivers/dma/tegra20-apb-dma.c
+ TEGRA GPIO DRIVER
+ M:    Stephen Warren <swarren@wwwdotorg.org>
+ S:    Supported
+ F:    drivers/gpio/gpio-tegra.c
+ TEGRA I2C DRIVER
+ M:    Laxman Dewangan <ldewangan@nvidia.com>
+ S:    Supported
+ F:    drivers/i2c/busses/i2c-tegra.c
+ TEGRA IOMMU DRIVERS
+ M:    Hiroshi Doyu <hdoyu@nvidia.com>
+ S:    Supported
+ F:    drivers/iommu/tegra*
+ TEGRA KBC DRIVER
+ M:    Rakesh Iyer <riyer@nvidia.com>
+ M:    Laxman Dewangan <ldewangan@nvidia.com>
+ S:    Supported
+ F:    drivers/input/keyboard/tegra-kbc.c
+ TEGRA PINCTRL DRIVER
+ M:    Stephen Warren <swarren@wwwdotorg.org>
+ S:    Supported
+ F:    drivers/pinctrl/pinctrl-tegra*
+ TEGRA PWM DRIVER
+ M:    Thierry Reding <thierry.reding@gmail.com>
+ S:    Supported
+ F:    drivers/pwm/pwm-tegra.c
+ TEGRA SERIAL DRIVER
+ M:    Laxman Dewangan <ldewangan@nvidia.com>
+ S:    Supported
+ F:    drivers/tty/serial/serial-tegra.c
+ TEGRA SPI DRIVER
+ M:    Laxman Dewangan <ldewangan@nvidia.com>
+ S:    Supported
+ F:    drivers/spi/spi-tegra*
  TEHUTI ETHERNET DRIVER
  M:    Andy Gospodarek <andy@greyhouse.net>
  L:    netdev@vger.kernel.org
@@@ -8574,7 -8566,6 +8640,7 @@@ F:      drivers/media/usb/tm6000
  TPM DEVICE DRIVER
  M:    Leonidas Da Silva Barbosa <leosilva@linux.vnet.ibm.com>
  M:    Ashley Lai <ashley@ashleylai.com>
 +M:    Peter Huewe <peterhuewe@gmx.de>
  M:    Rajiv Andrade <mail@srajiv.net>
  W:    http://tpmdd.sourceforge.net
  M:    Marcel Selhorst <tpmdd@selhorst.net>
@@@ -8671,6 -8662,14 +8737,6 @@@ S:     Maintaine
  F:    arch/m68k/*/*_no.*
  F:    arch/m68k/include/asm/*_no.*
  
 -UCLINUX FOR RENESAS H8/300 (H8300)
 -M:    Yoshinori Sato <ysato@users.sourceforge.jp>
 -W:    http://uclinux-h8.sourceforge.jp/
 -S:    Supported
 -F:    arch/h8300/
 -F:    drivers/ide/ide-h8300.c
 -F:    drivers/net/ethernet/8390/ne-h8300.c
 -
  UDF FILESYSTEM
  M:    Jan Kara <jack@suse.cz>
  S:    Maintained
diff --combined arch/arm/Kconfig
index e64b97c8f0fe556681a476752baf8dcd8a7ea456,b2fa1e7587e7fe3bf2e6a336ef0a8990c72d99fd..1a777ddb7348bc2c76f9c5a69d3a003ef46cbed6
@@@ -5,8 -5,6 +5,8 @@@ config AR
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
        select ARCH_HAVE_CUSTOM_GPIO_H
 +      select ARCH_USE_CMPXCHG_LOCKREF
 +      select ARCH_MIGHT_HAVE_PC_PARPORT
        select ARCH_WANT_IPC_PARSE_VERSION
        select BUILDTIME_EXTABLE_SORT if MMU
        select CLONE_BACKWARDS
        select HAVE_MOD_ARCH_SPECIFIC if ARM_UNWIND
        select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
        select HAVE_PERF_EVENTS
 +      select HAVE_PERF_REGS
 +      select HAVE_PERF_USER_STACK_DUMP
        select HAVE_REGS_AND_STACK_ACCESS_API
        select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_UID16
 +      select HAVE_VIRT_CPU_ACCOUNTING_GEN
        select IRQ_FORCED_THREADING
        select KTIME_SCALAR
        select MODULES_USE_ELF_REL
@@@ -322,6 -317,7 +322,7 @@@ config ARCH_INTEGRATO
        select NEED_MACH_MEMORY_H
        select PLAT_VERSATILE
        select SPARSE_IRQ
+       select USE_OF
        select VERSATILE_FPGA_IRQ
        help
          Support for ARM's Integrator platform.
@@@ -363,7 -359,6 +364,6 @@@ config ARCH_AT9
        bool "Atmel AT91"
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
-       select HAVE_CLK
        select IRQ_DOMAIN
        select NEED_MACH_GPIO_H
        select NEED_MACH_IO_H if PCCARD
@@@ -377,7 -372,6 +377,6 @@@ config ARCH_CLPS711
        bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
        select ARCH_REQUIRE_GPIOLIB
        select AUTO_ZRELADDR
-       select CLKDEV_LOOKUP
        select CLKSRC_MMIO
        select COMMON_CLK
        select CPU_ARM720T
@@@ -393,6 -387,7 +392,6 @@@ config ARCH_GEMIN
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_USES_GETTIMEOFFSET
        select CPU_FA526
 -      select NEED_MACH_GPIO_H
        help
          Support for the Cortina Systems Gemini family SoCs
  
@@@ -461,7 -456,7 +460,7 @@@ config ARCH_IOP32
        depends on MMU
        select ARCH_REQUIRE_GPIOLIB
        select CPU_XSCALE
 -      select NEED_MACH_GPIO_H
 +      select GPIO_IOP
        select NEED_RET_TO_USER
        select PCI
        select PLAT_IOP
@@@ -474,7 -469,7 +473,7 @@@ config ARCH_IOP33
        depends on MMU
        select ARCH_REQUIRE_GPIOLIB
        select CPU_XSCALE
 -      select NEED_MACH_GPIO_H
 +      select GPIO_IOP
        select NEED_RET_TO_USER
        select PCI
        select PLAT_IOP
@@@ -563,6 -558,7 +562,6 @@@ config ARCH_MM
        select GPIO_PXA
        select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
 -      select NEED_MACH_GPIO_H
        select PINCTRL
        select PLAT_PXA
        select SPARSE_IRQ
@@@ -625,6 -621,7 +624,6 @@@ config ARCH_PX
        select GPIO_PXA
        select HAVE_IDE
        select MULTI_IRQ_HANDLER
 -      select NEED_MACH_GPIO_H
        select PLAT_PXA
        select SPARSE_IRQ
        help
  config ARCH_MSM
        bool "Qualcomm MSM"
        select ARCH_REQUIRE_GPIOLIB
-       select CLKDEV_LOOKUP
        select CLKSRC_OF if OF
        select COMMON_CLK
        select GENERIC_CLOCKEVENTS
@@@ -651,7 -647,6 +649,6 @@@ config ARCH_SHMOBIL
        select GENERIC_CLOCKEVENTS
        select HAVE_ARM_SCU if SMP
        select HAVE_ARM_TWD if SMP
-       select HAVE_CLK
        select HAVE_MACH_CLKDEV
        select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
@@@ -694,6 -689,7 +691,6 @@@ config ARCH_SA110
        select GENERIC_CLOCKEVENTS
        select HAVE_IDE
        select ISA
 -      select NEED_MACH_GPIO_H
        select NEED_MACH_MEMORY_H
        select SPARSE_IRQ
        help
@@@ -707,7 -703,6 +704,6 @@@ config ARCH_S3C24X
        select CLKSRC_SAMSUNG_PWM
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
-       select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
@@@ -728,10 -723,10 +724,10 @@@ config ARCH_S3C64X
        select ARM_VIC
        select CLKDEV_LOOKUP
        select CLKSRC_SAMSUNG_PWM
+       select COMMON_CLK
        select CPU_V6
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
-       select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_TCM
        select S3C_DEV_NAND
        select S3C_GPIO_TRACK
        select SAMSUNG_ATAGS
-       select SAMSUNG_CLKSRC
        select SAMSUNG_GPIOLIB_4BIT
        select SAMSUNG_WDT_RESET
        select USB_ARCH_HAS_OHCI
@@@ -755,7 -749,6 +750,6 @@@ config ARCH_S5P64X
        select CPU_V6
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
-       select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
@@@ -774,7 -767,6 +768,6 @@@ config ARCH_S5PC10
        select CPU_V7
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
-       select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
@@@ -794,7 -786,6 +787,6 @@@ config ARCH_S5PV21
        select CPU_V7
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
-       select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
@@@ -811,11 -802,9 +803,9 @@@ config ARCH_EXYNO
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_SPARSEMEM_ENABLE
        select ARM_GIC
-       select CLKDEV_LOOKUP
        select COMMON_CLK
        select CPU_V7
        select GENERIC_CLOCKEVENTS
-       select HAVE_CLK
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
        help
          Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
  
- config ARCH_SHARK
-       bool "Shark"
-       select ARCH_USES_GETTIMEOFFSET
-       select CPU_SA110
-       select ISA
-       select ISA_DMA
-       select NEED_MACH_MEMORY_H
-       select PCI
-       select VIRT_TO_BUS
-       select ZONE_DMA
-       help
-         Support for the StrongARM based Digital DNARD machine, also known
-         as "Shark" (<http://www.shark-linux.de/shark.html>).
  config ARCH_DAVINCI
        bool "TI DaVinci"
        select ARCH_HAS_HOLES_MEMORYMODEL
        select GENERIC_CLOCKEVENTS
        select GENERIC_IRQ_CHIP
        select HAVE_IDE
-       select NEED_MACH_GPIO_H
        select TI_PRIV_EDMA
        select USE_OF
        select ZONE_DMA
@@@ -866,7 -840,6 +841,6 @@@ config ARCH_OMAP
        select CLKSRC_MMIO
        select GENERIC_CLOCKEVENTS
        select GENERIC_IRQ_CHIP
-       select HAVE_CLK
        select HAVE_IDE
        select IRQ_DOMAIN
        select NEED_MACH_IO_H if PCCARD
@@@ -1432,12 -1405,6 +1406,6 @@@ config PCI_NANOENGIN
  config PCI_SYSCALL
        def_bool PCI
  
- # Select the host bridge type
- config PCI_HOST_VIA82C505
-       bool
-       depends on PCI && ARCH_SHARK
-       default y
  config PCI_HOST_ITE8152
        bool
        depends on PCI && MACH_ARMCORE
@@@ -1550,32 -1517,6 +1518,32 @@@ config MCP
          for (multi-)cluster based systems, such as big.LITTLE based
          systems.
  
 +config BIG_LITTLE
 +      bool "big.LITTLE support (Experimental)"
 +      depends on CPU_V7 && SMP
 +      select MCPM
 +      help
 +        This option enables support selections for the big.LITTLE
 +        system architecture.
 +
 +config BL_SWITCHER
 +      bool "big.LITTLE switcher support"
 +      depends on BIG_LITTLE && MCPM && HOTPLUG_CPU
 +      select CPU_PM
 +      select ARM_CPU_SUSPEND
 +      help
 +        The big.LITTLE "switcher" provides the core functionality to
 +        transparently handle transition between a cluster of A15's
 +        and a cluster of A7's in a big.LITTLE system.
 +
 +config BL_SWITCHER_DUMMY_IF
 +      tristate "Simple big.LITTLE switcher user interface"
 +      depends on BL_SWITCHER && DEBUG_KERNEL
 +      help
 +        This is a simple and dummy char dev interface to control
 +        the big.LITTLE switcher core code.  It is meant for
 +        debugging purposes only.
 +
  choice
        prompt "Memory split"
        default VMSPLIT_3G
index d76ae24c97453ff94ee9bc7232ed8283c8dbc01c,7db3c81d1563f398a629603b5ae63c3e805eab11..5b14a4307e1890e8000596d3920738ce16a2fd72
@@@ -30,6 -30,8 +30,8 @@@
                usb1 = &usb1;
                phy0 = &usb0_phy;
                phy1 = &usb1_phy;
+               ethernet0 = &cpsw_emac0;
+               ethernet1 = &cpsw_emac1;
        };
  
        cpus {
                };
        };
  
+       pmu {
+               compatible = "arm,cortex-a8-pmu";
+               interrupts = <3>;
+       };
        /*
         * The soc node represents the soc top level view. It is uses for IPs
         * that are not memory mapped in the MPU view or for the MPU itself.
                        reg = <0x48200000 0x1000>;
                };
  
+               edma: edma@49000000 {
+                       compatible = "ti,edma3";
+                       ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
+                       reg =   <0x49000000 0x10000>,
+                               <0x44e10f90 0x10>;
+                       interrupts = <12 13 14>;
+                       #dma-cells = <1>;
+                       dma-channels = <64>;
+                       ti,edma-regions = <4>;
+                       ti,edma-slots = <256>;
+               };
                gpio0: gpio@44e07000 {
                        compatible = "ti,omap4-gpio";
                        ti,hwmods = "gpio1";
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                        reg = <0x44e07000 0x1000>;
                        interrupts = <96>;
                };
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                        reg = <0x4804c000 0x1000>;
                        interrupts = <98>;
                };
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                        reg = <0x481ac000 0x1000>;
                        interrupts = <32>;
                };
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                        reg = <0x481ae000 0x1000>;
                        interrupts = <62>;
                };
                        status = "disabled";
                };
  
+               mmc1: mmc@48060000 {
+                       compatible = "ti,omap4-hsmmc";
+                       ti,hwmods = "mmc1";
+                       ti,dual-volt;
+                       ti,needs-special-reset;
+                       ti,needs-special-hs-handling;
+                       dmas = <&edma 24
+                               &edma 25>;
+                       dma-names = "tx", "rx";
+                       interrupts = <64>;
+                       interrupt-parent = <&intc>;
+                       reg = <0x48060000 0x1000>;
+                       status = "disabled";
+               };
+               mmc2: mmc@481d8000 {
+                       compatible = "ti,omap4-hsmmc";
+                       ti,hwmods = "mmc2";
+                       ti,needs-special-reset;
+                       dmas = <&edma 2
+                               &edma 3>;
+                       dma-names = "tx", "rx";
+                       interrupts = <28>;
+                       interrupt-parent = <&intc>;
+                       reg = <0x481d8000 0x1000>;
+                       status = "disabled";
+               };
+               mmc3: mmc@47810000 {
+                       compatible = "ti,omap4-hsmmc";
+                       ti,hwmods = "mmc3";
+                       ti,needs-special-reset;
+                       interrupts = <29>;
+                       interrupt-parent = <&intc>;
+                       reg = <0x47810000 0x1000>;
+                       status = "disabled";
+               };
                wdt2: wdt@44e35000 {
                        compatible = "ti,omap3-wdt";
                        ti,hwmods = "wd_timer2";
                        interrupts = <65>;
                        ti,spi-num-cs = <2>;
                        ti,hwmods = "spi0";
+                       dmas = <&edma 16
+                               &edma 17
+                               &edma 18
+                               &edma 19>;
+                       dma-names = "tx0", "rx0", "tx1", "rx1";
                        status = "disabled";
                };
  
                        interrupts = <125>;
                        ti,spi-num-cs = <2>;
                        ti,hwmods = "spi1";
+                       dmas = <&edma 42
+                               &edma 43
+                               &edma 44
+                               &edma 45>;
+                       dma-names = "tx0", "rx0", "tx1", "rx1";
                        status = "disabled";
                };
  
                                /* Filled in by U-Boot */
                                mac-address = [ 00 00 00 00 00 00 ];
                        };
 +
 +                      phy_sel: cpsw-phy-sel@44e10650 {
 +                              compatible = "ti,am3352-cpsw-phy-sel";
 +                              reg= <0x44e10650 0x4>;
 +                              reg-names = "gmii-sel";
 +                      };
                };
  
                ocmcram: ocmcram@40300000 {
                        status = "disabled";
                };
  
+               lcdc: lcdc@4830e000 {
+                       compatible = "ti,am33xx-tilcdc";
+                       reg = <0x4830e000 0x1000>;
+                       interrupt-parent = <&intc>;
+                       interrupts = <36>;
+                       ti,hwmods = "lcdc";
+                       status = "disabled";
+               };
                tscadc: tscadc@44e0d000 {
                        compatible = "ti,am3359-tscadc";
                        reg = <0x44e0d000 0x1000>;
                        #size-cells = <1>;
                        status = "disabled";
                };
+               sham: sham@53100000 {
+                       compatible = "ti,omap4-sham";
+                       ti,hwmods = "sham";
+                       reg = <0x53100000 0x200>;
+                       interrupts = <109>;
+                       dmas = <&edma 36>;
+                       dma-names = "rx";
+               };
+               aes: aes@53500000 {
+                       compatible = "ti,omap4-aes";
+                       ti,hwmods = "aes";
+                       reg = <0x53500000 0xa0>;
+                       interrupts = <103>;
+                       dmas = <&edma 6>,
+                              <&edma 5>;
+                       dma-names = "tx", "rx";
+               };
        };
  };
index ba4dcfc6b7214d5e3d63488edc2e8157f130ac19,2e88095ea67bbb68ecdeeb7d4ab73ff520f627ed..31a632f7effbf239f298ff3619cdacdc5587356e
                };
  
        };
+       /* HS USB Port 2 Power */
+       hsusb2_power: hsusb2_power_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "hsusb2_vbus";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&twl_gpio 18 0>;        /* GPIO LEDA */
+               startup-delay-us = <70000>;
+       };
+       /* HS USB Host PHY on PORT 2 */
+       hsusb2_phy: hsusb2_phy {
+               compatible = "usb-nop-xceiv";
+               reset-gpios = <&gpio5 19 GPIO_ACTIVE_LOW>; /* gpio_147 */
+               vcc-supply = <&hsusb2_power>;
+       };
  };
  
  &omap3_pmx_wkup {
        };
  };
  
+ &omap3_pmx_core {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+                       &hsusbb2_pins
+       >;
+       uart3_pins: pinmux_uart3_pins {
+               pinctrl-single,pins = <
+                       0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
+                       0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
+               >;
+       };
+       hsusbb2_pins: pinmux_hsusbb2_pins {
+               pinctrl-single,pins = <
+                       0x5c0 (PIN_OUTPUT | MUX_MODE3)          /* etk_d10.hsusb2_clk */
+                       0x5c2 (PIN_OUTPUT | MUX_MODE3)          /* etk_d11.hsusb2_stp */
+                       0x5c4 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* etk_d12.hsusb2_dir */
+                       0x5c6 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* etk_d13.hsusb2_nxt */
+                       0x5c8 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* etk_d14.hsusb2_data0 */
+                       0x5cA (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* etk_d15.hsusb2_data1 */
+                       0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* mcspi1_cs3.hsusb2_data2 */
+                       0x1a6 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* mcspi2_clk.hsusb2_data7 */
+                       0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* mcspi2_simo.hsusb2_data4 */
+                       0x1aa (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* mcspi2_somi.hsusb2_data5 */
+                       0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* mcspi2_cs0.hsusb2_data6 */
+                       0x1ae (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* mcspi2_cs1.hsusb2_data3 */
+               >;
+       };
+ };
  &i2c1 {
        clock-frequency = <2600000>;
  
  &usb_otg_hs {
        interface-type = <0>;
        usb-phy = <&usb2_phy>;
 +      phys = <&usb2_phy>;
 +      phy-names = "usb2-phy";
        mode = <3>;
        power = <50>;
  };
  
- &omap3_pmx_core {
-       uart3_pins: pinmux_uart3_pins {
-               pinctrl-single,pins = <
-                       0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
-                       0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
-               >;
-       };
- };
  &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart3_pins>;
        pinctrl-names = "default";
        pinctrl-0 = <&gpio1_pins>;
  };
+ &usbhshost {
+       port2-mode = "ehci-phy";
+ };
+ &usbhsehci {
+       phys = <0 &hsusb2_phy>;
+ };
index ea4054bfdfd4964c57573813de9306f5f538c034,17a3618b190f14e58349fb99a653140e4ab1ca58..513f0c9466dbd3e55e0ceed2d1393217b2e5a57e
@@@ -56,7 -56,7 +56,7 @@@
                cache-level = <2>;
        };
  
-       local-timer@0x48240600 {
+       local-timer@48240600 {
                compatible = "arm,cortex-a9-twd-timer";
                reg = <0x48240600 0x20>;
                interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>;
                        reg = <0x4a100040 0x0196>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       #interrupt-cells = <1>;
+                       interrupt-controller;
                        pinctrl-single,register-width = <16>;
                        pinctrl-single,function-mask = <0x7fff>;
                };
                        reg = <0x4a31e040 0x0038>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       #interrupt-cells = <1>;
+                       interrupt-controller;
                        pinctrl-single,register-width = <16>;
                        pinctrl-single,function-mask = <0x7fff>;
                };
                        usb2_phy: usb2phy@4a0ad080 {
                                compatible = "ti,omap-usb2";
                                reg = <0x4a0ad080 0x58>;
 -                              ctrl-module = <&omap_control_usb>;
 +                              ctrl-module = <&omap_control_usb2phy>;
 +                              #phy-cells = <0>;
                        };
                };
  
                        };
                };
  
 -              omap_control_usb: omap-control-usb@4a002300 {
 -                      compatible = "ti,omap-control-usb";
 -                      reg = <0x4a002300 0x4>,
 -                            <0x4a00233c 0x4>;
 -                      reg-names = "control_dev_conf", "otghs_control";
 -                      ti,type = <1>;
 +              omap_control_usb2phy: control-phy@4a002300 {
 +                      compatible = "ti,control-phy-usb2";
 +                      reg = <0x4a002300 0x4>;
 +                      reg-names = "power";
 +              };
 +
 +              omap_control_usbotg: control-phy@4a00233c {
 +                      compatible = "ti,control-phy-otghs";
 +                      reg = <0x4a00233c 0x4>;
 +                      reg-names = "otghs_control";
                };
  
                usb_otg_hs: usb_otg_hs@4a0ab000 {
                        interrupt-names = "mc", "dma";
                        ti,hwmods = "usb_otg_hs";
                        usb-phy = <&usb2_phy>;
 +                      phys = <&usb2_phy>;
 +                      phy-names = "usb2-phy";
                        multipoint = <1>;
                        num-eps = <16>;
                        ram-bits = <12>;
 -                      ti,has-mailbox;
 +                      ctrl-module = <&omap_control_usbotg>;
                };
+               aes: aes@4b501000 {
+                       compatible = "ti,omap4-aes";
+                       ti,hwmods = "aes";
+                       reg = <0x4b501000 0xa0>;
+                       interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+                       dmas = <&sdma 111>, <&sdma 110>;
+                       dma-names = "tx", "rx";
+               };
+               des: des@480a5000 {
+                       compatible = "ti,omap4-des";
+                       ti,hwmods = "des";
+                       reg = <0x480a5000 0xa0>;
+                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                       dmas = <&sdma 117>, <&sdma 116>;
+                       dma-names = "tx", "rx";
+               };
        };
  };
index c0ec6dce30fe2dd3e18e799fb1ce0f82f8a17c81,6192c458bea123dc75bce6cb433d229c456fdb22..6d0a1d5f3da73c3e13695de15c603ec8e4811d69
                        ti,hwmods = "wd_timer2";
                };
  
-               emif1: emif@0x4c000000 {
+               emif1: emif@4c000000 {
                        compatible      = "ti,emif-4d5";
                        ti,hwmods       = "emif1";
                        phy-type        = <2>; /* DDR PHY type: Intelli PHY */
                        hw-caps-temp-alert;
                };
  
-               emif2: emif@0x4d000000 {
+               emif2: emif@4d000000 {
                        compatible      = "ti,emif-4d5";
                        ti,hwmods       = "emif2";
                        phy-type        = <2>; /* DDR PHY type: Intelli PHY */
                        hw-caps-temp-alert;
                };
  
 -              omap_control_usb: omap-control-usb@4a002300 {
 -                      compatible = "ti,omap-control-usb";
 -                      reg = <0x4a002300 0x4>,
 -                            <0x4a002370 0x4>;
 -                      reg-names = "control_dev_conf", "phy_power_usb";
 -                      ti,type = <2>;
 +              omap_control_usb2phy: control-phy@4a002300 {
 +                      compatible = "ti,control-phy-usb2";
 +                      reg = <0x4a002300 0x4>;
 +                      reg-names = "power";
 +              };
 +
 +              omap_control_usb3phy: control-phy@4a002370 {
 +                      compatible = "ti,control-phy-pipe3";
 +                      reg = <0x4a002370 0x4>;
 +                      reg-names = "power";
                };
  
-               omap_dwc3@4a020000 {
+               usb3: omap_dwc3@4a020000 {
                        compatible = "ti,dwc3";
                        ti,hwmods = "usb_otg_ss";
                        reg = <0x4a020000 0x10000>;
                        usb2_phy: usb2phy@4a084000 {
                                compatible = "ti,omap-usb2";
                                reg = <0x4a084000 0x7c>;
 -                              ctrl-module = <&omap_control_usb>;
 +                              ctrl-module = <&omap_control_usb2phy>;
                        };
  
                        usb3_phy: usb3phy@4a084400 {
                                      <0x4a084800 0x64>,
                                      <0x4a084c00 0x40>;
                                reg-names = "phy_rx", "phy_tx", "pll_ctrl";
 -                              ctrl-module = <&omap_control_usb>;
 +                              ctrl-module = <&omap_control_usb3phy>;
                        };
                };
  
diff --combined arch/arm/common/Makefile
index 5c8584c4944d780f90bcedb40b8224fb60fa364f,eaa9cf4705a7179dcb7221aa5f2a29a6c1883b78..4bdc41622c36686df868e2134d6453fe60684b5b
@@@ -6,7 -6,6 +6,6 @@@ obj-y                            += firmware.
  
  obj-$(CONFIG_ICST)            += icst.o
  obj-$(CONFIG_SA1111)          += sa1111.o
- obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o
  obj-$(CONFIG_DMABOUNCE)               += dmabounce.o
  obj-$(CONFIG_SHARP_LOCOMO)    += locomo.o
  obj-$(CONFIG_SHARP_PARAM)     += sharpsl_param.o
@@@ -17,5 -16,3 +16,5 @@@ obj-$(CONFIG_MCPM)            += mcpm_head.o mcpm
  AFLAGS_mcpm_head.o            := -march=armv7-a
  AFLAGS_vlock.o                        := -march=armv7-a
  obj-$(CONFIG_TI_PRIV_EDMA)    += edma.o
 +obj-$(CONFIG_BL_SWITCHER)     += bL_switcher.o
 +obj-$(CONFIG_BL_SWITCHER_DUMMY_IF) += bL_switcher_dummy_if.o
index 66b5b3cb53768630812e0ef61429644ecdb7373e,40f15f133c55c3646d5eeac3ef3eec7764cae760..d1f45af7a530e9abc33d794fcc6cf52010cfc52b
  #include <linux/platform_device.h>
  #include <linux/i2c.h>
  #include <linux/i2c/pcf857x.h>
 -#include <linux/i2c/at24.h>
 +#include <linux/platform_data/at24.h>
  #include <linux/mtd/mtd.h>
  #include <linux/mtd/partitions.h>
  #include <linux/spi/spi.h>
  #include <linux/spi/flash.h>
+ #include <linux/platform_data/gpio-davinci.h>
+ #include <linux/platform_data/mtd-davinci.h>
+ #include <linux/platform_data/mtd-davinci-aemif.h>
+ #include <linux/platform_data/spi-davinci.h>
+ #include <linux/platform_data/usb-davinci.h>
  
  #include <asm/mach-types.h>
  #include <asm/mach/arch.h>
  
+ #include <mach/common.h>
  #include <mach/cp_intc.h>
  #include <mach/mux.h>
- #include <linux/platform_data/mtd-davinci.h>
  #include <mach/da8xx.h>
- #include <linux/platform_data/usb-davinci.h>
- #include <linux/platform_data/mtd-davinci-aemif.h>
- #include <linux/platform_data/spi-davinci.h>
  
  #define DA830_EVM_PHY_ID              ""
  /*
@@@ -74,7 -76,7 +76,7 @@@ static int da830_evm_usb_ocic_notify(da
        if (handler != NULL) {
                da830_evm_usb_ocic_handler = handler;
  
-               error = request_irq(irq, da830_evm_usb_ocic_irq, IRQF_DISABLED |
+               error = request_irq(irq, da830_evm_usb_ocic_irq,
                                    IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
                                    "OHCI over-current indicator", NULL);
                if (error)
@@@ -591,6 -593,10 +593,10 @@@ static __init void da830_evm_init(void
        struct davinci_soc_info *soc_info = &davinci_soc_info;
        int ret;
  
+       ret = da830_register_gpio();
+       if (ret)
+               pr_warn("da830_evm_init: GPIO init failed: %d\n", ret);
        ret = da830_register_edma(da830_edma_rsv);
        if (ret)
                pr_warning("da830_evm_init: edma registration failed: %d\n",
index f25a569b000989120d758245f01929c1cb7ff461,df16cb88a26b643814af5385affb94a7a8220882..e0af0eccde8fbe0d9f54abaeb339ee974db4c2d2
@@@ -18,7 -18,7 +18,7 @@@
  #include <linux/init.h>
  #include <linux/kernel.h>
  #include <linux/i2c.h>
 -#include <linux/i2c/at24.h>
 +#include <linux/platform_data/at24.h>
  #include <linux/platform_data/pca953x.h>
  #include <linux/input.h>
  #include <linux/input/tps6507x-ts.h>
@@@ -28,6 -28,7 +28,7 @@@
  #include <linux/mtd/partitions.h>
  #include <linux/mtd/physmap.h>
  #include <linux/platform_device.h>
+ #include <linux/platform_data/gpio-davinci.h>
  #include <linux/platform_data/mtd-davinci.h>
  #include <linux/platform_data/mtd-davinci-aemif.h>
  #include <linux/platform_data/spi-davinci.h>
@@@ -38,6 -39,7 +39,7 @@@
  #include <linux/spi/flash.h>
  #include <linux/wl12xx.h>
  
+ #include <mach/common.h>
  #include <mach/cp_intc.h>
  #include <mach/da8xx.h>
  #include <mach/mux.h>
@@@ -1437,6 -1439,10 +1439,10 @@@ static __init void da850_evm_init(void
  {
        int ret;
  
+       ret = da850_register_gpio();
+       if (ret)
+               pr_warn("%s: GPIO init failed: %d\n", __func__, ret);
        ret = pmic_tps65070_init();
        if (ret)
                pr_warn("%s: TPS65070 PMIC init failed: %d\n", __func__, ret);
index 7f260b77157a3749851350cbca30272efecb0f5d,f4a6c18912ea50abaac233fedf26cef69af06724..e08a8684ead2fed54938bcfeaaac7fe3b5b0efb2
@@@ -18,7 -18,7 +18,7 @@@
  #include <linux/i2c.h>
  #include <linux/io.h>
  #include <linux/clk.h>
 -#include <linux/i2c/at24.h>
 +#include <linux/platform_data/at24.h>
  #include <linux/leds.h>
  #include <linux/mtd/mtd.h>
  #include <linux/mtd/partitions.h>
@@@ -743,6 -743,12 +743,12 @@@ static struct spi_board_info dm365_evm_
  
  static __init void dm365_evm_init(void)
  {
+       int ret;
+       ret = dm365_gpio_register();
+       if (ret)
+               pr_warn("%s: GPIO init failed: %d\n", __func__, ret);
        evm_init_i2c();
        davinci_serial_init(dm365_serial_device);
  
index f21fde9dce007a6dcc249d0e3458572b8b16977c,9cc32c283b8b90af050de90411a9b1d168b3b050..987605b78556f9e8fa16b1e9b1b278ad0abe4d1c
@@@ -15,7 -15,7 +15,7 @@@
  #include <linux/gpio.h>
  #include <linux/i2c.h>
  #include <linux/i2c/pcf857x.h>
 -#include <linux/i2c/at24.h>
 +#include <linux/platform_data/at24.h>
  #include <linux/mtd/mtd.h>
  #include <linux/mtd/nand.h>
  #include <linux/mtd/partitions.h>
@@@ -754,9 -754,14 +754,14 @@@ static int davinci_phy_fixup(struct phy
  
  static __init void davinci_evm_init(void)
  {
+       int ret;
        struct clk *aemif_clk;
        struct davinci_soc_info *soc_info = &davinci_soc_info;
  
+       ret = dm644x_gpio_register();
+       if (ret)
+               pr_warn("%s: GPIO init failed: %d\n", __func__, ret);
        aemif_clk = clk_get(NULL, "aemif");
        clk_prepare_enable(aemif_clk);
  
index db2df32da6a887d4042d810c525b1cf9e59c8753,44b20191a9fed5359ed0b24344e0aeb15430d210..13d0801fd6b170e155dfe3d4cf8c069522c4baf7
@@@ -22,7 -22,7 +22,7 @@@
  #include <linux/gpio.h>
  #include <linux/platform_device.h>
  #include <linux/i2c.h>
 -#include <linux/i2c/at24.h>
 +#include <linux/platform_data/at24.h>
  #include <linux/i2c/pcf857x.h>
  
  #include <media/tvp514x.h>
  #include <linux/mtd/partitions.h>
  #include <linux/clk.h>
  #include <linux/export.h>
+ #include <linux/platform_data/gpio-davinci.h>
+ #include <linux/platform_data/i2c-davinci.h>
+ #include <linux/platform_data/mtd-davinci.h>
+ #include <linux/platform_data/mtd-davinci-aemif.h>
  
  #include <asm/mach-types.h>
  #include <asm/mach/arch.h>
  
  #include <mach/common.h>
+ #include <mach/irqs.h>
  #include <mach/serial.h>
- #include <linux/platform_data/i2c-davinci.h>
- #include <linux/platform_data/mtd-davinci.h>
  #include <mach/clock.h>
  #include <mach/cdce949.h>
- #include <linux/platform_data/mtd-davinci-aemif.h>
  
  #include "davinci.h"
  #include "clock.h"
@@@ -786,8 -788,13 +788,13 @@@ static struct edma_rsv_info dm646x_edma
  
  static __init void evm_init(void)
  {
+       int ret;
        struct davinci_soc_info *soc_info = &davinci_soc_info;
  
+       ret = dm646x_gpio_register();
+       if (ret)
+               pr_warn("%s: GPIO init failed: %d\n", __func__, ret);
        evm_init_i2c();
        davinci_serial_init(dm646x_serial_device);
        dm646x_init_mcasp0(&dm646x_evm_snd_data[0]);
index c17407b16d7c687292fa6e064978d9ca1699ea0a,a4e7ba82881025db51b05045a310f9c761e7dcf3..61d2906ccefb3660b3061bb1782576bd0a3ec78e
  #include <linux/export.h>
  #include <linux/irqdomain.h>
  #include <linux/of_address.h>
- #include <linux/clocksource.h>
- #include <linux/clk-provider.h>
  #include <linux/irqchip/arm-gic.h>
  #include <linux/irqchip/chained_irq.h>
 +#include <linux/platform_device.h>
  
  #include <asm/proc-fns.h>
  #include <asm/exception.h>
@@@ -295,16 -292,6 +293,16 @@@ void exynos5_restart(enum reboot_mode m
        __raw_writel(val, addr);
  }
  
 +static struct platform_device exynos_cpuidle = {
 +      .name           = "exynos_cpuidle",
 +      .id             = -1,
 +};
 +
 +void __init exynos_cpuidle_init(void)
 +{
 +      platform_device_register(&exynos_cpuidle);
 +}
 +
  void __init exynos_init_late(void)
  {
        if (of_machine_is_compatible("samsung,exynos5440"))
@@@ -378,12 -365,6 +376,6 @@@ static void __init exynos5_map_io(void
                iotable_init(exynos5250_iodesc, ARRAY_SIZE(exynos5250_iodesc));
  }
  
- void __init exynos_init_time(void)
- {
-       of_clk_init(NULL);
-       clocksource_of_init();
- }
  struct bus_type exynos_subsys = {
        .name           = "exynos-core",
        .dev_name       = "exynos-core",
index b2ac1885d381d6581717a111a92f6cec25723abe,f0fa2050d08d044288480c1b077cf1110e92cb62..ff9b6a9419b01dfe1f6a0b9e0c42f6bcdaebee18
  #include <linux/of.h>
  
  void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
- void exynos_init_time(void);
  
  struct map_desc;
  void exynos_init_io(void);
  void exynos4_restart(enum reboot_mode mode, const char *cmd);
  void exynos5_restart(enum reboot_mode mode, const char *cmd);
 +void exynos_cpuidle_init(void);
  void exynos_init_late(void);
  
  void exynos_firmware_init(void);
index 53a3dc37a7303b0a5bbdbdc202fbe211e6b0dd9e,6858d73dcf48dcae9a3407f425eb6e37b17ccc7b..7b441c31f516b79cf595528132f1ebd17e7e4e57
@@@ -16,7 -16,6 +16,6 @@@
  #include <linux/of_fdt.h>
  #include <linux/serial_core.h>
  #include <linux/memblock.h>
- #include <linux/clocksource.h>
  
  #include <asm/mach/arch.h>
  #include <plat/mfc.h>
@@@ -25,8 -24,6 +24,8 @@@
  
  static void __init exynos4_dt_machine_init(void)
  {
 +      exynos_cpuidle_init();
 +
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
  }
  
@@@ -56,7 -53,6 +55,6 @@@ DT_MACHINE_START(EXYNOS4210_DT, "Samsun
        .init_early     = exynos_firmware_init,
        .init_machine   = exynos4_dt_machine_init,
        .init_late      = exynos_init_late,
-       .init_time      = exynos_init_time,
        .dt_compat      = exynos4_dt_compat,
        .restart        = exynos4_restart,
        .reserve        = exynos4_reserve,
index c9f7dd1cdc8f9fd0f7a9c75fd4bb625ad42366f7,bac21054cec80062deb805c8ccbb76a324e55905..962b049822500dfcceba6bc79a1f7820885a2364
@@@ -13,7 -13,6 +13,6 @@@
  #include <linux/of_fdt.h>
  #include <linux/memblock.h>
  #include <linux/io.h>
- #include <linux/clocksource.h>
  
  #include <asm/mach/arch.h>
  #include <mach/regs-pmu.h>
@@@ -47,8 -46,6 +46,8 @@@ static void __init exynos5_dt_machine_i
                }
        }
  
 +      exynos_cpuidle_init();
 +
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
  }
  
@@@ -78,7 -75,6 +77,6 @@@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG E
        .map_io         = exynos_init_io,
        .init_machine   = exynos5_dt_machine_init,
        .init_late      = exynos_init_late,
-       .init_time      = exynos_init_time,
        .dt_compat      = exynos5_dt_compat,
        .restart        = exynos5_restart,
        .reserve        = exynos5_reserve,
index e2ca238cf0ea7fef2d22d027eb04550356cbba26,fe98df44579cfa5c22c77ebd53dd9efbee15cf1e..92d2ad25d463fcc8a43411420e4ebb06ba42852c
@@@ -8,11 -8,11 +8,11 @@@ config ARCH_HIGHBAN
        select ARM_AMBA
        select ARM_ERRATA_764369
        select ARM_ERRATA_775420
 -      select ARM_ERRATA_798181
 +      select ARM_ERRATA_798181 if SMP
        select ARM_GIC
+       select ARM_PSCI
        select ARM_TIMER_SP804
        select CACHE_L2X0
-       select CLKDEV_LOOKUP
        select COMMON_CLK
        select CPU_V7
        select GENERIC_CLOCKEVENTS
index 699aabe296e1e62b91f7ca1b0a65c5e635ed8515,3be0fa0e979602580f5cf7639520a61c187cfceb..eae56423f0aeebf0c8ad82a698d6f4684b4238f7
@@@ -11,9 -11,7 +11,7 @@@
   */
  
  #include <linux/clk.h>
- #include <linux/clk-provider.h>
  #include <linux/clkdev.h>
- #include <linux/clocksource.h>
  #include <linux/cpu.h>
  #include <linux/delay.h>
  #include <linux/export.h>
@@@ -25,7 -23,7 +23,7 @@@
  #include <linux/of_address.h>
  #include <linux/of_irq.h>
  #include <linux/of_platform.h>
 -#include <linux/opp.h>
 +#include <linux/pm_opp.h>
  #include <linux/phy.h>
  #include <linux/reboot.h>
  #include <linux/regmap.h>
@@@ -192,6 -190,9 +190,9 @@@ static void __init imx6q_1588_init(void
  
  static void __init imx6q_init_machine(void)
  {
+       imx_print_silicon_rev(cpu_is_imx6dl() ? "i.MX6DL" : "i.MX6Q",
+                             imx6q_revision());
        imx6q_enet_phy_init();
  
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
@@@ -226,7 -227,7 +227,7 @@@ static void __init imx6q_opp_check_1p2g
        val = readl_relaxed(base + OCOTP_CFG3);
        val >>= OCOTP_CFG3_SPEED_SHIFT;
        if ((val & 0x3) != OCOTP_CFG3_SPEED_1P2GHZ)
 -              if (opp_disable(cpu_dev, 1200000000))
 +              if (dev_pm_opp_disable(cpu_dev, 1200000000))
                        pr_warn("failed to disable 1.2 GHz OPP\n");
  
  put_node:
@@@ -293,14 -294,6 +294,6 @@@ static void __init imx6q_init_irq(void
        irqchip_init();
  }
  
- static void __init imx6q_timer_init(void)
- {
-       of_clk_init(NULL);
-       clocksource_of_init();
-       imx_print_silicon_rev(cpu_is_imx6dl() ? "i.MX6DL" : "i.MX6Q",
-                             imx6q_revision());
- }
  static const char *imx6q_dt_compat[] __initdata = {
        "fsl,imx6dl",
        "fsl,imx6q",
@@@ -311,7 -304,6 +304,6 @@@ DT_MACHINE_START(IMX6Q, "Freescale i.MX
        .smp            = smp_ops(imx_smp_ops),
        .map_io         = imx6q_map_io,
        .init_irq       = imx6q_init_irq,
-       .init_time      = imx6q_timer_init,
        .init_machine   = imx6q_init_machine,
        .init_late      = imx6q_init_late,
        .dt_compat      = imx6q_dt_compat,
index 68dc998fa34b9c91298d2617742a55b157f8afcb,5c0d0e12042099876be304992f66bc6934fb7ea4..f093af17f5e6a9de4943fc16d2d4d8116aab1045
@@@ -57,6 -57,8 +57,8 @@@
  #include "common-board-devices.h"
  #include "gpmc.h"
  #include "gpmc-onenand.h"
+ #include "soc.h"
+ #include "omap-secure.h"
  
  #define SYSTEM_REV_B_USES_VAUX3       0x1699
  #define SYSTEM_REV_S_USES_VAUX3 0x8
@@@ -211,11 -213,29 +213,11 @@@ static struct lp55xx_led_config rx51_lp
        }
  };
  
 -static int rx51_lp5523_setup(void)
 -{
 -      return gpio_request_one(RX51_LP5523_CHIP_EN_GPIO, GPIOF_DIR_OUT,
 -                      "lp5523_enable");
 -}
 -
 -static void rx51_lp5523_release(void)
 -{
 -      gpio_free(RX51_LP5523_CHIP_EN_GPIO);
 -}
 -
 -static void rx51_lp5523_enable(bool state)
 -{
 -      gpio_set_value(RX51_LP5523_CHIP_EN_GPIO, !!state);
 -}
 -
  static struct lp55xx_platform_data rx51_lp5523_platform_data = {
        .led_config             = rx51_lp5523_led_config,
        .num_channels           = ARRAY_SIZE(rx51_lp5523_led_config),
        .clock_mode             = LP55XX_CLOCK_AUTO,
 -      .setup_resources        = rx51_lp5523_setup,
 -      .release_resources      = rx51_lp5523_release,
 -      .enable                 = rx51_lp5523_enable,
 +      .enable_gpio            = RX51_LP5523_CHIP_EN_GPIO,
  };
  #endif
  
@@@ -1280,6 -1300,22 +1282,22 @@@ static void __init rx51_init_twl4030_hw
        platform_device_register(&madc_hwmon);
  }
  
+ static struct platform_device omap3_rom_rng_device = {
+       .name           = "omap3-rom-rng",
+       .id             = -1,
+       .dev    = {
+               .platform_data  = rx51_secure_rng_call,
+       },
+ };
+ static void __init rx51_init_omap3_rom_rng(void)
+ {
+       if (omap_type() == OMAP2_DEVICE_TYPE_SEC) {
+               pr_info("RX-51: Registring OMAP3 HWRNG device\n");
+               platform_device_register(&omap3_rom_rng_device);
+       }
+ }
  void __init rx51_peripherals_init(void)
  {
        rx51_i2c_init();
  
        rx51_charger_init();
        rx51_init_twl4030_hwmon();
+       rx51_init_omap3_rom_rng();
  }
  
index f27ca3b89f4c4ccca96c707d5bc179f946e63ef9,1a911df9e4519e4c2f6ca494b5a2b182a14e765b..aca7d16e195dec0fda2989680cc58e73abb50315
@@@ -310,6 -310,10 +310,6 @@@ static struct regulator_consumer_suppl
  
        REGULATOR_SUPPLY("SPKVDDL", "spi0.1"),
        REGULATOR_SUPPLY("SPKVDDR", "spi0.1"),
 -      REGULATOR_SUPPLY("SPKVDDL", "wm5102-codec"),
 -      REGULATOR_SUPPLY("SPKVDDR", "wm5102-codec"),
 -      REGULATOR_SUPPLY("SPKVDDL", "wm5110-codec"),
 -      REGULATOR_SUPPLY("SPKVDDR", "wm5110-codec"),
  
        REGULATOR_SUPPLY("DC1VDD", "0-0034"),
        REGULATOR_SUPPLY("DC2VDD", "0-0034"),
@@@ -649,6 -653,14 +649,6 @@@ static struct regulator_consumer_suppl
        REGULATOR_SUPPLY("DBVDD3", "spi0.1"),
        REGULATOR_SUPPLY("LDOVDD", "spi0.1"),
        REGULATOR_SUPPLY("CPVDD", "spi0.1"),
 -
 -      REGULATOR_SUPPLY("DBVDD2", "wm5102-codec"),
 -      REGULATOR_SUPPLY("DBVDD3", "wm5102-codec"),
 -      REGULATOR_SUPPLY("CPVDD", "wm5102-codec"),
 -
 -      REGULATOR_SUPPLY("DBVDD2", "wm5110-codec"),
 -      REGULATOR_SUPPLY("DBVDD3", "wm5110-codec"),
 -      REGULATOR_SUPPLY("CPVDD", "wm5110-codec"),
  };
  
  static struct regulator_init_data pvdd_1v8 = {
@@@ -731,7 -743,7 +731,7 @@@ static struct s3c2410_platform_i2c i2c1
  static void __init crag6410_map_io(void)
  {
        s3c64xx_init_io(NULL, 0);
-       s3c24xx_init_clocks(12000000);
+       s3c64xx_set_xtal_freq(12000000);
        s3c24xx_init_uarts(crag6410_uartcfgs, ARRAY_SIZE(crag6410_uartcfgs));
        samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4);
  
index f26428d8b62a18828a08cd0ff42bc08f35e5b206,56bb6c35d958b62dd971a4d9e70c435342d92d7d..f8d1276d18afca4fd3960a79af12b4cd425e8cf9
@@@ -3,7 -3,6 +3,6 @@@ config ARCH_TEGR
        select ARCH_HAS_CPUFREQ
        select ARCH_REQUIRE_GPIOLIB
        select ARM_GIC
-       select CLKDEV_LOOKUP
        select CLKSRC_MMIO
        select CLKSRC_OF
        select COMMON_CLK
@@@ -11,7 -10,6 +10,6 @@@
        select GENERIC_CLOCKEVENTS
        select HAVE_ARM_SCU if SMP
        select HAVE_ARM_TWD if SMP
-       select HAVE_CLK
        select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
        select MIGHT_HAVE_PCI
@@@ -53,9 -51,9 +51,9 @@@ config ARCH_TEGRA_3x_SO
  
  config ARCH_TEGRA_114_SOC
        bool "Enable support for Tegra114 family"
-       select HAVE_ARM_ARCH_TIMER
 -      select ARM_ERRATA_798181
 +      select ARM_ERRATA_798181 if SMP
        select ARM_L1_CACHE_SHIFT_6
+       select HAVE_ARM_ARCH_TIMER
        select PINCTRL_TEGRA114
        help
          Support for NVIDIA Tegra T114 processor family, based on the
index 64652b37488627e1a3feea9d7b3224dd7773c7a3,f3b5d0d7b6204b7b9c2bfa9baade08573e59adae..fef1dc8305d3341d9a9f95b1176619495ae0ec1c
@@@ -112,7 -112,7 +112,7 @@@ u32 tegra_read_chipid(void
        return readl_relaxed(IO_ADDRESS(TEGRA_APB_MISC_BASE) + 0x804);
  }
  
- void tegra_init_fuse(void)
+ void __init tegra_init_fuse(void)
  {
        u32 id;
  
                tegra_sku_id, tegra_cpu_process_id,
                tegra_core_process_id);
  }
 -
 -unsigned long long tegra_chip_uid(void)
 -{
 -      unsigned long long lo, hi;
 -
 -      lo = tegra_fuse_readl(FUSE_UID_LOW);
 -      hi = tegra_fuse_readl(FUSE_UID_HIGH);
 -      return (hi << 32ull) | lo;
 -}
 -EXPORT_SYMBOL(tegra_chip_uid);
index 7a3fc1af6944b2cd9175a46f7c1749c83a090220,c67f8ad5ccd5d89eb087fbbf3a4ff75cc5039775..0034d2cd69734e7cad97bf11cbc4976a3b9790c5
@@@ -1,39 -1,35 +1,34 @@@
  config ARCH_U8500
        bool "ST-Ericsson U8500 Series" if ARCH_MULTI_V7
        depends on MMU
+       select AB8500_CORE
+       select ABX500_CORE
        select ARCH_HAS_CPUFREQ
        select ARCH_REQUIRE_GPIOLIB
        select ARM_AMBA
-       select CLKDEV_LOOKUP
+       select ARM_ERRATA_754322
+       select ARM_ERRATA_764369 if SMP
+       select ARM_GIC
+       select CACHE_L2X0
+       select CLKSRC_NOMADIK_MTU
+       select COMMON_CLK
        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 PINCTRL
+       select PINCTRL_ABX500
+       select PINCTRL_NOMADIK
+       select PL310_ERRATA_753970 if CACHE_PL310
        help
          Support for ST-Ericsson's Ux500 architecture
  
  if ARCH_U8500
  
- config UX500_SOC_COMMON
-       bool
-       default y
-       select ABX500_CORE
-       select AB8500_CORE
-       select ARM_ERRATA_754322
-       select ARM_ERRATA_764369 if SMP
-       select ARM_GIC
-       select CACHE_L2X0
-       select CLKSRC_NOMADIK_MTU
-       select COMMON_CLK
-       select PINCTRL
-       select PINCTRL_NOMADIK
-       select PINCTRL_ABX500
-       select PL310_ERRATA_753970 if CACHE_PL310
  config UX500_SOC_DB8500
        bool
 -      select CPU_FREQ_TABLE if CPU_FREQ
        select MFD_DB8500_PRCMU
        select PINCTRL_DB8500
        select PINCTRL_DB8540
diff --combined drivers/block/Kconfig
index f616109a57a66be4ab4f429e8204fa69b06f21d1,e67fa16e19381573215d44d87e9e19a71698d79e..d038b3c072a920956bbd406e0189c35dba0b5b46
@@@ -107,7 -107,7 +107,7 @@@ source "drivers/block/mtip32xx/Kconfig
  
  config BLK_CPQ_DA
        tristate "Compaq SMART2 support"
 -      depends on PCI && VIRT_TO_BUS
 +      depends on PCI && VIRT_TO_BUS && 0
        help
          This is the driver for Compaq Smart Array controllers.  Everyone
          using these boards should say Y here.  See the file
@@@ -316,16 -316,6 +316,16 @@@ config BLK_DEV_NVM
          To compile this driver as a module, choose M here: the
          module will be called nvme.
  
 +config BLK_DEV_SKD
 +      tristate "STEC S1120 Block Driver"
 +      depends on PCI
 +      depends on 64BIT
 +      ---help---
 +      Saying Y or M here will enable support for the
 +      STEC, Inc. S1120 PCIe SSD.
 +
 +      Use device /dev/skd$N amd /dev/skd$Np$M.
 +
  config BLK_DEV_OSD
        tristate "OSD object-as-blkdev support"
        depends on SCSI_OSD_ULD
@@@ -515,7 -505,7 +515,7 @@@ config VIRTIO_BL
  config BLK_DEV_HD
        bool "Very old hard disk (MFM/RLL/IDE) driver"
        depends on HAVE_IDE
-       depends on !ARM || ARCH_RPC || ARCH_SHARK || BROKEN
+       depends on !ARM || ARCH_RPC || BROKEN
        help
          This is a very old hard disk driver that lacks the enhanced
          functionality of the newer ones.
index babf3e40e9fa5030be4420f7038681954ebc5bb8,3d79bca474336b16e0cc7810eafae9a28b65b0aa..7d8ab000d3172eb677f0344932cb151cbb2c6b44
  #include <linux/smp.h>
  #include <linux/init.h>
  #include <linux/io.h>
+ #include <linux/platform_device.h>
+ #include <linux/of.h>
+ #include <linux/of_address.h>
  
- #include <mach/hardware.h>
- #include <mach/platform.h>
  #include <asm/mach-types.h>
  #include <asm/hardware/icst.h>
  
- static struct cpufreq_driver integrator_driver;
+ static void __iomem *cm_base;
+ /* The cpufreq driver only use the OSC register */
+ #define INTEGRATOR_HDR_OSC_OFFSET       0x08
+ #define INTEGRATOR_HDR_LOCK_OFFSET      0x14
  
- #define CM_ID         __io_address(INTEGRATOR_HDR_ID)
- #define CM_OSC        __io_address(INTEGRATOR_HDR_OSC)
- #define CM_STAT __io_address(INTEGRATOR_HDR_STAT)
- #define CM_LOCK __io_address(INTEGRATOR_HDR_LOCK)
+ static struct cpufreq_driver integrator_driver;
  
  static const struct icst_params lclk_params = {
        .ref            = 24000000,
@@@ -59,7 -60,9 +60,7 @@@ static int integrator_verify_policy(str
  {
        struct icst_vco vco;
  
 -      cpufreq_verify_within_limits(policy, 
 -                                   policy->cpuinfo.min_freq, 
 -                                   policy->cpuinfo.max_freq);
 +      cpufreq_verify_within_cpu_limits(policy);
  
        vco = icst_hz_to_vco(&cclk_params, policy->max * 1000);
        policy->max = icst_hz(&cclk_params, vco) / 1000;
        vco = icst_hz_to_vco(&cclk_params, policy->min * 1000);
        policy->min = icst_hz(&cclk_params, vco) / 1000;
  
 -      cpufreq_verify_within_limits(policy, 
 -                                   policy->cpuinfo.min_freq, 
 -                                   policy->cpuinfo.max_freq);
 -
 +      cpufreq_verify_within_cpu_limits(policy);
        return 0;
  }
  
@@@ -95,7 -101,7 +96,7 @@@ static int integrator_set_target(struc
        BUG_ON(cpu != smp_processor_id());
  
        /* get current setting */
-       cm_osc = __raw_readl(CM_OSC);
+       cm_osc = __raw_readl(cm_base + INTEGRATOR_HDR_OSC_OFFSET);
  
        if (machine_is_integrator()) {
                vco.s = (cm_osc >> 8) & 7;
  
        cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
  
-       cm_osc = __raw_readl(CM_OSC);
+       cm_osc = __raw_readl(cm_base + INTEGRATOR_HDR_OSC_OFFSET);
  
        if (machine_is_integrator()) {
                cm_osc &= 0xfffff800;
        }
        cm_osc |= vco.v;
  
-       __raw_writel(0xa05f, CM_LOCK);
-       __raw_writel(cm_osc, CM_OSC);
-       __raw_writel(0, CM_LOCK);
+       __raw_writel(0xa05f, cm_base + INTEGRATOR_HDR_LOCK_OFFSET);
+       __raw_writel(cm_osc, cm_base + INTEGRATOR_HDR_OSC_OFFSET);
+       __raw_writel(0, cm_base + INTEGRATOR_HDR_LOCK_OFFSET);
  
        /*
         * Restore the CPUs allowed mask.
@@@ -160,7 -166,7 +161,7 @@@ static unsigned int integrator_get(unsi
        BUG_ON(cpu != smp_processor_id());
  
        /* detect memory etc. */
-       cm_osc = __raw_readl(CM_OSC);
+       cm_osc = __raw_readl(cm_base + INTEGRATOR_HDR_OSC_OFFSET);
  
        if (machine_is_integrator()) {
                vco.s = (cm_osc >> 8) & 7;
@@@ -181,9 -187,10 +182,9 @@@ static int integrator_cpufreq_init(stru
  {
  
        /* set default policy and cpuinfo */
 -      policy->cpuinfo.max_freq = 160000;
 -      policy->cpuinfo.min_freq = 12000;
 +      policy->max = policy->cpuinfo.max_freq = 160000;
 +      policy->min = policy->cpuinfo.min_freq = 12000;
        policy->cpuinfo.transition_latency = 1000000; /* 1 ms, assumed */
 -      policy->cur = policy->min = policy->max = integrator_get(policy->cpu);
  
        return 0;
  }
@@@ -196,19 -203,43 +197,43 @@@ static struct cpufreq_driver integrator
        .name           = "integrator",
  };
  
- static int __init integrator_cpu_init(void)
+ static int __init integrator_cpufreq_probe(struct platform_device *pdev)
  {
+       struct resource *res;
+       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+         if (!res)
+               return -ENODEV;
+       cm_base = devm_ioremap(&pdev->dev, res->start, resource_size(res));
+       if (!cm_base)
+               return -ENODEV;
        return cpufreq_register_driver(&integrator_driver);
  }
  
- static void __exit integrator_cpu_exit(void)
+ static void __exit integrator_cpufreq_remove(struct platform_device *pdev)
  {
        cpufreq_unregister_driver(&integrator_driver);
  }
  
+ static const struct of_device_id integrator_cpufreq_match[] = {
+       { .compatible = "arm,core-module-integrator"},
+       { },
+ };
+ static struct platform_driver integrator_cpufreq_driver = {
+       .driver = {
+               .name = "integrator-cpufreq",
+               .owner = THIS_MODULE,
+               .of_match_table = integrator_cpufreq_match,
+       },
+       .remove = __exit_p(integrator_cpufreq_remove),
+ };
+ module_platform_driver_probe(integrator_cpufreq_driver,
+                            integrator_cpufreq_probe);
  MODULE_AUTHOR ("Russell M. King");
  MODULE_DESCRIPTION ("cpufreq driver for ARM Integrator CPUs");
  MODULE_LICENSE ("GPL");
- module_init(integrator_cpu_init);
- module_exit(integrator_cpu_exit);
index f23bd75426cdfcac5da246ef6f23adef0a15b0da,d6f57d5d963181e1125c2aba5f938a48a9afa339..d988948a89a069510c32bda5ca79a1a422b8827b
@@@ -2,20 -2,9 +2,20 @@@
  # ARM CPU Idle drivers
  #
  
 +config ARM_BIG_LITTLE_CPUIDLE
 +      bool "Support for ARM big.LITTLE processors"
 +      depends on ARCH_VEXPRESS_TC2_PM
 +      select ARM_CPU_SUSPEND
 +      select CPU_IDLE_MULTIPLE_DRIVERS
 +      help
 +        Select this option to enable CPU idle driver for big.LITTLE based
 +        ARM systems. Driver manages CPUs coordination through MCPM and
 +        define different C-states for little and big cores through the
 +        multiple CPU idle drivers infrastructure.
 +
  config ARM_HIGHBANK_CPUIDLE
        bool "CPU Idle Driver for Calxeda processors"
-       depends on ARCH_HIGHBANK
+       depends on ARM_PSCI
        select ARM_CPU_SUSPEND
        help
          Select this to enable cpuidle on Calxeda processors.
@@@ -38,9 -27,13 +38,9 @@@ config ARM_U8500_CPUIDL
        help
          Select this to enable cpuidle for ST-E u8500 processors
  
 -config CPU_IDLE_BIG_LITTLE
 -      bool "Support for ARM big.LITTLE processors"
 -      depends on ARCH_VEXPRESS_TC2_PM
 -      select ARM_CPU_SUSPEND
 -      select CPU_IDLE_MULTIPLE_DRIVERS
 +config ARM_AT91_CPUIDLE
 +      bool "Cpu Idle Driver for the AT91 processors"
 +      default y
 +      depends on ARCH_AT91
        help
 -        Select this option to enable CPU idle driver for big.LITTLE based
 -        ARM systems. Driver manages CPUs coordination through MCPM and
 -        define different C-states for little and big cores through the
 -        multiple CPU idle drivers infrastructure.
 +        Select this to enable cpuidle for AT91 processors
diff --combined drivers/dma/Kconfig
index fcba96cce6477024ccd6df9cf55beba87fa22949,56fe803adcb14598db268736423b337af3ddf83f..9ec1c5c864dd7dd315b5973d438fb794bef2e6c7
@@@ -195,7 -195,7 +195,7 @@@ config SIRF_DM
  
  config TI_EDMA
        bool "TI EDMA support"
-       depends on ARCH_DAVINCI || ARCH_OMAP
+       depends on ARCH_DAVINCI || ARCH_OMAP || ARCH_KEYSTONE
        select DMA_ENGINE
        select DMA_VIRTUAL_CHANNELS
        select TI_PRIV_EDMA
@@@ -301,7 -301,7 +301,7 @@@ config MMP_PDM
        depends on (ARCH_MMP || ARCH_PXA)
        select DMA_ENGINE
        help
 -        Support the MMP PDMA engine for PXA and MMP platfrom.
 +        Support the MMP PDMA engine for PXA and MMP platform.
  
  config DMA_JZ4740
        tristate "JZ4740 DMA support"
diff --combined drivers/ide/Kconfig
index 5dba90a8a27cbc8445cffbf621971ce5d9c6fb43,3f7f59cc8b5ff36a807a4315eb6469999ea95869..8fb46aab2d87d5bf85ddc2a1b68ca38341bcb058
@@@ -197,8 -197,8 +197,8 @@@ comment "IDE chipset support/bugfixes
  
  config IDE_GENERIC
        tristate "generic/default IDE chipset support"
-       depends on ALPHA || X86 || IA64 || M32R || MIPS || ARCH_RPC || ARCH_SHARK
-       default ARM && (ARCH_RPC || ARCH_SHARK)
+       depends on ALPHA || X86 || IA64 || M32R || MIPS || ARCH_RPC
+       default ARM && ARCH_RPC
        help
          This is the generic IDE driver.  This driver attaches to the
          fixed legacy ports (e.g. on PCs 0x1f0/0x170, 0x1e8/0x168 and
@@@ -722,6 -722,13 +722,6 @@@ config BLK_DEV_IDE_RAPID
          Say Y here if you want to support the Yellowstone RapIDE controller
          manufactured for use with Acorn computers.
  
 -config IDE_H8300
 -      tristate "H8300 IDE support"
 -      depends on H8300
 -      default y
 -      help
 -        Enables the H8300 IDE driver.
 -
  config BLK_DEV_GAYLE
        tristate "Amiga Gayle IDE interface support"
        depends on AMIGA
index 296cb88d70080eaae14c06a5179ffb11cfae107f,1de1e5f8f7956dad40a745a08c7d4026f1370e28..58efc7c3d09cfa081e027140a212befa02b42543
@@@ -21,7 -21,7 +21,7 @@@ if SERI
  config SERIO_I8042
        tristate "i8042 PC Keyboard controller" if EXPERT || !X86
        default y
-       depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \
+       depends on !PARISC && (!ARM || FOOTBRIDGE_HOST) && \
                   (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN && !S390 && \
                   !ARC
        help
@@@ -266,14 -266,4 +266,14 @@@ config SERIO_OLPC_APS
          To compile this driver as a module, choose M here: the module will
          be called olpc_apsp.
  
 +config HYPERV_KEYBOARD
 +      tristate "Microsoft Synthetic Keyboard driver"
 +      depends on HYPERV
 +      default HYPERV
 +      help
 +        Select this option to enable the Hyper-V Keyboard driver.
 +
 +        To compile this driver as a module, choose M here: the module will
 +        be called hyperv_keyboard.
 +
  endif
diff --combined drivers/pci/host/Kconfig
index efa24d9a33615a1268e83212fc3a04844806497f,43186feb4294598b570727e5382263fbffbb1d0d..a4cf9552cf7c52bf1ae3e4bd42370164b07dd4ea
@@@ -3,7 -3,7 +3,7 @@@ menu "PCI host controller drivers
  
  config PCI_MVEBU
        bool "Marvell EBU PCIe controller"
-       depends on ARCH_MVEBU || ARCH_KIRKWOOD
+       depends on ARCH_MVEBU || ARCH_DOVE || ARCH_KIRKWOOD
        depends on OF
  
  config PCIE_DW
@@@ -15,12 -15,6 +15,12 @@@ config PCI_EXYNO
        select PCIEPORTBUS
        select PCIE_DW
  
 +config PCI_IMX6
 +      bool "Freescale i.MX6 PCIe controller"
 +      depends on SOC_IMX6Q
 +      select PCIEPORTBUS
 +      select PCIE_DW
 +
  config PCI_TEGRA
        bool "NVIDIA Tegra PCIe controller"
        depends on ARCH_TEGRA
index be3429e08d909a58b3b2d3fb9923ca592d4eabc4,1adff32e40e2ad9e1f204d8e975103ddbf5f7e98..f90101b9cdb98a7b68053281a39e5b4796e56f60
   * This file is licenced under the GPL.
  */
  
 -#include <linux/platform_device.h>
  #include <linux/clk.h>
 +#include <linux/io.h>
 +#include <linux/kernel.h>
 +#include <linux/module.h>
 +#include <linux/platform_device.h>
  #include <linux/platform_data/usb-ohci-s3c2410.h>
 +#include <linux/usb.h>
 +#include <linux/usb/hcd.h>
 +
 +#include "ohci.h"
 +
  
  #define valid_port(idx) ((idx) == 1 || (idx) == 2)
  
  /* clock device associated with the hcd */
  
 +
 +#define DRIVER_DESC "OHCI S3C2410 driver"
 +
 +static const char hcd_name[] = "ohci-s3c2410";
 +
  static struct clk *clk;
  static struct clk *usb_clk;
  
  /* forward definitions */
  
 +static int (*orig_ohci_hub_control)(struct usb_hcd  *hcd, u16 typeReq,
 +                      u16 wValue, u16 wIndex, char *buf, u16 wLength);
 +static int (*orig_ohci_hub_status_data)(struct usb_hcd *hcd, char *buf);
 +
  static void s3c2410_hcd_oc(struct s3c2410_hcd_info *info, int port_oc);
  
  /* conversion functions */
@@@ -64,10 -47,10 +64,10 @@@ static void s3c2410_start_hc(struct pla
  
        dev_dbg(&dev->dev, "s3c2410_start_hc:\n");
  
-       clk_enable(usb_clk);
+       clk_prepare_enable(usb_clk);
        mdelay(2);                      /* let the bus clock stabilise */
  
-       clk_enable(clk);
+       clk_prepare_enable(clk);
  
        if (info != NULL) {
                info->hcd       = hcd;
@@@ -92,8 -75,8 +92,8 @@@ static void s3c2410_stop_hc(struct plat
                        (info->enable_oc)(info, 0);
        }
  
-       clk_disable(clk);
-       clk_disable(usb_clk);
+       clk_disable_unprepare(clk);
+       clk_disable_unprepare(usb_clk);
  }
  
  /* ohci_s3c2410_hub_status_data
@@@ -110,7 -93,7 +110,7 @@@ ohci_s3c2410_hub_status_data(struct usb
        int orig;
        int portno;
  
 -      orig  = ohci_hub_status_data(hcd, buf);
 +      orig = orig_ohci_hub_status_data(hcd, buf);
  
        if (info == NULL)
                return orig;
@@@ -181,7 -164,7 +181,7 @@@ static int ohci_s3c2410_hub_control
         * process the request straight away and exit */
  
        if (info == NULL) {
 -              ret = ohci_hub_control(hcd, typeReq, wValue,
 +              ret = orig_ohci_hub_control(hcd, typeReq, wValue,
                                       wIndex, buf, wLength);
                goto out;
        }
                break;
        }
  
 -      ret = ohci_hub_control(hcd, typeReq, wValue, wIndex, buf, wLength);
 +      ret = orig_ohci_hub_control(hcd, typeReq, wValue, wIndex, buf, wLength);
        if (ret)
                goto out;
  
@@@ -391,6 -374,8 +391,6 @@@ static int usb_hcd_s3c2410_probe(const 
  
        s3c2410_start_hc(dev, hcd);
  
 -      ohci_hcd_init(hcd_to_ohci(hcd));
 -
        retval = usb_add_hcd(hcd, dev->resource[1].start, 0);
        if (retval != 0)
                goto err_ioremap;
  
  /*-------------------------------------------------------------------------*/
  
 -static int
 -ohci_s3c2410_start(struct usb_hcd *hcd)
 -{
 -      struct ohci_hcd *ohci = hcd_to_ohci(hcd);
 -      int ret;
 -
 -      ret = ohci_init(ohci);
 -      if (ret < 0)
 -              return ret;
 -
 -      ret = ohci_run(ohci);
 -      if (ret < 0) {
 -              dev_err(hcd->self.controller, "can't start %s\n",
 -                      hcd->self.bus_name);
 -              ohci_stop(hcd);
 -              return ret;
 -      }
 -
 -      return 0;
 -}
 -
 -
 -static const struct hc_driver ohci_s3c2410_hc_driver = {
 -      .description =          hcd_name,
 -      .product_desc =         "S3C24XX OHCI",
 -      .hcd_priv_size =        sizeof(struct ohci_hcd),
 -
 -      /*
 -       * generic hardware linkage
 -       */
 -      .irq =                  ohci_irq,
 -      .flags =                HCD_USB11 | HCD_MEMORY,
 -
 -      /*
 -       * basic lifecycle operations
 -       */
 -      .start =                ohci_s3c2410_start,
 -      .stop =                 ohci_stop,
 -      .shutdown =             ohci_shutdown,
 -
 -      /*
 -       * managing i/o requests and associated device resources
 -       */
 -      .urb_enqueue =          ohci_urb_enqueue,
 -      .urb_dequeue =          ohci_urb_dequeue,
 -      .endpoint_disable =     ohci_endpoint_disable,
 -
 -      /*
 -       * scheduling support
 -       */
 -      .get_frame_number =     ohci_get_frame,
 -
 -      /*
 -       * root hub support
 -       */
 -      .hub_status_data =      ohci_s3c2410_hub_status_data,
 -      .hub_control =          ohci_s3c2410_hub_control,
 -#ifdef        CONFIG_PM
 -      .bus_suspend =          ohci_bus_suspend,
 -      .bus_resume =           ohci_bus_resume,
 -#endif
 -      .start_port_reset =     ohci_start_port_reset,
 -};
 -
 -/* device driver */
 +static struct hc_driver __read_mostly ohci_s3c2410_hc_driver;
  
  static int ohci_hcd_s3c2410_drv_probe(struct platform_device *pdev)
  {
@@@ -484,39 -533,4 +484,39 @@@ static struct platform_driver ohci_hcd_
        },
  };
  
 +static int __init ohci_s3c2410_init(void)
 +{
 +      if (usb_disabled())
 +              return -ENODEV;
 +
 +      pr_info("%s: " DRIVER_DESC "\n", hcd_name);
 +      ohci_init_driver(&ohci_s3c2410_hc_driver, NULL);
 +
 +      /*
 +       * The Samsung HW has some unusual quirks, which require
 +       * Sumsung-specific workarounds. We override certain hc_driver
 +       * functions here to achieve that. We explicitly do not enhance
 +       * ohci_driver_overrides to allow this more easily, since this
 +       * is an unusual case, and we don't want to encourage others to
 +       * override these functions by making it too easy.
 +       */
 +
 +      orig_ohci_hub_control = ohci_s3c2410_hc_driver.hub_control;
 +      orig_ohci_hub_status_data = ohci_s3c2410_hc_driver.hub_status_data;
 +
 +      ohci_s3c2410_hc_driver.hub_status_data  = ohci_s3c2410_hub_status_data;
 +      ohci_s3c2410_hc_driver.hub_control      = ohci_s3c2410_hub_control;
 +
 +      return platform_driver_register(&ohci_hcd_s3c2410_driver);
 +}
 +module_init(ohci_s3c2410_init);
 +
 +static void __exit ohci_s3c2410_cleanup(void)
 +{
 +      platform_driver_unregister(&ohci_hcd_s3c2410_driver);
 +}
 +module_exit(ohci_s3c2410_cleanup);
 +
 +MODULE_DESCRIPTION(DRIVER_DESC);
 +MODULE_LICENSE("GPL");
  MODULE_ALIAS("platform:s3c2410-ohci");
diff --combined drivers/usb/musb/ux500.c
index f483d1924c282883b6e679d419885884959c33c9,c844499e44792caaf492f5c310bc2b00245a9445..122446bf166403fc08523eb6ba7161a17b1a8082
@@@ -259,7 -259,7 +259,7 @@@ static int ux500_probe(struct platform_
                goto err1;
        }
  
-       clk = clk_get(&pdev->dev, "usb");
+       clk = clk_get(&pdev->dev, NULL);
        if (IS_ERR(clk)) {
                dev_err(&pdev->dev, "failed to get clock\n");
                ret = PTR_ERR(clk);
@@@ -376,10 -376,17 +376,10 @@@ static int ux500_resume(struct device *
  
        return 0;
  }
 -
 -static const struct dev_pm_ops ux500_pm_ops = {
 -      .suspend        = ux500_suspend,
 -      .resume         = ux500_resume,
 -};
 -
 -#define DEV_PM_OPS    (&ux500_pm_ops)
 -#else
 -#define DEV_PM_OPS    NULL
  #endif
  
 +static SIMPLE_DEV_PM_OPS(ux500_pm_ops, ux500_suspend, ux500_resume);
 +
  static const struct of_device_id ux500_match[] = {
          { .compatible = "stericsson,db8500-musb", },
          {}
@@@ -390,7 -397,7 +390,7 @@@ static struct platform_driver ux500_dri
        .remove         = ux500_remove,
        .driver         = {
                .name   = "musb-ux500",
 -              .pm     = DEV_PM_OPS,
 +              .pm     = &ux500_pm_ops,
                .of_match_table = ux500_match,
        },
  };
index c824b4223b8302f9e98311fa4584d5f7fcf49a4a,1c446bc48b42fdefca1861de934271840901e61c..b0a950f369703ff4ca002aabdecc55f638ea6189
@@@ -1641,67 -1641,6 +1641,6 @@@ static void cyberpro_common_resume(stru
        cyber2000fb_set_par(&cfb->fb);
  }
  
- #ifdef CONFIG_ARCH_SHARK
- #include <mach/framebuffer.h>
- static int cyberpro_vl_probe(void)
- {
-       struct cfb_info *cfb;
-       int err = -ENOMEM;
-       if (!request_mem_region(FB_START, FB_SIZE, "CyberPro2010"))
-               return err;
-       cfb = cyberpro_alloc_fb_info(ID_CYBERPRO_2010, "CyberPro2010");
-       if (!cfb)
-               goto failed_release;
-       cfb->irq = -1;
-       cfb->region = ioremap(FB_START, FB_SIZE);
-       if (!cfb->region)
-               goto failed_ioremap;
-       cfb->regs = cfb->region + MMIO_OFFSET;
-       cfb->fb.device = NULL;
-       cfb->fb.fix.mmio_start = FB_START + MMIO_OFFSET;
-       cfb->fb.fix.smem_start = FB_START;
-       /*
-        * Bring up the hardware.  This is expected to enable access
-        * to the linear memory region, and allow access to the memory
-        * mapped registers.  Also, mem_ctl1 and mem_ctl2 must be
-        * initialised.
-        */
-       cyber2000fb_writeb(0x18, 0x46e8, cfb);
-       cyber2000fb_writeb(0x01, 0x102, cfb);
-       cyber2000fb_writeb(0x08, 0x46e8, cfb);
-       cyber2000fb_writeb(EXT_BIU_MISC, 0x3ce, cfb);
-       cyber2000fb_writeb(EXT_BIU_MISC_LIN_ENABLE, 0x3cf, cfb);
-       cfb->mclk_mult = 0xdb;
-       cfb->mclk_div  = 0x54;
-       err = cyberpro_common_probe(cfb);
-       if (err)
-               goto failed;
-       if (int_cfb_info == NULL)
-               int_cfb_info = cfb;
-       return 0;
- failed:
-       iounmap(cfb->region);
- failed_ioremap:
-       cyberpro_free_fb_info(cfb);
- failed_release:
-       release_mem_region(FB_START, FB_SIZE);
-       return err;
- }
- #endif /* CONFIG_ARCH_SHARK */
  /*
   * PCI specific support.
   */
@@@ -1871,6 -1810,11 +1810,6 @@@ static void cyberpro_pci_remove(struct 
                iounmap(cfb->region);
                cyberpro_free_fb_info(cfb);
  
 -              /*
 -               * Ensure that the driver data is no longer
 -               * valid.
 -               */
 -              pci_set_drvdata(dev, NULL);
                if (cfb == int_cfb_info)
                        int_cfb_info = NULL;
  
@@@ -1943,28 -1887,19 +1882,19 @@@ static int __init cyber2000fb_init(void
        cyber2000fb_setup(option);
  #endif
  
- #ifdef CONFIG_ARCH_SHARK
-       err = cyberpro_vl_probe();
-       if (!err)
-               ret = 0;
- #endif
- #ifdef CONFIG_PCI
        err = pci_register_driver(&cyberpro_driver);
        if (!err)
                ret = 0;
- #endif
  
        return ret ? err : 0;
  }
  module_init(cyber2000fb_init);
  
- #ifndef CONFIG_ARCH_SHARK
  static void __exit cyberpro_exit(void)
  {
        pci_unregister_driver(&cyberpro_driver);
  }
  module_exit(cyberpro_exit);
- #endif
  
  MODULE_AUTHOR("Russell King");
  MODULE_DESCRIPTION("CyberPro 2000, 2010 and 5000 framebuffer driver");