]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'xen-two/linux-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Wed, 3 Oct 2012 05:39:02 +0000 (15:39 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 3 Oct 2012 05:41:16 +0000 (15:41 +1000)
Conflicts:
arch/arm/Kconfig
arch/arm/mach-vexpress/Makefile.boot
drivers/xen/Makefile

1  2 
MAINTAINERS
arch/arm/Kconfig
arch/arm/Makefile
arch/arm/boot/dts/Makefile
arch/arm/mach-vexpress/v2m.c
drivers/net/xen-netfront.c
drivers/pci/xen-pcifront.c
drivers/xen/Makefile
drivers/xen/xen-pciback/pci_stub.c
include/xen/interface/physdev.h

diff --combined MAINTAINERS
index 5c268ef36f64d234ab5182cd0fde15c70fe01c2b,60f9bcd696de69c299de0865837942042e1bd6cb..892782ea1dd59d9ff9525caa9f0a62367bb6bb67
@@@ -595,6 -595,7 +595,6 @@@ M: Will Deacon <will.deacon@arm.com
  S:    Maintained
  F:    arch/arm/kernel/perf_event*
  F:    arch/arm/oprofile/common.c
 -F:    arch/arm/kernel/pmu.c
  F:    arch/arm/include/asm/pmu.h
  F:    arch/arm/kernel/hw_breakpoint.c
  F:    arch/arm/include/asm/hw_breakpoint.h
@@@ -657,6 -658,22 +657,6 @@@ W:        http://www.linux4sam.or
  S:    Supported
  F:    arch/arm/mach-at91/
  
 -ARM/BCMRING ARM ARCHITECTURE
 -M:    Jiandong Zheng <jdzheng@broadcom.com>
 -M:    Scott Branden <sbranden@broadcom.com>
 -L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Maintained
 -F:    arch/arm/mach-bcmring
 -
 -ARM/BCMRING MTD NAND DRIVER
 -M:    Jiandong Zheng <jdzheng@broadcom.com>
 -M:    Scott Branden <sbranden@broadcom.com>
 -L:    linux-mtd@lists.infradead.org
 -S:    Maintained
 -F:    drivers/mtd/nand/bcm_umi_nand.c
 -F:    drivers/mtd/nand/bcm_umi_bch.c
 -F:    drivers/mtd/nand/nand_bcm_umi.h
 -
  ARM/CALXEDA HIGHBANK ARCHITECTURE
  M:    Rob Herring <rob.herring@calxeda.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -896,12 -913,6 +896,12 @@@ W:       http://www.digriz.org.uk/ts78xx/kern
  S:    Maintained
  F:    arch/arm/mach-orion5x/ts78xx-*
  
 +ARM/MICREL KS8695 ARCHITECTURE
 +M:    Greg Ungerer <gerg@uclinux.org>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +F:    arch/arm/mach-ks8695
 +S:    Odd Fixes
 +
  ARM/MIOA701 MACHINE SUPPORT
  M:    Robert Jarzmik <robert.jarzmik@free.fr>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1062,7 -1073,7 +1062,7 @@@ L:      linux-media@vger.kernel.or
  S:    Maintained
  F:    arch/arm/plat-s5p/dev-fimc*
  F:    arch/arm/plat-samsung/include/plat/*fimc*
 -F:    drivers/media/video/s5p-fimc/
 +F:    drivers/media/platform/s5p-fimc/
  
  ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT
  M:    Kyungmin Park <kyungmin.park@samsung.com>
@@@ -1072,7 -1083,7 +1072,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    arch/arm/plat-s5p/dev-mfc.c
 -F:    drivers/media/video/s5p-mfc/
 +F:    drivers/media/platform/s5p-mfc/
  
  ARM/SAMSUNG S5P SERIES TV SUBSYSTEM SUPPORT
  M:    Kyungmin Park <kyungmin.park@samsung.com>
@@@ -1080,7 -1091,7 +1080,7 @@@ M:      Tomasz Stanislawski <t.stanislaws@sa
  L:    linux-arm-kernel@lists.infradead.org
  L:    linux-media@vger.kernel.org
  S:    Maintained
 -F:    drivers/media/video/s5p-tv/
 +F:    drivers/media/platform/s5p-tv/
  
  ARM/SHMOBILE ARM ARCHITECTURE
  M:    Paul Mundt <lethal@linux-sh.org>
@@@ -1198,12 -1209,6 +1198,12 @@@ S:    Maintaine
  F:    arch/arm/mach-pxa/z2.c
  F:    arch/arm/mach-pxa/include/mach/z2.h
  
 +ARM64 PORT (AARCH64 ARCHITECTURE)
 +M:    Catalin Marinas <catalin.marinas@arm.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm64/
 +
  ASC7621 HARDWARE MONITOR DRIVER
  M:    George Joseph <george.joseph@fairview5.com>
  L:    lm-sensors@lm-sensors.org
@@@ -1352,7 -1357,7 +1352,7 @@@ ATMEL ISI DRIVE
  M:    Josh Wu <josh.wu@atmel.com>
  L:    linux-media@vger.kernel.org
  S:    Supported
 -F:    drivers/media/video/atmel-isi.c
 +F:    drivers/media/platform/atmel-isi.c
  F:    include/media/atmel-isi.h
  
  ATMEL LCDFB DRIVER
@@@ -1513,7 -1518,7 +1513,7 @@@ S:      Supporte
  F:    drivers/rtc/rtc-bfin.c
  
  BLACKFIN SDH DRIVER
 -M:    Cliff Cai <cliff.cai@analog.com>
 +M:    Sonic Zhang <sonic.zhang@analog.com>
  L:    uclinux-dist-devel@blackfin.uclinux.org
  W:    http://blackfin.uclinux.org
  S:    Supported
@@@ -1608,16 -1613,6 +1608,16 @@@ L:    netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bnx2x/
  
 +BROADCOM BCM2835 ARM ARCHICTURE
 +M:    Stephen Warren <swarren@wwwdotorg.org>
 +L:    linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi.git
 +S:    Maintained
 +F:    arch/arm/mach-bcm2835/
 +F:    arch/arm/boot/dts/bcm2835*
 +F:    arch/arm/configs/bcm2835_defconfig
 +F:    drivers/*/*bcm2835*
 +
  BROADCOM TG3 GIGABIT ETHERNET DRIVER
  M:    Matt Carlson <mcarlson@broadcom.com>
  M:    Michael Chan <mchan@broadcom.com>
@@@ -1650,6 -1645,7 +1650,6 @@@ F:      drivers/bcma
  F:    include/linux/bcma/
  
  BROCADE BFA FC SCSI DRIVER
 -M:    Jing Huang <huangj@brocade.com>
  M:    Krishna C Gudipati <kgudipat@brocade.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
@@@ -1699,7 -1695,7 +1699,7 @@@ W:      http://linuxtv.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
  F:    Documentation/video4linux/bttv/
 -F:    drivers/media/video/bt8xx/bttv*
 +F:    drivers/media/pci/bt8xx/bttv*
  
  C-MEDIA CMI8788 DRIVER
  M:    Clemens Ladisch <clemens@ladisch.de>
@@@ -1729,7 -1725,7 +1729,7 @@@ L:      linux-media@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
  F:    Documentation/video4linux/cafe_ccic
 -F:    drivers/media/video/marvell-ccic/
 +F:    drivers/media/platform/marvell-ccic/
  
  CAIF NETWORK LAYER
  M:    Sjur Braendeland <sjur.brandeland@stericsson.com>
@@@ -2118,7 -2114,7 +2118,7 @@@ W:      http://linuxtv.or
  W:    http://www.ivtvdriver.org/index.php/Cx18
  S:    Maintained
  F:    Documentation/video4linux/cx18.txt
 -F:    drivers/media/video/cx18/
 +F:    drivers/media/pci/cx18/
  
  CXGB3 ETHERNET DRIVER (CXGB3)
  M:    Divy Le Ray <divy@chelsio.com>
@@@ -2382,6 -2378,11 +2382,6 @@@ S:     Maintaine
  F:    Documentation/hwmon/dme1737
  F:    drivers/hwmon/dme1737.c
  
 -DOCBOOK FOR DOCUMENTATION
 -M:    Randy Dunlap <rdunlap@xenotime.net>
 -S:    Maintained
 -F:    scripts/kernel-doc
 -
  DOCKING STATION DRIVER
  M:    Shaohua Li <shaohua.li@intel.com>
  L:    linux-acpi@vger.kernel.org
@@@ -2777,8 -2778,8 +2777,8 @@@ FC0011 TUNER DRIVE
  M:    Michael Buesch <m@bues.ch>
  L:    linux-media@vger.kernel.org
  S:    Maintained
 -F:    drivers/media/common/tuners/fc0011.h
 -F:    drivers/media/common/tuners/fc0011.c
 +F:    drivers/media/tuners/fc0011.h
 +F:    drivers/media/tuners/fc0011.c
  
  FANOTIFY
  M:    Eric Paris <eparis@redhat.com>
@@@ -2858,9 -2859,7 +2858,9 @@@ F:      include/linux/firewire*.
  F:    tools/firewire/
  
  FIRMWARE LOADER (request_firmware)
 -S:    Orphan
 +M:    Ming Lei <ming.lei@canonical.com>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
  F:    Documentation/firmware_class/
  F:    drivers/base/firmware*.c
  F:    include/linux/firmware.h
@@@ -3008,7 -3007,7 +3008,7 @@@ M:      Kyungmin Park <kyungmin.park@samsung
  M:    Heungjun Kim <riverful.kim@samsung.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
 -F:    drivers/media/video/m5mols/
 +F:    drivers/media/i2c/m5mols/
  F:    include/media/m5mols.h
  
  FUJITSU TABLET EXTRAS
@@@ -3125,49 -3124,49 +3125,49 @@@ M:   Frank Zago <frank@zago.net
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
 -F:    drivers/media/video/gspca/finepix.c
 +F:    drivers/media/usb/gspca/finepix.c
  
  GSPCA GL860 SUBDRIVER
  M:    Olivier Lorin <o.lorin@laposte.net>
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
 -F:    drivers/media/video/gspca/gl860/
 +F:    drivers/media/usb/gspca/gl860/
  
  GSPCA M5602 SUBDRIVER
  M:    Erik Andren <erik.andren@gmail.com>
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
 -F:    drivers/media/video/gspca/m5602/
 +F:    drivers/media/usb/gspca/m5602/
  
  GSPCA PAC207 SONIXB SUBDRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
 -F:    drivers/media/video/gspca/pac207.c
 +F:    drivers/media/usb/gspca/pac207.c
  
  GSPCA SN9C20X SUBDRIVER
  M:    Brian Johnson <brijohn@gmail.com>
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
 -F:    drivers/media/video/gspca/sn9c20x.c
 +F:    drivers/media/usb/gspca/sn9c20x.c
  
  GSPCA T613 SUBDRIVER
  M:    Leandro Costantino <lcostantino@gmail.com>
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
 -F:    drivers/media/video/gspca/t613.c
 +F:    drivers/media/usb/gspca/t613.c
  
  GSPCA USB WEBCAM DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
 -F:    drivers/media/video/gspca/
 +F:    drivers/media/usb/gspca/
  
  HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
  M:    Frank Seidel <frank@f-seidel.de>
@@@ -3421,18 -3420,6 +3421,18 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    arch/ia64/
  
 +IBM Power in-Nest Crypto Acceleration
 +M:    Kent Yoder <key@linux.vnet.ibm.com>
 +L:    linux-crypto@vger.kernel.org
 +S:    Supported
 +F:    drivers/crypto/nx/
 +
 +IBM Power 842 compression accelerator
 +M:    Robert Jennings <rcj@linux.vnet.ibm.com>
 +S:    Supported
 +F:    drivers/crypto/nx/nx-842.c
 +F:    include/linux/nx842.h
 +
  IBM Power Linux RAID adapter
  M:    Brian King <brking@us.ibm.com>
  S:    Supported
@@@ -3444,13 -3431,6 +3444,13 @@@ L:    netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/ibm/ibmveth.*
  
 +IBM Power Virtual SCSI/FC Device Drivers
 +M:    Robert Jennings <rcj@linux.vnet.ibm.com>
 +L:    linux-scsi@vger.kernel.org
 +S:    Supported
 +F:    drivers/scsi/ibmvscsi/
 +X:    drivers/scsi/ibmvscsi/ibmvstgt.c
 +
  IBM ServeRAID RAID DRIVER
  P:    Jack Hammer
  M:    Dave Jeffery <ipslinux@adaptec.com>
@@@ -3572,12 -3552,11 +3572,12 @@@ K:   \b(ABS|SYN)_MT
  
  INTEL C600 SERIES SAS CONTROLLER DRIVER
  M:    Intel SCU Linux support <intel-linux-scu@intel.com>
 +M:    Lukasz Dorau <lukasz.dorau@intel.com>
 +M:    Maciej Patelczyk <maciej.patelczyk@intel.com>
  M:    Dave Jiang <dave.jiang@intel.com>
 -M:    Ed Nadolski <edmund.nadolski@intel.com>
  L:    linux-scsi@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/djbw/isci.git
 -S:    Maintained
 +T:    git git://git.code.sf.net/p/intel-sas/isci
 +S:    Supported
  F:    drivers/scsi/isci/
  F:    firmware/isci/
  
@@@ -3687,12 -3666,11 +3687,12 @@@ F:   Documentation/networking/README.ipw2
  F:    drivers/net/wireless/ipw2x00/
  
  INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
 -M:    Joseph Cihula <joseph.cihula@intel.com>
 +M:    Richard L Maliszewski <richard.l.maliszewski@intel.com>
 +M:    Gang Wei <gang.wei@intel.com>
  M:    Shane Wang <shane.wang@intel.com>
  L:    tboot-devel@lists.sourceforge.net
  W:    http://tboot.sourceforge.net
 -T:    Mercurial http://www.bughost.org/repos.hg/tboot.hg
 +T:    hg http://tboot.hg.sourceforge.net:8000/hgroot/tboot/tboot
  S:    Supported
  F:    Documentation/intel_txt.txt
  F:    include/linux/tboot.h
@@@ -3887,7 -3865,7 +3887,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  W:    http://www.ivtvdriver.org
  S:    Maintained
  F:    Documentation/video4linux/*.ivtv
 -F:    drivers/media/video/ivtv/
 +F:    drivers/media/pci/ivtv/
  F:    include/linux/ivtv*
  
  JC42.4 TEMPERATURE SENSOR DRIVER
@@@ -4583,7 -4561,7 +4583,7 @@@ MOTION EYE VAIO PICTUREBOOK CAMERA DRIV
  W:    http://popies.net/meye/
  S:    Orphan
  F:    Documentation/video4linux/meye.txt
 -F:    drivers/media/video/meye.*
 +F:    drivers/media/pci/meye/
  F:    include/linux/meye.h
  
  MOTOROLA IMX MMC/SD HOST CONTROLLER INTERFACE DRIVER
@@@ -4665,14 -4643,6 +4665,14 @@@ L:    alsa-devel@alsa-project.or
  W:    http://www.native-instruments.com
  F:    sound/usb/caiaq/
  
 +NATIVE LINUX KVM TOOL
 +M:    Pekka Enberg <penberg@kernel.org>
 +M:    Sasha Levin <levinsasha928@gmail.com>
 +M:    Asias He <asias.hejun@gmail.com>
 +L:    kvm@vger.kernel.org
 +S:    Maintained
 +F:    tools/kvm/
 +
  NCP FILESYSTEM
  M:    Petr Vandrovec <petr@vandrovec.name>
  S:    Odd Fixes
@@@ -4827,7 -4797,6 +4827,7 @@@ M:      Lauro Ramos Venancio <lauro.venancio
  M:    Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
  M:    Samuel Ortiz <sameo@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
 +L:    linux-nfc@lists.01.org (moderated for non-subscribers)
  S:    Maintained
  F:    net/nfc/
  F:    include/linux/nfc.h
@@@ -4968,10 -4937,8 +4968,10 @@@ S:    Maintaine
  F:    drivers/mmc/host/omap.c
  
  OMAP HS MMC SUPPORT
 +M:    Venkatraman S <svenkatr@ti.com>
 +L:    linux-mmc@vger.kernel.org
  L:    linux-omap@vger.kernel.org
 -S:    Orphan
 +S:    Maintained
  F:    drivers/mmc/host/omap_hsmmc.c
  
  OMAP RANDOM NUMBER GENERATOR SUPPORT
@@@ -4997,7 -4964,7 +4997,7 @@@ OMAP IMAGE SIGNAL PROCESSOR (ISP
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
 -F:    drivers/media/video/omap3isp/*
 +F:    drivers/media/platform/omap3isp/
  
  OMAP USB SUPPORT
  M:    Felipe Balbi <balbi@ti.com>
@@@ -5038,7 -5005,7 +5038,7 @@@ M:      Jonathan Corbet <corbet@lwn.net
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
 -F:    drivers/media/video/ov7670.c
 +F:    drivers/media/i2c/ov7670.c
  
  ONENAND FLASH DRIVER
  M:    Kyungmin Park <kyungmin.park@samsung.com>
@@@ -5072,7 -5039,6 +5072,7 @@@ S:      Maintaine
  F:    Documentation/devicetree
  F:    drivers/of
  F:    include/linux/of*.h
 +F:    scripts/dtc
  K:    of_get_property
  K:    of_match_table
  
@@@ -5354,12 -5320,6 +5354,12 @@@ L:    linux-mtd@lists.infradead.or
  S:    Maintained
  F:    drivers/mtd/devices/phram.c
  
 +PICOLCD HID DRIVER
 +M:    Bruno Prémont <bonbons@linux-vserver.org>
 +L:    linux-input@vger.kernel.org
 +S:    Maintained
 +F:    drivers/hid/hid-picolcd*
 +
  PICOXCELL SUPPORT
  M:    Jamie Iles <jamie@jamieiles.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -5384,7 -5344,7 +5384,7 @@@ S:      Maintaine
  F:    drivers/pinctrl/spear/
  
  PKTCDVD DRIVER
 -M:    Peter Osterlund <petero2@telia.com>
 +M:    Jiri Kosina <jkosina@suse.cz>
  S:    Maintained
  F:    drivers/block/pktcdvd.c
  F:    include/linux/pktcdvd.h
@@@ -5541,18 -5501,6 +5541,18 @@@ L:    cbe-oss-dev@lists.ozlabs.or
  S:    Maintained
  F:    drivers/block/ps3vram.c
  
 +PSTORE FILESYSTEM
 +M:    Anton Vorontsov <cbouatmailru@gmail.com>
 +M:    Colin Cross <ccross@android.com>
 +M:    Kees Cook <keescook@chromium.org>
 +M:    Tony Luck <tony.luck@intel.com>
 +S:    Maintained
 +T:    git git://git.infradead.org/users/cbou/linux-pstore.git
 +F:    fs/pstore/
 +F:    include/linux/pstore*
 +F:    drivers/firmware/efivars.c
 +F:    drivers/acpi/apei/erst.c
 +
  PTP HARDWARE CLOCK SUPPORT
  M:    Richard Cochran <richardcochran@gmail.com>
  S:    Maintained
@@@ -5582,7 -5530,7 +5582,7 @@@ W:      http://www.isely.net/pvrusb2
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
  F:    Documentation/video4linux/README.pvrusb2
 -F:    drivers/media/video/pvrusb2/
 +F:    drivers/media/usb/pvrusb2/
  
  PWM SUBSYSTEM
  M:    Thierry Reding <thierry.reding@avionic-design.de>
@@@ -5595,8 -5543,6 +5595,8 @@@ F:      Documentation/devicetree/bindings/pw
  F:    include/linux/pwm.h
  F:    include/linux/of_pwm.h
  F:    drivers/pwm/
 +F:    drivers/video/backlight/pwm_bl.c
 +F:    include/linux/pwm_backlight.h
  
  PXA2xx/PXA3xx SUPPORT
  M:    Eric Miao <eric.y.miao@gmail.com>
@@@ -5952,9 -5898,9 +5952,9 @@@ L:      linux-media@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  W:    http://www.mihu.de/linux/saa7146
  S:    Maintained
 -F:    drivers/media/common/saa7146*
 -F:    drivers/media/video/*7146*
 -F:    include/media/*7146*
 +F:    drivers/media/common/saa7146/
 +F:    drivers/media/pci/saa7146/
 +F:    include/media/saa7146*
  
  SAMSUNG LAPTOP DRIVER
  M:    Corentin Chary <corentincj@iksaif.net>
@@@ -6015,7 -5961,7 +6015,7 @@@ M:      Huang Shijie <shijie8@gmail.com
  M:    Kang Yong <kangyong@telegent.com>
  M:    Zhang Xiaobing <xbzhang@telegent.com>
  S:    Supported
 -F:    drivers/media/video/tlg2300
 +F:    drivers/media/usb/tlg2300
  
  SC1200 WDT DRIVER
  M:    Zwane Mwaikambo <zwane@arm.linux.org.uk>
@@@ -6403,9 -6349,8 +6403,9 @@@ M:      Guennadi Liakhovetski <g.liakhovetsk
  L:    linux-media@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  S:    Maintained
 -F:    include/media/v4l2*
 -F:    drivers/media/video/v4l2*
 +F:    include/media/soc*
 +F:    drivers/media/i2c/soc_camera/
 +F:    drivers/media/platform/soc_camera/
  
  SOEKRIS NET48XX LED SUPPORT
  M:    Chris Boot <bootc@bootc.net>
@@@ -6448,11 -6393,6 +6448,11 @@@ W:    http://tifmxx.berlios.de
  S:    Maintained
  F:    drivers/memstick/host/tifm_ms.c
  
 +SONY MEMORYSTICK STANDARD SUPPORT
 +M:    Maxim Levitsky <maximlevitsky@gmail.com>
 +S:    Maintained
 +F:    drivers/memstick/core/ms_block.*
 +
  SOUND
  M:    Jaroslav Kysela <perex@perex.cz>
  M:    Takashi Iwai <tiwai@suse.de>
@@@ -6836,14 -6776,14 +6836,14 @@@ F:   drivers/net/team
  F:    include/linux/if_team.h
  
  TEGRA SUPPORT
 -M:    Colin Cross <ccross@android.com>
 -M:    Olof Johansson <olof@lixom.net>
  M:    Stephen Warren <swarren@wwwdotorg.org>
  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
  F:    arch/arm/mach-tegra
 +F:    arch/arm/boot/dts/tegra*
 +F:    arch/arm/configs/tegra_defconfig
  
  TEHUTI ETHERNET DRIVER
  M:    Andy Gospodarek <andy@greyhouse.net>
@@@ -7190,6 -7130,15 +7190,6 @@@ S:     Maintaine
  F:    Documentation/usb/ehci.txt
  F:    drivers/usb/host/ehci*
  
 -USB ET61X[12]51 DRIVER
 -M:    Luca Risolia <luca.risolia@studio.unibo.it>
 -L:    linux-usb@vger.kernel.org
 -L:    linux-media@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
 -W:    http://www.linux-projects.org
 -S:    Maintained
 -F:    drivers/media/video/et61x251/
 -
  USB GADGET/PERIPHERAL SUBSYSTEM
  M:    Felipe Balbi <balbi@ti.com>
  L:    linux-usb@vger.kernel.org
@@@ -7359,7 -7308,7 +7359,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  W:    http://www.linux-projects.org
  S:    Maintained
  F:    Documentation/video4linux/sn9c102.txt
 -F:    drivers/media/video/sn9c102/
 +F:    drivers/media/usb/sn9c102/
  
  USB SUBSYSTEM
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
@@@ -7394,7 -7343,17 +7394,7 @@@ L:     linux-media@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
  W:    http://www.ideasonboard.org/uvc/
  S:    Maintained
 -F:    drivers/media/video/uvc/
 -
 -USB W996[87]CF DRIVER
 -M:    Luca Risolia <luca.risolia@studio.unibo.it>
 -L:    linux-usb@vger.kernel.org
 -L:    linux-media@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git
 -W:    http://www.linux-projects.org
 -S:    Maintained
 -F:    Documentation/video4linux/w9968cf.txt
 -F:    drivers/media/video/w996*
 +F:    drivers/media/usb/uvc/
  
  USB WIRELESS RNDIS DRIVER (rndis_wlan)
  M:    Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
@@@ -7423,7 -7382,7 +7423,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  W:    http://royale.zerezo.com/zr364xx/
  S:    Maintained
  F:    Documentation/video4linux/zr364xx.txt
 -F:    drivers/media/video/zr364xx.c
 +F:    drivers/media/usb/zr364xx/
  
  USER-MODE LINUX (UML)
  M:    Jeff Dike <jdike@addtoit.com>
@@@ -7481,7 -7440,7 +7481,7 @@@ M:      Marek Szyprowski <m.szyprowski@samsu
  M:    Kyungmin Park <kyungmin.park@samsung.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
 -F:    drivers/media/video/videobuf2-*
 +F:    drivers/media/v4l2-core/videobuf2-*
  F:    include/media/videobuf2-*
  
  VIRTIO CONSOLE DRIVER
@@@ -7793,6 -7752,13 +7793,13 @@@ F:    drivers/xen
  F:    arch/x86/include/asm/xen/
  F:    include/xen/
  
+ XEN HYPERVISOR ARM
+ M:    Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+ L:    xen-devel@lists.xensource.com (moderated for non-subscribers)
+ S:    Supported
+ F:    arch/arm/xen/
+ F:    arch/arm/include/asm/xen/
  XEN NETWORK BACKEND DRIVER
  M:    Ian Campbell <ian.campbell@citrix.com>
  L:    xen-devel@lists.xensource.com (moderated for non-subscribers)
@@@ -7883,7 -7849,7 +7890,7 @@@ L:      linux-media@vger.kernel.or
  W:    http://mjpeg.sourceforge.net/driver-zoran/
  T:    Mercurial http://linuxtv.org/hg/v4l-dvb
  S:    Odd Fixes
 -F:    drivers/media/video/zoran/
 +F:    drivers/media/pci/zoran/
  
  ZS DECSTATION Z85C30 SERIAL DRIVER
  M:    "Maciej W. Rozycki" <macro@linux-mips.org>
diff --combined arch/arm/Kconfig
index d85d2cf9d1518ca1f15df4fb3ff1db83d295d6e7,33614669a9a007714810f644c16d6c9f5ed4f662..644a5b8b45a7c2669bf54325241ce79f5f809018
@@@ -16,7 -16,6 +16,7 @@@ config AR
        select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_TRACEHOOK
 +      select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_KPROBES if !XIP_KERNEL
        select HAVE_KRETPROBES if (HAVE_KPROBES)
        select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
@@@ -50,8 -49,6 +50,8 @@@
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
        select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN
 +      select HAVE_MOD_ARCH_SPECIFIC if ARM_UNWIND
 +      select MODULES_USE_ELF_REL
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@@ -205,13 -202,6 +205,13 @@@ config ARM_PATCH_PHYS_VIR
          this feature (eg, building a kernel for a single machine) and
          you need to shrink the kernel to the minimal size.
  
 +config NEED_MACH_GPIO_H
 +      bool
 +      help
 +        Select this when mach/gpio.h is required to provide special
 +        definitions for this platform. The need for mach/gpio.h should
 +        be avoided when possible.
 +
  config NEED_MACH_IO_H
        bool
        help
@@@ -257,29 -247,39 +257,29 @@@ config MM
  #
  choice
        prompt "ARM system type"
 -      default ARCH_VERSATILE
 +      default ARCH_MULTIPLATFORM
  
 -config ARCH_SOCFPGA
 -      bool "Altera SOCFPGA family"
 -      select ARCH_WANT_OPTIONAL_GPIOLIB
 -      select ARM_AMBA
 -      select ARM_GIC
 -      select CACHE_L2X0
 -      select CLKDEV_LOOKUP
 +config ARCH_MULTIPLATFORM
 +      bool "Allow multiple platforms to be selected"
 +      select ARM_PATCH_PHYS_VIRT
 +      select AUTO_ZRELADDR
        select COMMON_CLK
 -      select CPU_V7
 -      select DW_APB_TIMER
 -      select DW_APB_TIMER_OF
 -      select GENERIC_CLOCKEVENTS
 -      select GPIO_PL061 if GPIOLIB
 -      select HAVE_ARM_SCU
 +      select MULTI_IRQ_HANDLER
        select SPARSE_IRQ
        select USE_OF
 -      help
 -        This enables support for Altera SOCFPGA Cyclone V platform
 +      depends on MMU
  
  config ARCH_INTEGRATOR
        bool "ARM Ltd. Integrator family"
        select ARM_AMBA
        select ARCH_HAS_CPUFREQ
        select COMMON_CLK
 -      select CLK_VERSATILE
 +      select COMMON_CLK_VERSATILE
        select HAVE_TCM
        select ICST
        select GENERIC_CLOCKEVENTS
        select PLAT_VERSATILE
        select PLAT_VERSATILE_FPGA_IRQ
 -      select NEED_MACH_IO_H
        select NEED_MACH_MEMORY_H
        select SPARSE_IRQ
        select MULTI_IRQ_HANDLER
  config ARCH_REALVIEW
        bool "ARM Ltd. RealView family"
        select ARM_AMBA
 -      select CLKDEV_LOOKUP
 -      select HAVE_MACH_CLKDEV
 +      select COMMON_CLK
 +      select COMMON_CLK_VERSATILE
        select ICST
        select GENERIC_CLOCKEVENTS
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select PLAT_VERSATILE
 -      select PLAT_VERSATILE_CLOCK
        select PLAT_VERSATILE_CLCD
        select ARM_TIMER_SP804
        select GPIO_PL061 if GPIOLIB
@@@ -311,6 -312,7 +311,6 @@@ config ARCH_VERSATIL
        select ICST
        select GENERIC_CLOCKEVENTS
        select ARCH_WANT_OPTIONAL_GPIOLIB
 -      select NEED_MACH_IO_H if PCI
        select PLAT_VERSATILE
        select PLAT_VERSATILE_CLOCK
        select PLAT_VERSATILE_CLCD
        help
          This enables support for ARM Ltd Versatile board.
  
 -config ARCH_VEXPRESS
 -      bool "ARM Ltd. Versatile Express family"
 -      select ARCH_WANT_OPTIONAL_GPIOLIB
 -      select ARM_AMBA
 -      select ARM_TIMER_SP804
 -      select CLKDEV_LOOKUP
 -      select COMMON_CLK
 -      select GENERIC_CLOCKEVENTS
 -      select HAVE_CLK
 -      select HAVE_PATA_PLATFORM
 -      select ICST
 -      select NO_IOPORT
 -      select PLAT_VERSATILE
 -      select PLAT_VERSATILE_CLCD
 -      select REGULATOR_FIXED_VOLTAGE if REGULATOR
 -      help
 -        This enables support for the ARM Ltd Versatile Express boards.
 -
  config ARCH_AT91
        bool "Atmel AT91"
        select ARCH_REQUIRE_GPIOLIB
        select HAVE_CLK
        select CLKDEV_LOOKUP
        select IRQ_DOMAIN
 +      select NEED_MACH_GPIO_H
        select NEED_MACH_IO_H if PCCARD
        help
          This enables support for systems based on Atmel
          AT91RM9200 and AT91SAM9* processors.
  
 -config ARCH_BCMRING
 -      bool "Broadcom BCMRING"
 -      depends on MMU
 -      select CPU_V6
 -      select ARM_AMBA
 -      select ARM_TIMER_SP804
 -      select CLKDEV_LOOKUP
 -      select GENERIC_CLOCKEVENTS
 -      select ARCH_WANT_OPTIONAL_GPIOLIB
 -      help
 -        Support for Broadcom's BCMRing platform.
 -
 -config ARCH_HIGHBANK
 -      bool "Calxeda Highbank-based"
 +config ARCH_BCM2835
 +      bool "Broadcom BCM2835 family"
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select ARM_AMBA
 -      select ARM_GIC
 +      select ARM_ERRATA_411920
        select ARM_TIMER_SP804
 -      select CACHE_L2X0
        select CLKDEV_LOOKUP
        select COMMON_CLK
 -      select CPU_V7
 +      select CPU_V6
        select GENERIC_CLOCKEVENTS
 -      select HAVE_ARM_SCU
 -      select HAVE_SMP
 +      select MULTI_IRQ_HANDLER
        select SPARSE_IRQ
        select USE_OF
        help
 -        Support for the Calxeda Highbank SoC based boards.
 +        This enables support for the Broadcom BCM2835 SoC. This SoC is
 +        use in the Raspberry Pi, and Roku 2 devices.
  
  config ARCH_CLPS711X
        bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
        select CPU_ARM720T
        select ARCH_USES_GETTIMEOFFSET
 +      select COMMON_CLK
 +      select CLKDEV_LOOKUP
        select NEED_MACH_MEMORY_H
        help
          Support for Cirrus Logic 711x/721x/731x based boards.
@@@ -377,19 -407,21 +377,19 @@@ config ARCH_GEMIN
        help
          Support for the Cortina Systems Gemini family SoCs
  
 -config ARCH_PRIMA2
 -      bool "CSR SiRFSoC PRIMA2 ARM Cortex A9 Platform"
 -      select CPU_V7
 +config ARCH_SIRF
 +      bool "CSR SiRF"
        select NO_IOPORT
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
 -      select CLKDEV_LOOKUP
 +      select COMMON_CLK
        select GENERIC_IRQ_CHIP
        select MIGHT_HAVE_CACHE_L2X0
        select PINCTRL
        select PINCTRL_SIRF
        select USE_OF
 -      select ZONE_DMA
        help
 -          Support for CSR SiRFSoC ARM Cortex A9 Platform
 +        Support for CSR SiRFprimaII/Marco/Polo platforms
  
  config ARCH_EBSA110
        bool "EBSA-110"
@@@ -424,7 -456,7 +424,7 @@@ config ARCH_FOOTBRIDG
        select FOOTBRIDGE
        select GENERIC_CLOCKEVENTS
        select HAVE_IDE
 -      select NEED_MACH_IO_H
 +      select NEED_MACH_IO_H if !MMU
        select NEED_MACH_MEMORY_H
        help
          Support for systems based on the DC21285 companion chip
@@@ -451,9 -483,7 +451,9 @@@ config ARCH_MX
        select CLKSRC_MMIO
        select COMMON_CLK
        select HAVE_CLK_PREPARE
 +      select MULTI_IRQ_HANDLER
        select PINCTRL
 +      select SPARSE_IRQ
        select USE_OF
        help
          Support for Freescale MXS-based family of processors
@@@ -483,6 -513,7 +483,6 @@@ config ARCH_IOP13X
        select PCI
        select ARCH_SUPPORTS_MSI
        select VMSPLIT_1G
 -      select NEED_MACH_IO_H
        select NEED_MACH_MEMORY_H
        select NEED_RET_TO_USER
        help
@@@ -492,7 -523,6 +492,7 @@@ config ARCH_IOP32
        bool "IOP32x-based"
        depends on MMU
        select CPU_XSCALE
 +      select NEED_MACH_GPIO_H
        select NEED_MACH_IO_H
        select NEED_RET_TO_USER
        select PLAT_IOP
@@@ -506,7 -536,6 +506,7 @@@ config ARCH_IOP33
        bool "IOP33x-based"
        depends on MMU
        select CPU_XSCALE
 +      select NEED_MACH_GPIO_H
        select NEED_MACH_IO_H
        select NEED_RET_TO_USER
        select PLAT_IOP
@@@ -529,12 -558,25 +529,12 @@@ config ARCH_IXP4X
        help
          Support for Intel's IXP4XX (XScale) family of processors.
  
 -config ARCH_MVEBU
 -      bool "Marvell SOCs with Device Tree support"
 -      select GENERIC_CLOCKEVENTS
 -      select MULTI_IRQ_HANDLER
 -      select SPARSE_IRQ
 -      select CLKSRC_MMIO
 -      select GENERIC_IRQ_CHIP
 -      select IRQ_DOMAIN
 -      select COMMON_CLK
 -      help
 -        Support for the Marvell SoC Family with device tree support
 -
  config ARCH_DOVE
        bool "Marvell Dove"
        select CPU_V7
        select PCI
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
 -      select NEED_MACH_IO_H
        select PLAT_ORION
        help
          Support for the Marvell Dove SoC 88AP510
@@@ -545,6 -587,7 +545,6 @@@ config ARCH_KIRKWOO
        select PCI
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
 -      select NEED_MACH_IO_H
        select PLAT_ORION
        help
          Support for the following Marvell Kirkwood series SoCs:
@@@ -571,6 -614,7 +571,6 @@@ config ARCH_MV78XX
        select PCI
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
 -      select NEED_MACH_IO_H
        select PLAT_ORION
        help
          Support for the following Marvell MV78xx0 series SoCs:
@@@ -583,6 -627,7 +583,6 @@@ config ARCH_ORION5
        select PCI
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
 -      select NEED_MACH_IO_H
        select PLAT_ORION
        help
          Support for the following Marvell Orion 5x series SoCs:
@@@ -600,7 -645,6 +600,7 @@@ config ARCH_MM
        select PLAT_PXA
        select SPARSE_IRQ
        select GENERIC_ALLOCATOR
 +      select NEED_MACH_GPIO_H
        help
          Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
  
@@@ -608,9 -652,8 +608,9 @@@ config ARCH_KS869
        bool "Micrel/Kendin KS8695"
        select CPU_ARM922T
        select ARCH_REQUIRE_GPIOLIB
 -      select ARCH_USES_GETTIMEOFFSET
        select NEED_MACH_MEMORY_H
 +      select CLKSRC_MMIO
 +      select GENERIC_CLOCKEVENTS
        help
          Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
          System-on-Chip devices.
@@@ -640,13 -683,40 +640,13 @@@ config ARCH_TEGR
        select HAVE_CLK
        select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
 -      select NEED_MACH_IO_H if PCI
        select ARCH_HAS_CPUFREQ
        select USE_OF
 +      select COMMON_CLK
        help
          This enables support for NVIDIA Tegra based systems (Tegra APX,
          Tegra 6xx and Tegra 2 series).
  
 -config ARCH_PICOXCELL
 -      bool "Picochip picoXcell"
 -      select ARCH_REQUIRE_GPIOLIB
 -      select ARM_PATCH_PHYS_VIRT
 -      select ARM_VIC
 -      select CPU_V6K
 -      select DW_APB_TIMER
 -      select DW_APB_TIMER_OF
 -      select GENERIC_CLOCKEVENTS
 -      select GENERIC_GPIO
 -      select HAVE_TCM
 -      select NO_IOPORT
 -      select SPARSE_IRQ
 -      select USE_OF
 -      help
 -        This enables support for systems based on the Picochip picoXcell
 -        family of Femtocell devices.  The picoxcell support requires device tree
 -        for all boards.
 -
 -config ARCH_PNX4008
 -      bool "Philips Nexperia PNX4008 Mobile"
 -      select CPU_ARM926T
 -      select CLKDEV_LOOKUP
 -      select ARCH_USES_GETTIMEOFFSET
 -      help
 -        This enables support for Philips PNX4008 mobile platform.
 -
  config ARCH_PXA
        bool "PXA2xx/PXA3xx-based"
        depends on MMU
        select MULTI_IRQ_HANDLER
        select ARM_CPU_SUSPEND if PM
        select HAVE_IDE
 +      select NEED_MACH_GPIO_H
        help
          Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
  
@@@ -726,7 -795,6 +726,7 @@@ config ARCH_SA110
        select CLKDEV_LOOKUP
        select ARCH_REQUIRE_GPIOLIB
        select HAVE_IDE
 +      select NEED_MACH_GPIO_H
        select NEED_MACH_MEMORY_H
        select SPARSE_IRQ
        help
@@@ -742,7 -810,6 +742,7 @@@ config ARCH_S3C24X
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C_RTC if RTC_CLASS
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
 +      select NEED_MACH_GPIO_H
        select NEED_MACH_IO_H
        help
          Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
@@@ -770,7 -837,6 +770,7 @@@ config ARCH_S3C64X
        select SAMSUNG_GPIOLIB_4BIT
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
 +      select NEED_MACH_GPIO_H
        help
          Samsung S3C64XX series based systems
  
@@@ -785,7 -851,6 +785,7 @@@ config ARCH_S5P64X
        select GENERIC_CLOCKEVENTS
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C_RTC if RTC_CLASS
 +      select NEED_MACH_GPIO_H
        help
          Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
          SMDK6450.
@@@ -800,7 -865,6 +800,7 @@@ config ARCH_S5PC10
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C_RTC if RTC_CLASS
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
 +      select NEED_MACH_GPIO_H
        help
          Samsung S5PC100 series based systems
  
@@@ -818,7 -882,6 +818,7 @@@ config ARCH_S5PV21
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C_RTC if RTC_CLASS
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
 +      select NEED_MACH_GPIO_H
        select NEED_MACH_MEMORY_H
        help
          Samsung S5PV210/S5PC110 series based systems
@@@ -836,7 -899,6 +836,7 @@@ config ARCH_EXYNO
        select HAVE_S3C_RTC if RTC_CLASS
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
 +      select NEED_MACH_GPIO_H
        select NEED_MACH_MEMORY_H
        help
          Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
@@@ -850,6 -912,7 +850,6 @@@ config ARCH_SHAR
        select PCI
        select ARCH_USES_GETTIMEOFFSET
        select NEED_MACH_MEMORY_H
 -      select NEED_MACH_IO_H
        help
          Support for the StrongARM based Digital DNARD machine, also known
          as "Shark" (<http://www.shark-linux.de/shark.html>).
@@@ -868,7 -931,6 +868,7 @@@ config ARCH_U30
        select COMMON_CLK
        select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
 +      select SPARSE_IRQ
        help
          Support for ST-Ericsson U300 series mobile platforms.
  
@@@ -894,7 -956,6 +894,7 @@@ config ARCH_NOMADI
        select COMMON_CLK
        select GENERIC_CLOCKEVENTS
        select PINCTRL
 +      select PINCTRL_STN8815
        select MIGHT_HAVE_CACHE_L2X0
        select ARCH_REQUIRE_GPIOLIB
        help
@@@ -910,7 -971,6 +910,7 @@@ config ARCH_DAVINC
        select GENERIC_ALLOCATOR
        select GENERIC_IRQ_CHIP
        select ARCH_HAS_HOLES_MEMORYMODEL
 +      select NEED_MACH_GPIO_H
        help
          Support for TI's DaVinci platform.
  
@@@ -923,7 -983,6 +923,7 @@@ config ARCH_OMA
        select CLKSRC_MMIO
        select GENERIC_CLOCKEVENTS
        select ARCH_HAS_HOLES_MEMORYMODEL
 +      select NEED_MACH_GPIO_H
        help
          Support for TI's OMAP platform (OMAP1/2/3/4).
  
@@@ -946,10 -1005,6 +946,10 @@@ config ARCH_VT850
        select ARCH_HAS_CPUFREQ
        select GENERIC_CLOCKEVENTS
        select ARCH_REQUIRE_GPIOLIB
 +      select USE_OF
 +      select COMMON_CLK
 +      select HAVE_CLK
 +      select CLKDEV_LOOKUP
        help
          Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
  
@@@ -967,50 -1022,6 +967,50 @@@ config ARCH_ZYN
          Support for Xilinx Zynq ARM Cortex A9 Platform
  endchoice
  
 +menu "Multiple platform selection"
 +      depends on ARCH_MULTIPLATFORM
 +
 +comment "CPU Core family selection"
 +
 +config ARCH_MULTI_V4
 +      bool "ARMv4 based platforms (FA526, StrongARM)"
 +      select ARCH_MULTI_V4_V5
 +      depends on !ARCH_MULTI_V6_V7
 +
 +config ARCH_MULTI_V4T
 +      bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
 +      select ARCH_MULTI_V4_V5
 +      depends on !ARCH_MULTI_V6_V7
 +
 +config ARCH_MULTI_V5
 +      bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
 +      select ARCH_MULTI_V4_V5
 +      depends on !ARCH_MULTI_V6_V7
 +
 +config ARCH_MULTI_V4_V5
 +      bool
 +
 +config ARCH_MULTI_V6
 +      bool "ARMv6 based platforms (ARM11, Scorpion, ...)"
 +      select CPU_V6
 +      select ARCH_MULTI_V6_V7
 +
 +config ARCH_MULTI_V7
 +      bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)"
 +      select CPU_V7
 +      select ARCH_VEXPRESS
 +      default y
 +      select ARCH_MULTI_V6_V7
 +
 +config ARCH_MULTI_V6_V7
 +      bool
 +
 +config ARCH_MULTI_CPU_AUTO
 +      def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
 +      select ARCH_MULTI_V5
 +
 +endmenu
 +
  #
  # This is sorted alphabetically by mach-* pathname.  However, plat-*
  # Kconfigs may be included either alphabetically (according to the
@@@ -1020,6 -1031,8 +1020,6 @@@ source "arch/arm/mach-mvebu/Kconfig
  
  source "arch/arm/mach-at91/Kconfig"
  
 -source "arch/arm/mach-bcmring/Kconfig"
 -
  source "arch/arm/mach-clps711x/Kconfig"
  
  source "arch/arm/mach-cns3xxx/Kconfig"
@@@ -1036,8 -1049,6 +1036,8 @@@ source "arch/arm/mach-gemini/Kconfig
  
  source "arch/arm/mach-h720x/Kconfig"
  
 +source "arch/arm/mach-highbank/Kconfig"
 +
  source "arch/arm/mach-integrator/Kconfig"
  
  source "arch/arm/mach-iop32x/Kconfig"
@@@ -1073,8 -1084,6 +1073,8 @@@ source "arch/arm/mach-omap2/Kconfig
  
  source "arch/arm/mach-orion5x/Kconfig"
  
 +source "arch/arm/mach-picoxcell/Kconfig"
 +
  source "arch/arm/mach-pxa/Kconfig"
  source "arch/arm/plat-pxa/Kconfig"
  
@@@ -1087,8 -1096,6 +1087,8 @@@ source "arch/arm/mach-sa1100/Kconfig
  source "arch/arm/plat-samsung/Kconfig"
  source "arch/arm/plat-s3c24xx/Kconfig"
  
 +source "arch/arm/mach-socfpga/Kconfig"
 +
  source "arch/arm/plat-spear/Kconfig"
  
  source "arch/arm/mach-s3c24xx/Kconfig"
@@@ -1111,8 -1118,6 +1111,8 @@@ source "arch/arm/mach-exynos/Kconfig
  
  source "arch/arm/mach-shmobile/Kconfig"
  
 +source "arch/arm/mach-prima2/Kconfig"
 +
  source "arch/arm/mach-tegra/Kconfig"
  
  source "arch/arm/mach-u300/Kconfig"
@@@ -1124,6 -1129,8 +1124,6 @@@ source "arch/arm/mach-versatile/Kconfig
  source "arch/arm/mach-vexpress/Kconfig"
  source "arch/arm/plat-versatile/Kconfig"
  
 -source "arch/arm/mach-vt8500/Kconfig"
 -
  source "arch/arm/mach-w90x900/Kconfig"
  
  # Definitions to make life easier
@@@ -1172,6 -1179,12 +1172,6 @@@ config XSCALE_PM
        depends on CPU_XSCALE
        default y
  
 -config CPU_HAS_PMU
 -      depends on (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && \
 -                 (!ARCH_OMAP3 || OMAP3_EMU)
 -      default y
 -      bool
 -
  config MULTI_IRQ_HANDLER
        bool
        help
@@@ -1400,16 -1413,6 +1400,16 @@@ config PL310_ERRATA_76941
          on systems with an outer cache, the store buffer is drained
          explicitly.
  
 +config ARM_ERRATA_775420
 +       bool "ARM errata: A data cache maintenance operation which aborts, might lead to deadlock"
 +       depends on CPU_V7
 +       help
 +       This option enables the workaround for the 775420 Cortex-A9 (r2p2,
 +       r2p6,r2p8,r2p10,r3p0) erratum. In case a date cache maintenance
 +       operation aborts with MMU exception, it might cause the processor
 +       to deadlock. This workaround puts DSB before executing ISB if
 +       an abort may occur on cache maintenance.
 +
  endmenu
  
  source "arch/arm/common/Kconfig"
@@@ -1620,7 -1623,6 +1620,7 @@@ config ARCH_NR_GPI
        default 355 if ARCH_U8500
        default 264 if MACH_H4700
        default 512 if SOC_OMAP5
 +      default 288 if ARCH_VT8500
        default 0
        help
          Maximum number of GPIOs in the system.
@@@ -1755,7 -1757,7 +1755,7 @@@ config HIGHPT
  
  config HW_PERF_EVENTS
        bool "Enable hardware performance counter support for perf events"
 -      depends on PERF_EVENTS && CPU_HAS_PMU
 +      depends on PERF_EVENTS
        default y
        help
          Enable hardware performance counter support for perf events. If
@@@ -1779,6 -1781,59 +1779,6 @@@ config FORCE_MAX_ZONEORDE
          This config option is actually maximum order plus one. For example,
          a value of 11 means that the largest free memory block is 2^10 pages.
  
 -config LEDS
 -      bool "Timer and CPU usage LEDs"
 -      depends on ARCH_CDB89712 || ARCH_EBSA110 || \
 -                 ARCH_EBSA285 || ARCH_INTEGRATOR || \
 -                 ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
 -                 ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
 -                 ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
 -                 ARCH_AT91 || ARCH_DAVINCI || \
 -                 ARCH_KS8695 || MACH_RD88F5182 || ARCH_REALVIEW
 -      help
 -        If you say Y here, the LEDs on your machine will be used
 -        to provide useful information about your current system status.
 -
 -        If you are compiling a kernel for a NetWinder or EBSA-285, you will
 -        be able to select which LEDs are active using the options below. If
 -        you are compiling a kernel for the EBSA-110 or the LART however, the
 -        red LED will simply flash regularly to indicate that the system is
 -        still functional. It is safe to say Y here if you have a CATS
 -        system, but the driver will do nothing.
 -
 -config LEDS_TIMER
 -      bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
 -                          OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
 -                          || MACH_OMAP_PERSEUS2
 -      depends on LEDS
 -      depends on !GENERIC_CLOCKEVENTS
 -      default y if ARCH_EBSA110
 -      help
 -        If you say Y here, one of the system LEDs (the green one on the
 -        NetWinder, the amber one on the EBSA285, or the red one on the LART)
 -        will flash regularly to indicate that the system is still
 -        operational. This is mainly useful to kernel hackers who are
 -        debugging unstable kernels.
 -
 -        The LART uses the same LED for both Timer LED and CPU usage LED
 -        functions. You may choose to use both, but the Timer LED function
 -        will overrule the CPU usage LED.
 -
 -config LEDS_CPU
 -      bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
 -                      !ARCH_OMAP) \
 -                      || OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
 -                      || MACH_OMAP_PERSEUS2
 -      depends on LEDS
 -      help
 -        If you say Y here, the red LED will be used to give a good real
 -        time indication of CPU usage, by lighting whenever the idle task
 -        is not currently executing.
 -
 -        The LART uses the same LED for both Timer LED and CPU usage LED
 -        functions. You may choose to use both, but the Timer LED function
 -        will overrule the CPU usage LED.
 -
  config ALIGNMENT_TRAP
        bool
        depends on CPU_CP15_MMU
          configuration it is safe to say N, otherwise say Y.
  
  config UACCESS_WITH_MEMCPY
 -      bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user() (EXPERIMENTAL)"
 -      depends on MMU && EXPERIMENTAL
 +      bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
 +      depends on MMU
        default y if CPU_FEROCEON
        help
          Implement faster copy_to_user and clear_user methods for CPU
@@@ -1836,6 -1891,22 +1836,16 @@@ config CC_STACKPROTECTO
          neutralized via a kernel panic.
          This feature requires gcc version 4.2 or above.
  
 -config DEPRECATED_PARAM_STRUCT
 -      bool "Provide old way to pass kernel parameters"
 -      help
 -        This was deprecated in 2001 and announced to live on for 5 years.
 -        Some old boot loaders still use this way.
 -
+ config XEN_DOM0
+       def_bool y
+       depends on XEN
+ config XEN
+       bool "Xen guest support on ARM (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && ARM && OF
+       help
+         Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
  endmenu
  
  menu "Boot options"
@@@ -1848,23 -1919,6 +1858,23 @@@ config USE_O
        help
          Include support for flattened device tree machine descriptions.
  
 +config ATAGS
 +      bool "Support for the traditional ATAGS boot data passing" if USE_OF
 +      default y
 +      help
 +        This is the traditional way of passing data to the kernel at boot
 +        time. If you are solely relying on the flattened device tree (or
 +        the ARM_ATAG_DTB_COMPAT option) then you may unselect this option
 +        to remove ATAGS support from your kernel binary.  If unsure,
 +        leave this to y.
 +
 +config DEPRECATED_PARAM_STRUCT
 +      bool "Provide old way to pass kernel parameters"
 +      depends on ATAGS
 +      help
 +        This was deprecated in 2001 and announced to live on for 5 years.
 +        Some old boot loaders still use this way.
 +
  # Compressed boot loader in ROM.  Yes, we really want to ask about
  # TEXT and BSS so we preserve their values in the config files.
  config ZBOOT_ROM_TEXT
@@@ -1991,7 -2045,6 +2001,7 @@@ config CMDLIN
  choice
        prompt "Kernel command line type" if CMDLINE != ""
        default CMDLINE_FROM_BOOTLOADER
 +      depends on ATAGS
  
  config CMDLINE_FROM_BOOTLOADER
        bool "Use bootloader kernel arguments if available"
@@@ -2017,7 -2070,7 +2027,7 @@@ endchoic
  
  config XIP_KERNEL
        bool "Kernel Execute-In-Place from ROM"
 -      depends on !ZBOOT_ROM && !ARM_LPAE
 +      depends on !ZBOOT_ROM && !ARM_LPAE && !ARCH_MULTIPLATFORM
        help
          Execute-In-Place allows the kernel to run from non-volatile storage
          directly addressable by the CPU, such as NOR flash. This saves RAM
@@@ -2061,7 -2114,7 +2071,7 @@@ config KEXE
  
  config ATAGS_PROC
        bool "Export atags in procfs"
 -      depends on KEXEC
 +      depends on ATAGS && KEXEC
        default y
        help
          Should the atags used to boot the kernel be exported in an "atags"
@@@ -2270,7 -2323,7 +2280,7 @@@ menu "Power management options
  source "kernel/power/Kconfig"
  
  config ARCH_SUSPEND_POSSIBLE
 -      depends on !ARCH_S5PC100 && !ARCH_TEGRA
 +      depends on !ARCH_S5PC100
        depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
                CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK
        def_bool y
diff --combined arch/arm/Makefile
index 14c8df5cd0d998949048ee63edbbed73a657efef,f118d995e15f36e1788f2cf440748241f883150b..f023e3acdfbd8c7c17335cfa9518df05119f4ab7
@@@ -135,78 -135,84 +135,78 @@@ textofs-$(CONFIG_ARCH_MSM8960) := 0x002
  
  # Machine directory name.  This list is sorted alphanumerically
  # by CONFIG_* macro name.
 -machine-$(CONFIG_ARCH_AT91)           := at91
 -machine-$(CONFIG_ARCH_BCMRING)                := bcmring
 -machine-$(CONFIG_ARCH_CLPS711X)               := clps711x
 -machine-$(CONFIG_ARCH_CNS3XXX)                := cns3xxx
 -machine-$(CONFIG_ARCH_DAVINCI)                := davinci
 -machine-$(CONFIG_ARCH_DOVE)           := dove
 -machine-$(CONFIG_ARCH_EBSA110)                := ebsa110
 -machine-$(CONFIG_ARCH_EP93XX)         := ep93xx
 -machine-$(CONFIG_ARCH_GEMINI)         := gemini
 -machine-$(CONFIG_ARCH_H720X)          := h720x
 -machine-$(CONFIG_ARCH_HIGHBANK)               := highbank
 -machine-$(CONFIG_ARCH_INTEGRATOR)     := integrator
 -machine-$(CONFIG_ARCH_IOP13XX)                := iop13xx
 -machine-$(CONFIG_ARCH_IOP32X)         := iop32x
 -machine-$(CONFIG_ARCH_IOP33X)         := iop33x
 -machine-$(CONFIG_ARCH_IXP4XX)         := ixp4xx
 -machine-$(CONFIG_ARCH_KIRKWOOD)               := kirkwood
 -machine-$(CONFIG_ARCH_KS8695)         := ks8695
 -machine-$(CONFIG_ARCH_LPC32XX)                := lpc32xx
 -machine-$(CONFIG_ARCH_MMP)            := mmp
 -machine-$(CONFIG_ARCH_MSM)            := msm
 -machine-$(CONFIG_ARCH_MV78XX0)                := mv78xx0
 -machine-$(CONFIG_ARCH_IMX_V4_V5)      := imx
 -machine-$(CONFIG_ARCH_IMX_V6_V7)      := imx
 -machine-$(CONFIG_ARCH_MXS)            := mxs
 -machine-$(CONFIG_ARCH_MVEBU)          := mvebu
 -machine-$(CONFIG_ARCH_NETX)           := netx
 -machine-$(CONFIG_ARCH_NOMADIK)                := nomadik
 -machine-$(CONFIG_ARCH_OMAP1)          := omap1
 -machine-$(CONFIG_ARCH_OMAP2PLUS)      := omap2
 -machine-$(CONFIG_ARCH_ORION5X)                := orion5x
 -machine-$(CONFIG_ARCH_PICOXCELL)      := picoxcell
 -machine-$(CONFIG_ARCH_PNX4008)                := pnx4008
 -machine-$(CONFIG_ARCH_PRIMA2)         := prima2
 -machine-$(CONFIG_ARCH_PXA)            := pxa
 -machine-$(CONFIG_ARCH_REALVIEW)               := realview
 -machine-$(CONFIG_ARCH_RPC)            := rpc
 -machine-$(CONFIG_ARCH_S3C24XX)                := s3c24xx s3c2412 s3c2440
 -machine-$(CONFIG_ARCH_S3C64XX)                := s3c64xx
 -machine-$(CONFIG_ARCH_S5P64X0)                := s5p64x0
 -machine-$(CONFIG_ARCH_S5PC100)                := s5pc100
 -machine-$(CONFIG_ARCH_S5PV210)                := s5pv210
 -machine-$(CONFIG_ARCH_EXYNOS4)                := exynos
 -machine-$(CONFIG_ARCH_EXYNOS5)                := exynos
 -machine-$(CONFIG_ARCH_SA1100)         := sa1100
 -machine-$(CONFIG_ARCH_SHARK)          := shark
 -machine-$(CONFIG_ARCH_SHMOBILE)       := shmobile
 -machine-$(CONFIG_ARCH_TEGRA)          := tegra
 -machine-$(CONFIG_ARCH_U300)           := u300
 -machine-$(CONFIG_ARCH_U8500)          := ux500
 -machine-$(CONFIG_ARCH_VERSATILE)      := versatile
 -machine-$(CONFIG_ARCH_VEXPRESS)               := vexpress
 -machine-$(CONFIG_ARCH_VT8500)         := vt8500
 -machine-$(CONFIG_ARCH_W90X900)                := w90x900
 -machine-$(CONFIG_FOOTBRIDGE)          := footbridge
 -machine-$(CONFIG_ARCH_SOCFPGA)                := socfpga
 -machine-$(CONFIG_MACH_SPEAR1310)      := spear13xx
 -machine-$(CONFIG_MACH_SPEAR1340)      := spear13xx
 -machine-$(CONFIG_MACH_SPEAR300)               := spear3xx
 -machine-$(CONFIG_MACH_SPEAR310)               := spear3xx
 -machine-$(CONFIG_MACH_SPEAR320)               := spear3xx
 -machine-$(CONFIG_MACH_SPEAR600)               := spear6xx
 -machine-$(CONFIG_ARCH_ZYNQ)           := zynq
 +machine-$(CONFIG_ARCH_AT91)           += at91
 +machine-$(CONFIG_ARCH_BCM2835)                += bcm2835
 +machine-$(CONFIG_ARCH_CLPS711X)               += clps711x
 +machine-$(CONFIG_ARCH_CNS3XXX)                += cns3xxx
 +machine-$(CONFIG_ARCH_DAVINCI)                += davinci
 +machine-$(CONFIG_ARCH_DOVE)           += dove
 +machine-$(CONFIG_ARCH_EBSA110)                += ebsa110
 +machine-$(CONFIG_ARCH_EP93XX)         += ep93xx
 +machine-$(CONFIG_ARCH_GEMINI)         += gemini
 +machine-$(CONFIG_ARCH_H720X)          += h720x
 +machine-$(CONFIG_ARCH_HIGHBANK)               += highbank
 +machine-$(CONFIG_ARCH_INTEGRATOR)     += integrator
 +machine-$(CONFIG_ARCH_IOP13XX)                += iop13xx
 +machine-$(CONFIG_ARCH_IOP32X)         += iop32x
 +machine-$(CONFIG_ARCH_IOP33X)         += iop33x
 +machine-$(CONFIG_ARCH_IXP4XX)         += ixp4xx
 +machine-$(CONFIG_ARCH_KIRKWOOD)               += kirkwood
 +machine-$(CONFIG_ARCH_KS8695)         += ks8695
 +machine-$(CONFIG_ARCH_LPC32XX)                += lpc32xx
 +machine-$(CONFIG_ARCH_MMP)            += mmp
 +machine-$(CONFIG_ARCH_MSM)            += msm
 +machine-$(CONFIG_ARCH_MV78XX0)                += mv78xx0
 +machine-$(CONFIG_ARCH_MXC)            += imx
 +machine-$(CONFIG_ARCH_MXS)            += mxs
 +machine-$(CONFIG_ARCH_MVEBU)          += mvebu
 +machine-$(CONFIG_ARCH_NETX)           += netx
 +machine-$(CONFIG_ARCH_NOMADIK)                += nomadik
 +machine-$(CONFIG_ARCH_OMAP1)          += omap1
 +machine-$(CONFIG_ARCH_OMAP2PLUS)      += omap2
 +machine-$(CONFIG_ARCH_ORION5X)                += orion5x
 +machine-$(CONFIG_ARCH_PICOXCELL)      += picoxcell
 +machine-$(CONFIG_ARCH_PRIMA2)         += prima2
 +machine-$(CONFIG_ARCH_PXA)            += pxa
 +machine-$(CONFIG_ARCH_REALVIEW)               += realview
 +machine-$(CONFIG_ARCH_RPC)            += rpc
 +machine-$(CONFIG_ARCH_S3C24XX)                += s3c24xx s3c2412 s3c2440
 +machine-$(CONFIG_ARCH_S3C64XX)                += s3c64xx
 +machine-$(CONFIG_ARCH_S5P64X0)                += s5p64x0
 +machine-$(CONFIG_ARCH_S5PC100)                += s5pc100
 +machine-$(CONFIG_ARCH_S5PV210)                += s5pv210
 +machine-$(CONFIG_ARCH_EXYNOS)         += exynos
 +machine-$(CONFIG_ARCH_SA1100)         += sa1100
 +machine-$(CONFIG_ARCH_SHARK)          += shark
 +machine-$(CONFIG_ARCH_SHMOBILE)       += shmobile
 +machine-$(CONFIG_ARCH_TEGRA)          += tegra
 +machine-$(CONFIG_ARCH_U300)           += u300
 +machine-$(CONFIG_ARCH_U8500)          += ux500
 +machine-$(CONFIG_ARCH_VERSATILE)      += versatile
 +machine-$(CONFIG_ARCH_VEXPRESS)               += vexpress
 +machine-$(CONFIG_ARCH_VT8500)         += vt8500
 +machine-$(CONFIG_ARCH_W90X900)                += w90x900
 +machine-$(CONFIG_FOOTBRIDGE)          += footbridge
 +machine-$(CONFIG_ARCH_SOCFPGA)                += socfpga
 +machine-$(CONFIG_ARCH_SPEAR13XX)      += spear13xx
 +machine-$(CONFIG_ARCH_SPEAR3XX)               += spear3xx
 +machine-$(CONFIG_MACH_SPEAR600)               += spear6xx
 +machine-$(CONFIG_ARCH_ZYNQ)           += zynq
  
  # Platform directory name.  This list is sorted alphanumerically
  # by CONFIG_* macro name.
 -plat-$(CONFIG_ARCH_MXC)               := mxc
 -plat-$(CONFIG_ARCH_OMAP)      := omap
 -plat-$(CONFIG_ARCH_S3C64XX)   := samsung
 -plat-$(CONFIG_ARCH_ZYNQ)      := versatile
 -plat-$(CONFIG_PLAT_IOP)               := iop
 -plat-$(CONFIG_PLAT_NOMADIK)   := nomadik
 -plat-$(CONFIG_PLAT_ORION)     := orion
 -plat-$(CONFIG_PLAT_PXA)               := pxa
 -plat-$(CONFIG_PLAT_S3C24XX)   := s3c24xx samsung
 -plat-$(CONFIG_PLAT_S5P)               := samsung
 -plat-$(CONFIG_PLAT_SPEAR)     := spear
 -plat-$(CONFIG_PLAT_VERSATILE) := versatile
 +plat-$(CONFIG_ARCH_MXC)               += mxc
 +plat-$(CONFIG_ARCH_OMAP)      += omap
 +plat-$(CONFIG_ARCH_S3C64XX)   += samsung
 +plat-$(CONFIG_ARCH_ZYNQ)      += versatile
 +plat-$(CONFIG_PLAT_IOP)               += iop
 +plat-$(CONFIG_PLAT_NOMADIK)   += nomadik
 +plat-$(CONFIG_PLAT_ORION)     += orion
 +plat-$(CONFIG_PLAT_PXA)               += pxa
 +plat-$(CONFIG_PLAT_S3C24XX)   += s3c24xx samsung
 +plat-$(CONFIG_PLAT_S5P)               += samsung
 +plat-$(CONFIG_PLAT_SPEAR)     += spear
 +plat-$(CONFIG_PLAT_VERSATILE) += versatile
  
  ifeq ($(CONFIG_ARCH_EBSA110),y)
  # This is what happens if you forget the IOCS16 line.
@@@ -224,20 -230,15 +224,20 @@@ MACHINE  := arch/arm/mach-$(word 1,$(ma
  else
  MACHINE  :=
  endif
 +ifeq ($(CONFIG_ARCH_MULTIPLATFORM),y)
 +MACHINE  :=
 +endif
  
  machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
  platdirs := $(patsubst %,arch/arm/plat-%/,$(plat-y))
  
 +ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y)
  ifeq ($(KBUILD_SRC),)
  KBUILD_CPPFLAGS += $(patsubst %,-I%include,$(machdirs) $(platdirs))
  else
  KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs))
  endif
 +endif
  
  export        TEXT_OFFSET GZFLAGS MMUEXT
  
@@@ -250,11 -251,11 +250,12 @@@ endi
  core-$(CONFIG_FPE_NWFPE)      += arch/arm/nwfpe/
  core-$(CONFIG_FPE_FASTFPE)    += $(FASTFPE_OBJ)
  core-$(CONFIG_VFP)            += arch/arm/vfp/
+ core-$(CONFIG_XEN)            += arch/arm/xen/
  
  # If we have a machine-specific directory, then include it in the build.
  core-y                                += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
  core-y                                += arch/arm/net/
 +core-y                                += arch/arm/crypto/
  core-y                                += $(machdirs) $(platdirs)
  
  drivers-$(CONFIG_OPROFILE)      += arch/arm/oprofile/
@@@ -268,12 -269,7 +269,12 @@@ els
  KBUILD_IMAGE := zImage
  endif
  
 -all:  $(KBUILD_IMAGE)
 +# Build the DT binary blobs if we have OF configured
 +ifeq ($(CONFIG_USE_OF),y)
 +KBUILD_DTBS := dtbs
 +endif
 +
 +all:  $(KBUILD_IMAGE) $(KBUILD_DTBS)
  
  boot := arch/arm/boot
  
@@@ -311,7 -307,7 +312,7 @@@ define archhel
    echo  '  uImage        - U-Boot wrapped zImage'
    echo  '  bootpImage    - Combined zImage and initial RAM disk' 
    echo  '                  (supply initrd image via make variable INITRD=<path>)'
 -  echo  '  dtbs          - Build device tree blobs for enabled boards'
 +  echo  '* dtbs          - Build device tree blobs for enabled boards'
    echo  '  install       - Install uncompressed kernel'
    echo  '  zinstall      - Install compressed kernel'
    echo  '  uinstall      - Install U-Boot wrapped compressed kernel'
index 43c084c2cd6682074e45c57090c0d3ee4a2e38d0,0000000000000000000000000000000000000000..4745c1f68b4983468e2e23b724deffe0085afacb
mode 100644,000000..100644
--- /dev/null
@@@ -1,101 -1,0 +1,102 @@@
-       vexpress-v2p-ca15_a7.dtb
 +ifeq ($(CONFIG_OF),y)
 +
 +dtb-$(CONFIG_ARCH_AT91) += aks-cdu.dtb \
 +      at91sam9263ek.dtb \
 +      at91sam9g20ek_2mmc.dtb \
 +      at91sam9g20ek.dtb \
 +      at91sam9g25ek.dtb \
 +      at91sam9m10g45ek.dtb \
 +      at91sam9n12ek.dtb \
 +      ethernut5.dtb \
 +      evk-pro3.dtb \
 +      kizbox.dtb \
 +      tny_a9260.dtb \
 +      tny_a9263.dtb \
 +      tny_a9g20.dtb \
 +      usb_a9260.dtb \
 +      usb_a9263.dtb \
 +      usb_a9g20.dtb
 +dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
 +dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
 +      exynos4210-smdkv310.dtb \
 +      exynos4210-trats.dtb \
 +      exynos5250-smdk5250.dtb
 +dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb
 +dtb-$(CONFIG_ARCH_IMX5) += imx51-babbage.dtb \
 +      imx53-ard.dtb \
 +      imx53-evk.dtb \
 +      imx53-qsb.dtb \
 +      imx53-smd.dtb
 +dtb-$(CONFIG_SOC_IMX6Q) += imx6q-arm2.dtb \
 +      imx6q-sabrelite.dtb \
 +      imx6q-sabresd.dtb
 +dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb
 +dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
 +      kirkwood-dns325.dtb \
 +      kirkwood-dreamplug.dtb \
 +      kirkwood-goflexnet.dtb \
 +      kirkwood-ib62x0.dtb \
 +      kirkwood-iconnect.dtb \
 +      kirkwood-lschlv2.dtb \
 +      kirkwood-lsxhl.dtb \
 +      kirkwood-ts219-6281.dtb \
 +      kirkwood-ts219-6282.dtb
 +dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \
 +      msm8960-cdp.dtb
 +dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \
 +      armada-xp-db.dtb
 +dtb-$(CONFIG_ARCH_MXC) += imx51-babbage.dtb \
 +      imx53-ard.dtb \
 +      imx53-evk.dtb \
 +      imx53-qsb.dtb \
 +      imx53-smd.dtb \
 +      imx6q-arm2.dtb \
 +      imx6q-sabrelite.dtb \
 +      imx6q-sabresd.dtb
 +dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
 +      imx23-olinuxino.dtb \
 +      imx23-stmp378x_devb.dtb \
 +      imx28-apx4devkit.dtb \
 +      imx28-cfa10036.dtb \
 +      imx28-cfa10049.dtb \
 +      imx28-evk.dtb \
 +      imx28-m28evk.dtb \
 +      imx28-tx28.dtb
 +dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
 +      omap3-beagle-xm.dtb \
 +      omap3-evm.dtb \
 +      omap3-tobi.dtb \
 +      omap4-panda.dtb \
 +      omap4-pandaES.dtb \
 +      omap4-var_som.dtb \
 +      omap4-sdp.dtb \
 +      omap5-evm.dtb
 +dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb
 +dtb-$(CONFIG_ARCH_U8500) += snowball.dtb
 +dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
 +      r8a7740-armadillo800eva.dtb \
 +      sh73a0-kzm9g.dtb
 +dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \
 +      spear1340-evb.dtb
 +dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \
 +      spear310-evb.dtb \
 +      spear320-evb.dtb
 +dtb-$(CONFIG_ARCH_SPEAR6XX)+= spear600-evb.dtb
 +dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
 +      tegra20-medcom-wide.dtb \
 +      tegra20-paz00.dtb \
 +      tegra20-plutux.dtb \
 +      tegra20-seaboard.dtb \
 +      tegra20-tec.dtb \
 +      tegra20-trimslice.dtb \
 +      tegra20-ventana.dtb \
 +      tegra20-whistler.dtb \
 +      tegra30-cardhu-a02.dtb \
 +      tegra30-cardhu-a04.dtb
 +dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \
 +      vexpress-v2p-ca9.dtb \
 +      vexpress-v2p-ca15-tc1.dtb \
++      vexpress-v2p-ca15_a7.dtb \
++      xenvm-4.2.dtb
 +
 +endif
index 5f6b7d543e55ffb5f519043a85466683b9557dd1,0a79b085ceafdbd84ceddd8ca76df63536e75923..560e0df728f89931826f080cfe87dda6abcec128
@@@ -5,7 -5,6 +5,7 @@@
  #include <linux/amba/bus.h>
  #include <linux/amba/mmci.h>
  #include <linux/io.h>
 +#include <linux/smp.h>
  #include <linux/init.h>
  #include <linux/of_address.h>
  #include <linux/of_fdt.h>
@@@ -39,7 -38,6 +39,7 @@@
  #include <mach/motherboard.h>
  
  #include <plat/sched_clock.h>
 +#include <plat/platsmp.h>
  
  #include "core.h"
  
@@@ -532,7 -530,6 +532,7 @@@ static void __init v2m_init(void
  
  MACHINE_START(VEXPRESS, "ARM-Versatile Express")
        .atag_offset    = 0x100,
 +      .smp            = smp_ops(vexpress_smp_ops),
        .map_io         = v2m_map_io,
        .init_early     = v2m_init_early,
        .init_irq       = v2m_init_irq,
        .restart        = v2m_restart,
  MACHINE_END
  
 -#if defined(CONFIG_ARCH_VEXPRESS_DT)
 -
  static struct map_desc v2m_rs1_io_desc __initdata = {
        .virtual        = V2M_PERIPH,
        .pfn            = __phys_to_pfn(0x1c000000),
@@@ -659,12 -658,12 +659,13 @@@ static void __init v2m_dt_init(void
  
  const static char *v2m_dt_match[] __initconst = {
        "arm,vexpress",
+       "xen,xenvm",
        NULL,
  };
  
  DT_MACHINE_START(VEXPRESS_DT, "ARM-Versatile Express")
        .dt_compat      = v2m_dt_match,
 +      .smp            = smp_ops(vexpress_smp_ops),
        .map_io         = v2m_dt_map_io,
        .init_early     = v2m_dt_init_early,
        .init_irq       = v2m_dt_init_irq,
        .handle_irq     = gic_handle_irq,
        .restart        = v2m_restart,
  MACHINE_END
 -
 -#endif
index c934fe8583f5f17c33a577993a934205db2d3609,24d968ddb543935532113b1d03821c6a0f85661e..caa011008cd0c9fe11b38507e7f550552bd93170
@@@ -43,6 -43,7 +43,7 @@@
  #include <linux/slab.h>
  #include <net/ip.h>
  
+ #include <asm/xen/page.h>
  #include <xen/xen.h>
  #include <xen/xenbus.h>
  #include <xen/events.h>
@@@ -1712,7 -1713,7 +1713,7 @@@ static void netback_changed(struct xenb
                break;
  
        case XenbusStateConnected:
 -              netif_notify_peers(netdev);
 +              netdev_notify_peers(netdev);
                break;
  
        case XenbusStateClosing:
index def8d0b5620c01bf4b8fd372a0ee0f68f57dabab,7d6773535b67dce135840b36e36ce1e93476aa7d..0aab85a51559c1f46ce4567cd3de1ca27a0d7a07
@@@ -21,6 -21,7 +21,7 @@@
  #include <linux/bitops.h>
  #include <linux/time.h>
  
+ #include <asm/xen/swiotlb-xen.h>
  #define INVALID_GRANT_REF (0)
  #define INVALID_EVTCHN    (-1)
  
@@@ -236,7 -237,7 +237,7 @@@ static int pcifront_bus_write(struct pc
        return errno_to_pcibios_err(do_pci_op(pdev, &op));
  }
  
- struct pci_ops pcifront_bus_ops = {
+ static struct pci_ops pcifront_bus_ops = {
        .read = pcifront_bus_read,
        .write = pcifront_bus_write,
  };
@@@ -668,7 -669,7 +669,7 @@@ static irqreturn_t pcifront_handler_aer
        schedule_pcifront_aer_op(pdev);
        return IRQ_HANDLED;
  }
- static int pcifront_connect(struct pcifront_device *pdev)
+ static int pcifront_connect_and_init_dma(struct pcifront_device *pdev)
  {
        int err = 0;
  
                dev_err(&pdev->xdev->dev, "PCI frontend already installed!\n");
                err = -EEXIST;
        }
        spin_unlock(&pcifront_dev_lock);
  
+       if (!err && !swiotlb_nr_tbl()) {
+               err = pci_xen_swiotlb_init_late();
+               if (err)
+                       dev_err(&pdev->xdev->dev, "Could not setup SWIOTLB!\n");
+       }
        return err;
  }
  
@@@ -842,10 -847,10 +847,10 @@@ static int __devinit pcifront_try_conne
            XenbusStateInitialised)
                goto out;
  
-       err = pcifront_connect(pdev);
+       err = pcifront_connect_and_init_dma(pdev);
        if (err) {
                xenbus_dev_fatal(pdev->xdev, err,
-                                "Error connecting PCI Frontend");
+                                "Error setting up PCI Frontend");
                goto out;
        }
  
@@@ -982,6 -987,7 +987,6 @@@ static int pcifront_detach_devices(stru
        int err = 0;
        int i, num_devs;
        unsigned int domain, bus, slot, func;
 -      struct pci_bus *pci_bus;
        struct pci_dev *pci_dev;
        char str[64];
  
                        goto out;
                }
  
 -              pci_bus = pci_find_bus(domain, bus);
 -              if (!pci_bus) {
 -                      dev_dbg(&pdev->xdev->dev, "Cannot get bus %04x:%02x\n",
 -                              domain, bus);
 -                      continue;
 -              }
 -              pci_dev = pci_get_slot(pci_bus, PCI_DEVFN(slot, func));
 +              pci_dev = pci_get_domain_bus_and_slot(domain, bus,
 +                              PCI_DEVFN(slot, func));
                if (!pci_dev) {
                        dev_dbg(&pdev->xdev->dev,
                                "Cannot get PCI device %04x:%02x:%02x.%d\n",
diff --combined drivers/xen/Makefile
index a4a3cab2f4596c4f1681a999bebf6353307d5084,275abfc615cb399199aa9426725c2840c723d92b..4dca78c204ced55ca0a96a04e4f948356d2cb952
@@@ -1,11 -1,18 +1,19 @@@
- obj-y += grant-table.o features.o events.o manage.o balloon.o
+ ifneq ($(CONFIG_ARM),y)
+ obj-y += manage.o balloon.o
+ obj-$(CONFIG_HOTPLUG_CPU)             += cpu_hotplug.o
+ endif
+ obj-y += grant-table.o features.o events.o
  obj-y += xenbus/
  
  nostackp := $(call cc-option, -fno-stack-protector)
  CFLAGS_features.o                     := $(nostackp)
  
+ dom0-$(CONFIG_PCI) += pci.o
+ dom0-$(CONFIG_ACPI) += acpi.o
+ dom0-$(CONFIG_X86) += pcpu.o
++dom0-$(CONFIG_USB_SUPPORT) += dbgp.o
+ obj-$(CONFIG_XEN_DOM0)                        += $(dom0-y)
  obj-$(CONFIG_BLOCK)                   += biomerge.o
- obj-$(CONFIG_HOTPLUG_CPU)             += cpu_hotplug.o
  obj-$(CONFIG_XEN_XENCOMM)             += xencomm.o
  obj-$(CONFIG_XEN_BALLOON)             += xen-balloon.o
  obj-$(CONFIG_XEN_SELFBALLOONING)      += xen-selfballoon.o
@@@ -17,8 -24,6 +25,6 @@@ obj-$(CONFIG_XEN_SYS_HYPERVISOR)      += sys
  obj-$(CONFIG_XEN_PVHVM)                       += platform-pci.o
  obj-$(CONFIG_XEN_TMEM)                        += tmem.o
  obj-$(CONFIG_SWIOTLB_XEN)             += swiotlb-xen.o
- obj-$(CONFIG_XEN_DOM0)                        += pcpu.o
- obj-$(CONFIG_XEN_DOM0)                        += pci.o dbgp.o acpi.o
  obj-$(CONFIG_XEN_MCE_LOG)             += mcelog.o
  obj-$(CONFIG_XEN_PCIDEV_BACKEND)      += xen-pciback/
  obj-$(CONFIG_XEN_PRIVCMD)             += xen-privcmd.o
index 92ff01dbeb1036880dd747dae11d813a305dd569,e5a0c13e2ad43501fa5543a6a82e1206da68bda4..961d664e2d2faacde4272fa83023919c6ebcf3ca
@@@ -362,6 -362,7 +362,7 @@@ static int __devinit pcistub_init_devic
        else {
                dev_dbg(&dev->dev, "reseting (FLR, D3, etc) the device\n");
                __pci_reset_function_locked(dev);
+               pci_restore_state(dev);
        }
        /* Now disable the device (this also ensures some private device
         * data is setup before we export)
@@@ -681,14 -682,14 +682,14 @@@ static pci_ers_result_t xen_pcibk_slot_
                dev_err(&dev->dev, DRV_NAME " device is not connected or owned"
                        " by HVM, kill it\n");
                kill_domain_by_device(psdev);
-               goto release;
+               goto end;
        }
  
        if (!test_bit(_XEN_PCIB_AERHANDLER,
                (unsigned long *)&psdev->pdev->sh_info->flags)) {
                dev_err(&dev->dev,
                        "guest with no AER driver should have been killed\n");
-               goto release;
+               goto end;
        }
        result = common_process(psdev, 1, XEN_PCI_OP_aer_slotreset, result);
  
                        "No AER slot_reset service or disconnected!\n");
                kill_domain_by_device(psdev);
        }
- release:
-       pcistub_device_put(psdev);
  end:
+       if (psdev)
+               pcistub_device_put(psdev);
        up_write(&pcistub_sem);
        return result;
  
@@@ -739,14 -740,14 +740,14 @@@ static pci_ers_result_t xen_pcibk_mmio_
                dev_err(&dev->dev, DRV_NAME " device is not connected or owned"
                        " by HVM, kill it\n");
                kill_domain_by_device(psdev);
-               goto release;
+               goto end;
        }
  
        if (!test_bit(_XEN_PCIB_AERHANDLER,
                (unsigned long *)&psdev->pdev->sh_info->flags)) {
                dev_err(&dev->dev,
                        "guest with no AER driver should have been killed\n");
-               goto release;
+               goto end;
        }
        result = common_process(psdev, 1, XEN_PCI_OP_aer_mmio, result);
  
                        "No AER mmio_enabled service or disconnected!\n");
                kill_domain_by_device(psdev);
        }
- release:
-       pcistub_device_put(psdev);
  end:
+       if (psdev)
+               pcistub_device_put(psdev);
        up_write(&pcistub_sem);
        return result;
  }
@@@ -797,7 -798,7 +798,7 @@@ static pci_ers_result_t xen_pcibk_error
                dev_err(&dev->dev, DRV_NAME " device is not connected or owned"
                        " by HVM, kill it\n");
                kill_domain_by_device(psdev);
-               goto release;
+               goto end;
        }
  
        /*Guest owns the device yet no aer handler regiested, kill guest*/
                (unsigned long *)&psdev->pdev->sh_info->flags)) {
                dev_dbg(&dev->dev, "guest may have no aer driver, kill it\n");
                kill_domain_by_device(psdev);
-               goto release;
+               goto end;
        }
        result = common_process(psdev, error, XEN_PCI_OP_aer_detected, result);
  
                        "No AER error_detected service or disconnected!\n");
                kill_domain_by_device(psdev);
        }
- release:
-       pcistub_device_put(psdev);
  end:
+       if (psdev)
+               pcistub_device_put(psdev);
        up_write(&pcistub_sem);
        return result;
  }
@@@ -851,7 -852,7 +852,7 @@@ static void xen_pcibk_error_resume(stru
                dev_err(&dev->dev, DRV_NAME " device is not connected or owned"
                        " by HVM, kill it\n");
                kill_domain_by_device(psdev);
-               goto release;
+               goto end;
        }
  
        if (!test_bit(_XEN_PCIB_AERHANDLER,
                dev_err(&dev->dev,
                        "guest with no AER driver should have been killed\n");
                kill_domain_by_device(psdev);
-               goto release;
+               goto end;
        }
        common_process(psdev, 1, XEN_PCI_OP_aer_resume,
                       PCI_ERS_RESULT_RECOVERED);
- release:
-       pcistub_device_put(psdev);
  end:
+       if (psdev)
+               pcistub_device_put(psdev);
        up_write(&pcistub_sem);
        return;
  }
  
  /*add xen_pcibk AER handling*/
 -static struct pci_error_handlers xen_pcibk_error_handler = {
 +static const struct pci_error_handlers xen_pcibk_error_handler = {
        .error_detected = xen_pcibk_error_detected,
        .mmio_enabled = xen_pcibk_mmio_enabled,
        .slot_reset = xen_pcibk_slot_reset,
@@@ -897,17 -898,41 +898,41 @@@ static inline int str_to_slot(const cha
                              int *slot, int *func)
  {
        int err;
+       char wc = '*';
  
        err = sscanf(buf, " %x:%x:%x.%x", domain, bus, slot, func);
-       if (err == 4)
+       switch (err) {
+       case 3:
+               *func = -1;
+               err = sscanf(buf, " %x:%x:%x.%c", domain, bus, slot, &wc);
+               break;
+       case 2:
+               *slot = *func = -1;
+               err = sscanf(buf, " %x:%x:*.%c", domain, bus, &wc);
+               if (err >= 2)
+                       ++err;
+               break;
+       }
+       if (err == 4 && wc == '*')
                return 0;
        else if (err < 0)
                return -EINVAL;
  
        /* try again without domain */
        *domain = 0;
+       wc = '*';
        err = sscanf(buf, " %x:%x.%x", bus, slot, func);
-       if (err == 3)
+       switch (err) {
+       case 2:
+               *func = -1;
+               err = sscanf(buf, " %x:%x.%c", bus, slot, &wc);
+               break;
+       case 1:
+               *slot = *func = -1;
+               err = sscanf(buf, " %x:*.%c", bus, &wc) + 1;
+               break;
+       }
+       if (err == 3 && wc == '*')
                return 0;
  
        return -EINVAL;
@@@ -930,6 -955,19 +955,19 @@@ static int pcistub_device_id_add(int do
  {
        struct pcistub_device_id *pci_dev_id;
        unsigned long flags;
+       int rc = 0;
+       if (slot < 0) {
+               for (slot = 0; !rc && slot < 32; ++slot)
+                       rc = pcistub_device_id_add(domain, bus, slot, func);
+               return rc;
+       }
+       if (func < 0) {
+               for (func = 0; !rc && func < 8; ++func)
+                       rc = pcistub_device_id_add(domain, bus, slot, func);
+               return rc;
+       }
  
        pci_dev_id = kmalloc(sizeof(*pci_dev_id), GFP_KERNEL);
        if (!pci_dev_id)
  static int pcistub_device_id_remove(int domain, int bus, int slot, int func)
  {
        struct pcistub_device_id *pci_dev_id, *t;
-       int devfn = PCI_DEVFN(slot, func);
        int err = -ENOENT;
        unsigned long flags;
  
        spin_lock_irqsave(&device_ids_lock, flags);
        list_for_each_entry_safe(pci_dev_id, t, &pcistub_device_ids,
                                 slot_list) {
-               if (pci_dev_id->domain == domain
-                   && pci_dev_id->bus == bus && pci_dev_id->devfn == devfn) {
+               if (pci_dev_id->domain == domain && pci_dev_id->bus == bus
+                   && (slot < 0 || PCI_SLOT(pci_dev_id->devfn) == slot)
+                   && (func < 0 || PCI_FUNC(pci_dev_id->devfn) == func)) {
                        /* Don't break; here because it's possible the same
                         * slot could be in the list more than once
                         */
@@@ -987,7 -1025,7 +1025,7 @@@ static int pcistub_reg_add(int domain, 
        struct config_field *field;
  
        psdev = pcistub_device_find(domain, bus, slot, func);
-       if (!psdev || !psdev->dev) {
+       if (!psdev) {
                err = -ENODEV;
                goto out;
        }
        if (err)
                kfree(field);
  out:
+       if (psdev)
+               pcistub_device_put(psdev);
        return err;
  }
  
@@@ -1115,10 -1155,9 +1155,9 @@@ static ssize_t pcistub_irq_handler_swit
  
        err = str_to_slot(buf, &domain, &bus, &slot, &func);
        if (err)
-               goto out;
+               return err;
  
        psdev = pcistub_device_find(domain, bus, slot, func);
        if (!psdev)
                goto out;
  
        if (dev_data->isr_on)
                dev_data->ack_intr = 1;
  out:
+       if (psdev)
+               pcistub_device_put(psdev);
        if (!err)
                err = count;
        return err;
@@@ -1216,15 -1257,16 +1257,16 @@@ static ssize_t permissive_add(struct de
        err = str_to_slot(buf, &domain, &bus, &slot, &func);
        if (err)
                goto out;
+       if (slot < 0 || func < 0) {
+               err = -EINVAL;
+               goto out;
+       }
        psdev = pcistub_device_find(domain, bus, slot, func);
        if (!psdev) {
                err = -ENODEV;
                goto out;
        }
-       if (!psdev->dev) {
-               err = -ENODEV;
-               goto release;
-       }
        dev_data = pci_get_drvdata(psdev->dev);
        /* the driver data for a device should never be null at this point */
        if (!dev_data) {
@@@ -1297,17 -1339,51 +1339,51 @@@ static int __init pcistub_init(void
  
        if (pci_devs_to_hide && *pci_devs_to_hide) {
                do {
+                       char wc = '*';
                        parsed = 0;
  
                        err = sscanf(pci_devs_to_hide + pos,
                                     " (%x:%x:%x.%x) %n",
                                     &domain, &bus, &slot, &func, &parsed);
-                       if (err != 4) {
+                       switch (err) {
+                       case 3:
+                               func = -1;
+                               err = sscanf(pci_devs_to_hide + pos,
+                                            " (%x:%x:%x.%c) %n",
+                                            &domain, &bus, &slot, &wc,
+                                            &parsed);
+                               break;
+                       case 2:
+                               slot = func = -1;
+                               err = sscanf(pci_devs_to_hide + pos,
+                                            " (%x:%x:*.%c) %n",
+                                            &domain, &bus, &wc, &parsed) + 1;
+                               break;
+                       }
+                       if (err != 4 || wc != '*') {
                                domain = 0;
+                               wc = '*';
                                err = sscanf(pci_devs_to_hide + pos,
                                             " (%x:%x.%x) %n",
                                             &bus, &slot, &func, &parsed);
-                               if (err != 3)
+                               switch (err) {
+                               case 2:
+                                       func = -1;
+                                       err = sscanf(pci_devs_to_hide + pos,
+                                                    " (%x:%x.%c) %n",
+                                                    &bus, &slot, &wc,
+                                                    &parsed);
+                                       break;
+                               case 1:
+                                       slot = func = -1;
+                                       err = sscanf(pci_devs_to_hide + pos,
+                                                    " (%x:*.%c) %n",
+                                                    &bus, &wc, &parsed) + 1;
+                                       break;
+                               }
+                               if (err != 3 || wc != '*')
                                        goto parse_error;
                        }
  
index bfa1d50fe15bed0c5d2b37d392454ce5e6d56d02,f616514f781b756d6a5828bea9a169e70852ed45..1844d31f45520fef57c93be90ba7e247e1a0b042
@@@ -56,7 -56,7 +56,7 @@@ struct physdev_eoi 
  #define PHYSDEVOP_pirq_eoi_gmfn_v2       28
  struct physdev_pirq_eoi_gmfn {
      /* IN */
-     unsigned long gmfn;
+     xen_ulong_t gmfn;
  };
  
  /*
@@@ -258,22 -258,6 +258,22 @@@ struct physdev_pci_device 
      uint8_t devfn;
  };
  
 +#define PHYSDEVOP_DBGP_RESET_PREPARE    1
 +#define PHYSDEVOP_DBGP_RESET_DONE       2
 +
 +#define PHYSDEVOP_DBGP_BUS_UNKNOWN      0
 +#define PHYSDEVOP_DBGP_BUS_PCI          1
 +
 +#define PHYSDEVOP_dbgp_op               29
 +struct physdev_dbgp_op {
 +    /* IN */
 +    uint8_t op;
 +    uint8_t bus;
 +    union {
 +        struct physdev_pci_device pci;
 +    } u;
 +};
 +
  /*
   * Notify that some PIRQ-bound event channels have been unmasked.
   * ** This command is obsolete since interface version 0x00030202 and is **