]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge 3.8-rc5 into staging-next
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Jan 2013 05:25:02 +0000 (21:25 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Jan 2013 05:25:02 +0000 (21:25 -0800)
This resolves a merge issue with a iio driver, and the zram code.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
16 files changed:
1  2 
MAINTAINERS
drivers/iio/accel/hid-sensor-accel-3d.c
drivers/iio/adc/lp8788_adc.c
drivers/iio/adc/max1363.c
drivers/iio/gyro/hid-sensor-gyro-3d.c
drivers/iio/light/hid-sensor-als.c
drivers/iio/magnetometer/hid-sensor-magn-3d.c
drivers/rtc/Kconfig
drivers/rtc/Makefile
drivers/staging/iio/adc/mxs-lradc.c
drivers/staging/omapdrm/omap_gem_dmabuf.c
drivers/staging/sb105x/sb_pci_mp.c
drivers/staging/vt6656/bssdb.h
drivers/staging/vt6656/int.h
drivers/staging/wlan-ng/prism2mgmt.c
drivers/staging/zram/zram_drv.c

diff --combined MAINTAINERS
index 3603fd3be6c73311d541792d17e6e7556a089a02,8ae709e34523c4eb25c7cde1e4e4a9afb7e9704d..1f91703cb86c6ca409d037bd799410401336df1b
@@@ -228,7 -228,7 +228,7 @@@ S: Maintaine
  F:    drivers/platform/x86/acerhdf.c
  
  ACER WMI LAPTOP EXTRAS
- M:    Joey Lee <jlee@novell.com>
+ M:    "Lee, Chun-Yi" <jlee@suse.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/acer-wmi.c
@@@ -449,6 -449,7 +449,7 @@@ T: git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/char/agp/
  F:    include/linux/agp*
+ F:    include/uapi/linux/agp*
  
  AHA152X SCSI DRIVER
  M:    "Juergen E. Fischer" <fischer@norbit.de>
@@@ -589,6 -590,7 +590,7 @@@ M: Jiri Kosina <jkosina@suse.cz
  S:    Odd fixes
  F:    arch/x86/kernel/apm_32.c
  F:    include/linux/apm_bios.h
+ F:    include/uapi/linux/apm_bios.h
  F:    drivers/char/apm-emulation.c
  
  APPLE BCM5974 MULTITOUCH DRIVER
@@@ -646,7 -648,7 +648,7 @@@ F: arch/arm
  
  ARM SUB-ARCHITECTURES
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    MAINTAINED
+ S:    Maintained
  F:    arch/arm/mach-*/
  F:    arch/arm/plat-*/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git
@@@ -1005,7 -1007,6 +1007,6 @@@ F:      drivers/mmc/host/msm_sdcc.
  F:    drivers/mmc/host/msm_sdcc.h
  F:    drivers/tty/serial/msm_serial.h
  F:    drivers/tty/serial/msm_serial.c
- F:    drivers/platform/msm/
  F:    drivers/*/pm8???-*
  F:    include/linux/mfd/pm8xxx/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm.git
@@@ -1069,7 -1070,6 +1070,6 @@@ M:      Russell King <linux@arm.linux.org.uk
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  W:    http://www.arm.linux.org.uk/
  S:    Maintained
- F:    arch/arm/common/time-acorn.c
  F:    arch/arm/include/asm/hardware/entry-macro-iomd.S
  F:    arch/arm/include/asm/hardware/ioc.h
  F:    arch/arm/include/asm/hardware/iomd.h
@@@ -1094,7 -1094,6 +1094,6 @@@ W:      http://www.fluff.org/ben/linux
  S:    Maintained
  F:    arch/arm/plat-samsung/
  F:    arch/arm/plat-s3c24xx/
- F:    arch/arm/plat-s5p/
  F:    arch/arm/mach-s3c24*/
  F:    arch/arm/mach-s3c64xx/
  F:    drivers/*/*s3c2410*
@@@ -1125,7 -1124,6 +1124,6 @@@ M:      Sylwester Nawrocki <s.nawrocki@samsu
  L:    linux-arm-kernel@lists.infradead.org
  L:    linux-media@vger.kernel.org
  S:    Maintained
- F:    arch/arm/plat-s5p/dev-fimc*
  F:    arch/arm/plat-samsung/include/plat/*fimc*
  F:    drivers/media/platform/s5p-fimc/
  
@@@ -1136,7 -1134,7 +1134,7 @@@ M:      Jeongtae Park <jtp.park@samsung.com
  L:    linux-arm-kernel@lists.infradead.org
  L:    linux-media@vger.kernel.org
  S:    Maintained
- F:    arch/arm/plat-s5p/dev-mfc.c
+ F:    arch/arm/plat-samsung/s5p-dev-mfc.c
  F:    drivers/media/platform/s5p-mfc/
  
  ARM/SAMSUNG S5P SERIES TV SUBSYSTEM SUPPORT
@@@ -1254,7 -1252,7 +1252,7 @@@ F:      drivers/video/vt8500lcdfb.
  F:    drivers/video/wm8505fb*
  F:    drivers/video/wmt_ge_rops.*
  F:    drivers/tty/serial/vt8500_serial.c
- F:    drivers/rtc/rtc-vt8500-c
+ F:    drivers/rtc/rtc-vt8500.c
  F:    drivers/mmc/host/wmt-sdmmc.c
  
  ARM/ZIPIT Z2 SUPPORT
@@@ -1353,6 -1351,14 +1351,14 @@@ W:    http://wireless.kernel.org/en/users/
  S:    Supported
  F:    drivers/net/wireless/ath/ath9k/
  
+ WILOCITY WIL6210 WIRELESS DRIVER
+ M:    Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
+ L:    linux-wireless@vger.kernel.org
+ L:    wil6210@qca.qualcomm.com
+ S:    Supported
+ W:    http://wireless.kernel.org/en/users/Drivers/wil6210
+ F:    drivers/net/wireless/ath/wil6210/
  CARL9170 LINUX COMMUNITY WIRELESS DRIVER
  M:    Christian Lamparter <chunkeey@googlemail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -1388,6 -1394,7 +1394,7 @@@ W:      http://linux-atm.sourceforge.ne
  S:    Maintained
  F:    drivers/atm/
  F:    include/linux/atm*
+ F:    include/uapi/linux/atm*
  
  ATMEL AT91 / AT32 MCI DRIVER
  M:    Ludovic Desroches <ludovic.desroches@atmel.com>
@@@ -1406,13 -1413,13 +1413,13 @@@ L:   linux-arm-kernel@lists.infradead.or
  S:    Supported
  F:    drivers/dma/at_hdmac.c
  F:    drivers/dma/at_hdmac_regs.h
- F:    arch/arm/mach-at91/include/mach/at_hdmac.h
+ F:    include/linux/platform_data/dma-atmel.h
  
  ATMEL ISI DRIVER
  M:    Josh Wu <josh.wu@atmel.com>
  L:    linux-media@vger.kernel.org
  S:    Supported
- F:    drivers/media/platform/atmel-isi.c
+ F:    drivers/media/platform/soc_camera/atmel-isi.c
  F:    include/media/atmel-isi.h
  
  ATMEL LCDFB DRIVER
@@@ -1467,6 -1474,7 +1474,7 @@@ W:      http://people.redhat.com/sgrubb/audi
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current.git
  S:    Maintained
  F:    include/linux/audit.h
+ F:    include/uapi/linux/audit.h
  F:    kernel/audit*
  
  AUXILIARY DISPLAY DRIVERS
@@@ -1497,7 -1505,7 +1505,7 @@@ M:      Ralf Baechle <ralf@linux-mips.org
  L:    linux-hams@vger.kernel.org
  W:    http://www.linux-ax25.org/
  S:    Maintained
- F:    include/linux/ax25.h
+ F:    include/uapi/linux/ax25.h
  F:    include/net/ax25.h
  F:    net/ax25/
  
@@@ -1558,7 -1566,7 +1566,7 @@@ M:      "Tigran A. Aivazian" <tigran@aivazia
  S:    Maintained
  F:    Documentation/filesystems/bfs.txt
  F:    fs/bfs/
- F:    include/linux/bfs_fs.h
+ F:    include/uapi/linux/bfs_fs.h
  
  BLACKFIN ARCHITECTURE
  M:    Mike Frysinger <vapier@gentoo.org>
@@@ -1655,7 -1663,7 +1663,7 @@@ L:      netdev@vger.kernel.or
  W:    http://sourceforge.net/projects/bonding/
  S:    Supported
  F:    drivers/net/bonding/
- F:    include/linux/if_bonding.h
+ F:    include/uapi/linux/if_bonding.h
  
  BROADCOM B44 10/100 ETHERNET DRIVER
  M:    Gary Zambrano <zambrano@broadcom.com>
@@@ -1734,6 -1742,7 +1742,7 @@@ L:      linux-scsi@vger.kernel.or
  S:    Supported
  F:    block/bsg.c
  F:    include/linux/bsg.h
+ F:    include/uapi/linux/bsg.h
  
  BT87X AUDIO DRIVER
  M:    Clemens Ladisch <clemens@ladisch.de>
@@@ -1804,7 -1813,7 +1813,7 @@@ L:      netdev@vger.kernel.or
  S:    Supported
  F:    Documentation/networking/caif/
  F:    drivers/net/caif/
- F:    include/linux/caif/
+ F:    include/uapi/linux/caif/
  F:    include/net/caif/
  F:    net/caif/
  
@@@ -1825,11 -1834,11 +1834,11 @@@ W:   http://gitorious.org/linux-ca
  T:    git git://gitorious.org/linux-can/linux-can-next.git
  S:    Maintained
  F:    net/can/
- F:    include/linux/can.h
  F:    include/linux/can/core.h
- F:    include/linux/can/bcm.h
- F:    include/linux/can/raw.h
- F:    include/linux/can/gw.h
+ F:    include/uapi/linux/can.h
+ F:    include/uapi/linux/can/bcm.h
+ F:    include/uapi/linux/can/raw.h
+ F:    include/uapi/linux/can/gw.h
  
  CAN NETWORK DRIVERS
  M:    Wolfgang Grandegger <wg@grandegger.com>
@@@ -1840,15 -1849,16 +1849,16 @@@ T:   git git://gitorious.org/linux-can/li
  S:    Maintained
  F:    drivers/net/can/
  F:    include/linux/can/dev.h
- F:    include/linux/can/error.h
- F:    include/linux/can/netlink.h
  F:    include/linux/can/platform/
+ F:    include/uapi/linux/can/error.h
+ F:    include/uapi/linux/can/netlink.h
  
  CAPABILITIES
  M:    Serge Hallyn <serge.hallyn@canonical.com>
  L:    linux-security-module@vger.kernel.org
  S:    Supported
  F:    include/linux/capability.h
+ F:    include/uapi/linux/capability.h
  F:    security/capability.c
  F:    security/commoncap.c
  F:    kernel/capability.c
@@@ -1861,6 -1871,7 +1871,7 @@@ W:      http://www.ibm.com/developerworks/po
  S:    Supported
  F:    arch/powerpc/include/asm/cell*.h
  F:    arch/powerpc/include/asm/spu*.h
+ F:    arch/powerpc/include/uapi/asm/spu*.h
  F:    arch/powerpc/oprofile/*cell*
  F:    arch/powerpc/platforms/cell/
  
@@@ -1909,7 -1920,7 +1920,7 @@@ W:      http://wireless.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
  S:    Maintained
- F:    include/linux/nl80211.h
+ F:    include/uapi/linux/nl80211.h
  F:    include/net/cfg80211.h
  F:    net/wireless/*
  X:    net/wireless/wext*
@@@ -1961,9 -1972,9 +1972,9 @@@ S:      Maintaine
  F:    drivers/usb/host/ohci-ep93xx.c
  
  CIRRUS LOGIC CS4270 SOUND DRIVER
- M:    Timur Tabi <timur@freescale.com>
+ M:    Timur Tabi <timur@tabi.org>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
- S:    Supported
+ S:    Odd Fixes
  F:    sound/soc/codecs/cs4270*
  
  CLEANCACHE API
@@@ -2012,6 -2023,7 +2023,7 @@@ S:      Maintaine
  F:    Documentation/filesystems/coda.txt
  F:    fs/coda/
  F:    include/linux/coda*.h
+ F:    include/uapi/linux/coda*.h
  
  COMMON CLK FRAMEWORK
  M:    Mike Turquette <mturquette@linaro.org>
@@@ -2266,6 -2278,7 +2278,7 @@@ W:      http://www.cyclades.com
  S:    Orphan
  F:    drivers/tty/cyclades.c
  F:    include/linux/cyclades.h
+ F:    include/uapi/linux/cyclades.h
  
  CYCLADES PC300 DRIVER
  W:    http://www.cyclades.com/
@@@ -2323,6 -2336,7 +2336,7 @@@ L:      dccp@vger.kernel.or
  W:    http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp
  S:    Maintained
  F:    include/linux/dccp.h
+ F:    include/uapi/linux/dccp.h
  F:    include/linux/tfrc.h
  F:    net/dccp/
  
@@@ -2349,7 -2363,7 +2363,7 @@@ M:      Massimo Dal Zotto <dz@debian.org
  W:    http://www.debian.org/~dz/i8k/
  S:    Maintained
  F:    drivers/char/i8k.c
- F:    include/linux/i8k.h
+ F:    include/uapi/linux/i8k.h
  
  DELL SYSTEMS MANAGEMENT BASE DRIVER (dcdbas)
  M:    Doug Warzecha <Douglas_Warzecha@dell.com>
@@@ -2422,6 -2436,7 +2436,7 @@@ S:      Maintaine
  F:    Documentation/filesystems/quota.txt
  F:    fs/quota/
  F:    include/linux/quota*.h
+ F:    include/uapi/linux/quota*.h
  
  DISPLAYLINK USB 2.0 FRAMEBUFFER DRIVER (UDLFB)
  M:    Bernie Thompson <bernie@plugable.com>
@@@ -2528,6 -2543,7 +2543,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/gpu/drm/
  F:    include/drm/
+ F:    include/uapi/drm/
  
  INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets)
  M:    Daniel Vetter <daniel.vetter@ffwll.ch>
@@@ -2537,6 -2553,7 +2553,7 @@@ T:      git git://people.freedesktop.org/~da
  S:    Supported
  F:    drivers/gpu/drm/i915
  F:    include/drm/i915*
+ F:    include/uapi/drm/i915*
  
  DRM DRIVERS FOR EXYNOS
  M:    Inki Dae <inki.dae@samsung.com>
@@@ -2548,6 -2565,7 +2565,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    drivers/gpu/drm/exynos
  F:    include/drm/exynos*
+ F:    include/uapi/drm/exynos*
  
  DRM DRIVERS FOR NVIDIA TEGRA
  M:    Thierry Reding <thierry.reding@avionic-design.de>
@@@ -2622,7 -2640,7 +2640,7 @@@ W:      http://github.com/mkrufk
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
  T:    git git://linuxtv.org/media_tree.git
  S:    Maintained
- F:    drivers/media/usb/dvb-usb-v2/cxusb*
+ F:    drivers/media/usb/dvb-usb/cxusb*
  
  DVB_USB_CYPRESS_FIRMWARE MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
@@@ -2722,6 -2740,7 +2740,7 @@@ L:      netfilter-devel@vger.kernel.or
  W:    http://ebtables.sourceforge.net/
  S:    Maintained
  F:    include/linux/netfilter_bridge/ebt_*.h
+ F:    include/uapi/linux/netfilter_bridge/ebt_*.h
  F:    net/bridge/netfilter/ebt*.c
  
  EC100 MEDIA DRIVER
@@@ -2933,12 -2952,6 +2952,6 @@@ M:     Maxim Levitsky <maximlevitsky@gmail.
  S:    Maintained
  F:    drivers/media/rc/ene_ir.*
  
- EPSON 1355 FRAMEBUFFER DRIVER
- M:    Christopher Hoover <ch@murgatroid.com>
- M:    Christopher Hoover <ch@hpl.hp.com>
- S:    Maintained
- F:    drivers/video/epson1355fb.c
  EPSON S1D13XXX FRAMEBUFFER DRIVER
  M:    Kristoffer Ericson <kristoffer.ericson@gmail.com>
  S:    Maintained
@@@ -3051,6 -3064,7 +3064,7 @@@ M:      Eric Paris <eparis@redhat.com
  S:    Maintained
  F:    fs/notify/fanotify/
  F:    include/linux/fanotify.h
+ F:    include/uapi/linux/fanotify.h
  
  FARSYNC SYNCHRONOUS DRIVER
  M:    Kevin Curtis <kevin.curtis@farsite.co.uk>
@@@ -3074,6 -3088,7 +3088,7 @@@ F:      drivers/scsi/fcoe
  F:    include/scsi/fc/
  F:    include/scsi/libfc.h
  F:    include/scsi/libfcoe.h
+ F:    include/uapi/scsi/fc/
  
  FILE LOCKING (flock() and fcntl()/lockf())
  M:    Matthew Wilcox <matthew@wil.cx>
@@@ -3081,6 -3096,8 +3096,8 @@@ L:      linux-fsdevel@vger.kernel.or
  S:    Maintained
  F:    include/linux/fcntl.h
  F:    include/linux/fs.h
+ F:    include/uapi/linux/fcntl.h
+ F:    include/uapi/linux/fs.h
  F:    fs/fcntl.c
  F:    fs/locks.c
  
@@@ -3170,11 -3187,13 +3187,13 @@@ F:   Documentation/devicetree/bindings/fb
  F:    drivers/video/
  F:    include/video/
  F:    include/linux/fb.h
+ F:    include/uapi/video/
+ F:    include/uapi/linux/fb.h
  
  FREESCALE DIU FRAMEBUFFER DRIVER
- M:    Timur Tabi <timur@freescale.com>
+ M:    Timur Tabi <timur@tabi.org>
  L:    linux-fbdev@vger.kernel.org
- S:    Supported
+ S:    Maintained
  F:    drivers/video/fsl-diu-fb.*
  
  FREESCALE DMA DRIVER
@@@ -3196,7 -3215,7 +3215,7 @@@ M:      Sascha Hauer <kernel@pengutronix.de
  L:    linux-fbdev@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
- F:    arch/arm/plat-mxc/include/mach/imxfb.h
+ F:    include/linux/platform_data/video-imxfb.h
  F:    drivers/video/imxfb.c
  
  FREESCALE SOC FS_ENET DRIVER
@@@ -3209,9 -3228,8 +3228,8 @@@ F:      drivers/net/ethernet/freescale/fs_en
  F:    include/linux/fs_enet_pd.h
  
  FREESCALE QUICC ENGINE LIBRARY
- M:    Timur Tabi <timur@freescale.com>
  L:    linuxppc-dev@lists.ozlabs.org
- S:    Supported
+ S:    Orphan
  F:    arch/powerpc/sysdev/qe_lib/
  F:    arch/powerpc/include/asm/*qe.h
  
@@@ -3230,16 -3248,16 +3248,16 @@@ S:   Maintaine
  F:    drivers/net/ethernet/freescale/ucc_geth*
  
  FREESCALE QUICC ENGINE UCC UART DRIVER
- M:    Timur Tabi <timur@freescale.com>
+ M:    Timur Tabi <timur@tabi.org>
  L:    linuxppc-dev@lists.ozlabs.org
- S:    Supported
+ S:    Maintained
  F:    drivers/tty/serial/ucc_uart.c
  
  FREESCALE SOC SOUND DRIVERS
- M:    Timur Tabi <timur@freescale.com>
+ M:    Timur Tabi <timur@tabi.org>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  L:    linuxppc-dev@lists.ozlabs.org
- S:    Supported
+ S:    Maintained
  F:    sound/soc/fsl/fsl*
  F:    sound/soc/fsl/mpc8610_hpcd.c
  
@@@ -3273,6 -3291,16 +3291,16 @@@ F:    Documentation/filesystems/caching
  F:    fs/fscache/
  F:    include/linux/fscache*.h
  
+ F2FS FILE SYSTEM
+ M:    Jaegeuk Kim <jaegeuk.kim@samsung.com>
+ L:    linux-f2fs-devel@lists.sourceforge.net
+ W:    http://en.wikipedia.org/wiki/F2FS
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git
+ S:    Maintained
+ F:    Documentation/filesystems/f2fs.txt
+ F:    fs/f2fs/
+ F:    include/linux/f2fs_fs.h
  FUJITSU FR-V (FRV) PORT
  M:    David Howells <dhowells@redhat.com>
  S:    Maintained
@@@ -3304,7 -3332,7 +3332,7 @@@ L:      fuse-devel@lists.sourceforge.ne
  W:    http://fuse.sourceforge.net/
  S:    Maintained
  F:    fs/fuse/
- F:    include/linux/fuse.h
+ F:    include/uapi/linux/fuse.h
  
  FUTURE DOMAIN TMC-16x0 SCSI DRIVER (16-bit)
  M:    Rik Faith <faith@cs.unc.edu>
@@@ -3351,6 -3379,7 +3379,7 @@@ L:      linux-arch@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git
  S:    Maintained
  F:    include/asm-generic
+ F:    include/uapi/asm-generic
  
  GENERIC UIO DRIVER FOR PCI DEVICES
  M:    "Michael S. Tsirkin" <mst@redhat.com>
@@@ -3367,7 -3396,7 +3396,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    Documentation/filesystems/gfs2*.txt
  F:    fs/gfs2/
- F:    include/linux/gfs2_ondisk.h
+ F:    include/uapi/linux/gfs2_ondisk.h
  
  GIGASET ISDN DRIVERS
  M:    Hansjoerg Lipp <hjlipp@web.de>
@@@ -3377,7 -3406,7 +3406,7 @@@ W:      http://gigaset307x.sourceforge.net
  S:    Maintained
  F:    Documentation/isdn/README.gigaset
  F:    drivers/isdn/gigaset/
- F:    include/linux/gigaset_dev.h
+ F:    include/uapi/linux/gigaset_dev.h
  
  GPIO SUBSYSTEM
  M:    Grant Likely <grant.likely@secretlab.ca>
@@@ -3534,6 -3563,7 +3563,7 @@@ S:      Supporte
  F:    Documentation/scsi/hpsa.txt
  F:    drivers/scsi/hpsa*.[ch]
  F:    include/linux/cciss*.h
+ F:    include/uapi/linux/cciss*.h
  
  HEWLETT-PACKARD SMART CISS RAID DRIVER (cciss)
  M:    Mike Miller <mike.miller@hp.com>
@@@ -3542,6 -3572,7 +3572,7 @@@ S:      Supporte
  F:    Documentation/blockdev/cciss.txt
  F:    drivers/block/cciss*
  F:    include/linux/cciss_ioctl.h
+ F:    include/uapi/linux/cciss_ioctl.h
  
  HFS FILESYSTEM
  L:    linux-fsdevel@vger.kernel.org
@@@ -3576,6 -3607,7 +3607,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/hid/
  F:    include/linux/hid*
+ F:    include/uapi/linux/hid*
  
  HIGH-RESOLUTION TIMERS, CLOCKEVENTS, DYNTICKS
  M:    Thomas Gleixner <tglx@linutronix.de>
@@@ -3607,7 -3639,7 +3639,7 @@@ M:      Jes Sorensen <jes@trained-monkey.org
  L:    linux-hippi@sunsite.dk
  S:    Maintained
  F:    include/linux/hippidevice.h
- F:    include/linux/if_hippi.h
+ F:    include/uapi/linux/if_hippi.h
  F:    net/802/hippi.c
  F:    drivers/net/hippi/
  
@@@ -3635,6 -3667,7 +3667,7 @@@ S:      Maintaine
  F:    Documentation/timers/hpet.txt
  F:    drivers/char/hpet.c
  F:    include/linux/hpet.h
+ F:    include/uapi/linux/hpet.h
  
  HPET: x86
  M:    "Venkatesh Pallipadi (Venki)" <venki@google.com>
@@@ -3735,6 -3768,8 +3768,8 @@@ F:      Documentation/i2c
  F:    drivers/i2c/
  F:    include/linux/i2c.h
  F:    include/linux/i2c-*.h
+ F:    include/uapi/linux/i2c.h
+ F:    include/uapi/linux/i2c-*.h
  
  I2C-TAOS-EVM DRIVER
  M:    Jean Delvare <khali@linux-fr.org>
@@@ -3850,7 -3885,7 +3885,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    net/ieee802154/
  F:    net/mac802154/
- F:    drivers/ieee802154/
+ F:    drivers/net/ieee802154/
  
  IGUANAWORKS USB IR TRANSCEIVER
  M:    Sean Young <sean@mess.org>
@@@ -3901,7 -3936,7 +3936,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    Documentation/infiniband/
  F:    drivers/infiniband/
- F:    include/linux/if_infiniband.h
+ F:    include/uapi/linux/if_infiniband.h
  
  INOTIFY
  M:    John McCutchan <john@johnmccutchan.com>
@@@ -3911,6 -3946,7 +3946,7 @@@ S:      Maintaine
  F:    Documentation/filesystems/inotify.txt
  F:    fs/notify/inotify/
  F:    include/linux/inotify.h
+ F:    include/uapi/linux/inotify.h
  
  INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS
  M:    Dmitry Torokhov <dmitry.torokhov@gmail.com>
@@@ -3921,6 -3957,7 +3957,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/input/
  F:    include/linux/input.h
+ F:    include/uapi/linux/input.h
  F:    include/linux/input/
  
  INPUT MULTITOUCH (MT) PROTOCOL
@@@ -3941,7 -3978,6 +3978,6 @@@ L:      linux-scsi@vger.kernel.or
  T:    git git://git.code.sf.net/p/intel-sas/isci
  S:    Supported
  F:    drivers/scsi/isci/
- F:    firmware/isci/
  
  INTEL IDLE DRIVER
  M:    Len Brown <lenb@kernel.org>
@@@ -4036,12 -4072,6 +4072,6 @@@ F:     Documentation/networking/ixgbe.tx
  F:    Documentation/networking/ixgbevf.txt
  F:    drivers/net/ethernet/intel/
  
- INTEL MRST PMU DRIVER
- M:    Len Brown <len.brown@intel.com>
- L:    linux-pm@vger.kernel.org
- S:    Supported
- F:    arch/x86/platform/mrst/pmu.*
  INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
  M:    Stanislav Yakovlev <stas.yakovlev@gmail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -4070,7 -4100,7 +4100,7 @@@ S:      Supporte
  W:    http://linuxwimax.org
  F:    Documentation/wimax/README.i2400m
  F:    drivers/net/wimax/i2400m/
- F:    include/linux/wimax/i2400m.h
+ F:    include/uapi/linux/wimax/i2400m.h
  
  INTEL WIRELESS 3945ABG/BG, 4965AGN (iwlegacy)
  M:    Stanislaw Gruszka <sgruszka@redhat.com>
@@@ -4092,9 -4122,9 +4122,9 @@@ INTEL MANAGEMENT ENGINE (mei
  M:    Tomas Winkler <tomas.winkler@intel.com>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
- F:    include/linux/mei.h
+ F:    include/uapi/linux/mei.h
  F:    drivers/misc/mei/*
- F:    Documentation/mei/*
+ F:    Documentation/misc-devices/mei/*
  
  IOC3 ETHERNET DRIVER
  M:    Ralf Baechle <ralf@linux-mips.org>
@@@ -4134,6 -4164,7 +4164,7 @@@ S:      Supporte
  F:    Documentation/IPMI.txt
  F:    drivers/char/ipmi/
  F:    include/linux/ipmi*
+ F:    include/uapi/linux/ipmi*
  
  IPS SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <aacraid@adaptec.com>
@@@ -4151,7 -4182,7 +4182,7 @@@ L:      lvs-devel@vger.kernel.or
  S:    Maintained
  F:    Documentation/networking/ipvs-sysctl.txt
  F:    include/net/ip_vs.h
- F:    include/linux/ip_vs.h
+ F:    include/uapi/linux/ip_vs.h
  F:    net/netfilter/ipvs/
  
  IPWIRELESS DRIVER
@@@ -4164,8 -4195,8 +4195,8 @@@ IPX NETWORK LAYE
  M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
  L:    netdev@vger.kernel.org
  S:    Maintained
- F:    include/linux/ipx.h
  F:    include/net/ipx.h
+ F:    include/uapi/linux/ipx.h
  F:    net/ipx/
  
  IRDA SUBSYSTEM
@@@ -4228,6 -4259,8 +4259,8 @@@ F:      Documentation/isdn
  F:    drivers/isdn/
  F:    include/linux/isdn.h
  F:    include/linux/isdn/
+ F:    include/uapi/linux/isdn.h
+ F:    include/uapi/linux/isdn/
  
  ISDN SUBSYSTEM (Eicon active card driver)
  M:    Armin Schindler <mac@melware.de>
@@@ -4268,7 -4301,7 +4301,7 @@@ W:      http://www.ivtvdriver.or
  S:    Maintained
  F:    Documentation/video4linux/*.ivtv
  F:    drivers/media/pci/ivtv/
- F:    include/linux/ivtv*
+ F:    include/uapi/linux/ivtv*
  
  IX2505V MEDIA DRIVER
  M:    Malcolm Priestley <tvboxspy@gmail.com>
@@@ -4306,7 -4339,7 +4339,7 @@@ L:      linux-mtd@lists.infradead.or
  W:    http://www.linux-mtd.infradead.org/doc/jffs2.html
  S:    Maintained
  F:    fs/jffs2/
- F:    include/linux/jffs2.h
+ F:    include/uapi/linux/jffs2.h
  
  JOURNALLING LAYER FOR BLOCK DEVICES (JBD)
  M:    Andrew Morton <akpm@linux-foundation.org>
@@@ -4389,11 -4422,13 +4422,13 @@@ W:   http://nfs.sourceforge.net
  S:    Supported
  F:    fs/nfsd/
  F:    include/linux/nfsd/
+ F:    include/uapi/linux/nfsd/
  F:    fs/lockd/
  F:    fs/nfs_common/
  F:    net/sunrpc/
  F:    include/linux/lockd/
  F:    include/linux/sunrpc/
+ F:    include/uapi/linux/sunrpc/
  
  KERNEL VIRTUAL MACHINE (KVM)
  M:    Marcelo Tosatti <mtosatti@redhat.com>
@@@ -4405,6 -4440,7 +4440,7 @@@ F:      Documentation/*/kvm.tx
  F:    arch/*/kvm/
  F:    arch/*/include/asm/kvm*
  F:    include/linux/kvm*
+ F:    include/uapi/linux/kvm*
  F:    virt/kvm/
  
  KERNEL VIRTUAL MACHINE (KVM) FOR AMD-V
@@@ -4451,6 -4487,7 +4487,7 @@@ W:      http://kernel.org/pub/linux/utils/ke
  L:    kexec@lists.infradead.org
  S:    Maintained
  F:    include/linux/kexec.h
+ F:    include/uapi/linux/kexec.h
  F:    kernel/kexec.c
  
  KEYS/KEYRINGS:
@@@ -4692,6 -4729,7 +4729,7 @@@ LLC (802.2
  M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
  S:    Maintained
  F:    include/linux/llc.h
+ F:    include/uapi/linux/llc.h
  F:    include/net/llc*
  F:    net/llc/
  
@@@ -4912,7 -4950,7 +4950,7 @@@ MATROX FRAMEBUFFER DRIVE
  L:    linux-fbdev@vger.kernel.org
  S:    Orphan
  F:    drivers/video/matrox/matroxfb_*
- F:    include/linux/matroxfb.h
+ F:    include/uapi/linux/matroxfb.h
  
  MAX16065 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <linux@roeck-us.net>
@@@ -4994,7 -5032,7 +5032,7 @@@ T:      git git://git.infradead.org/mtd-2.6.
  S:    Maintained
  F:    drivers/mtd/
  F:    include/linux/mtd/
- F:    include/mtd/
+ F:    include/uapi/mtd/
  
  MICROBLAZE ARCHITECTURE
  M:    Michal Simek <monstr@monstr.eu>
@@@ -5032,12 -5070,6 +5070,6 @@@ F:     Documentation/video4linux/meye.tx
  F:    drivers/media/pci/meye/
  F:    include/uapi/linux/meye.h
  
- MOTOROLA IMX MMC/SD HOST CONTROLLER INTERFACE DRIVER
- M:    Pavel Pisa <ppisa@pikron.com>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- S:    Maintained
- F:    drivers/mmc/host/imxmmc.*
  MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
  M:    Jiri Slaby <jirislaby@gmail.com>
  S:    Maintained
@@@ -5052,7 -5084,7 +5084,7 @@@ S:      Maintaine
  F:    drivers/media/radio/radio-mr800.c
  
  MSI LAPTOP SUPPORT
- M:    "Lee, Chun-Yi" <jlee@novell.com>
+ M:    "Lee, Chun-Yi" <jlee@suse.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/msi-laptop.c
@@@ -5076,6 -5108,7 +5108,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/mmc/
  F:    include/linux/mmc/
+ F:    include/uapi/linux/mmc/
  
  MULTIMEDIA CARD (MMC) ETC. OVER SPI
  S:    Orphan
@@@ -5176,6 -5209,8 +5209,8 @@@ S:      Supporte
  F:    include/linux/netfilter*
  F:    include/linux/netfilter/
  F:    include/net/netfilter/
+ F:    include/uapi/linux/netfilter*
+ F:    include/uapi/linux/netfilter/
  F:    net/*/netfilter.c
  F:    net/*/netfilter/
  F:    net/netfilter/
@@@ -5194,8 -5229,8 +5229,8 @@@ M:      Ralf Baechle <ralf@linux-mips.org
  L:    linux-hams@vger.kernel.org
  W:    http://www.linux-ax25.org/
  S:    Maintained
- F:    include/linux/netrom.h
  F:    include/net/netrom.h
+ F:    include/uapi/linux/netrom.h
  F:    net/netrom/
  
  NETWORK BLOCK DEVICE (NBD)
@@@ -5204,6 -5239,7 +5239,7 @@@ S:      Maintaine
  F:    Documentation/blockdev/nbd.txt
  F:    drivers/block/nbd.c
  F:    include/linux/nbd.h
+ F:    include/uapi/linux/nbd.h
  
  NETWORK DROP MONITOR
  M:    Neil Horman <nhorman@tuxdriver.com>
@@@ -5225,6 -5261,9 +5261,9 @@@ F:      include/net
  F:    include/linux/in.h
  F:    include/linux/net.h
  F:    include/linux/netdevice.h
+ F:    include/uapi/linux/in.h
+ F:    include/uapi/linux/net.h
+ F:    include/uapi/linux/netdevice.h
  
  NETWORKING [IPv4/IPv6]
  M:    "David S. Miller" <davem@davemloft.net>
@@@ -5270,6 -5309,7 +5309,7 @@@ F:      net/rfkill
  F:    net/wireless/
  F:    include/net/ieee80211*
  F:    include/linux/wireless.h
+ F:    include/uapi/linux/wireless.h
  F:    include/net/iw_handler.h
  F:    drivers/net/wireless/
  
@@@ -5289,6 -5329,8 +5329,8 @@@ F:      include/linux/fcdevice.
  F:    include/linux/fddidevice.h
  F:    include/linux/hippidevice.h
  F:    include/linux/inetdevice.h
+ F:    include/uapi/linux/if_*
+ F:    include/uapi/linux/netdevice.h
  
  NETXEN (1/10) GbE SUPPORT
  M:    Sony Chacko <sony.chacko@qlogic.com>
@@@ -5306,8 -5348,8 +5348,8 @@@ L:      linux-wireless@vger.kernel.or
  L:    linux-nfc@lists.01.org (moderated for non-subscribers)
  S:    Maintained
  F:    net/nfc/
- F:    include/linux/nfc.h
  F:    include/net/nfc/
+ F:    include/uapi/linux/nfc.h
  F:    drivers/nfc/
  F:    include/linux/platform_data/pn544.h
  
@@@ -5324,6 -5366,8 +5366,8 @@@ F:      net/sunrpc
  F:    include/linux/lockd/
  F:    include/linux/nfs*
  F:    include/linux/sunrpc/
+ F:    include/uapi/linux/nfs*
+ F:    include/uapi/linux/sunrpc/
  
  NI5010 NETWORK DRIVER
  M:    Jan-Pascal van Best <janpascal@vanbest.org>
@@@ -5470,8 -5514,7 +5514,7 @@@ M:      Benoît Cousson <b-cousson@ti.com
  M:    Paul Walmsley <paul@pwsan.com>
  L:    linux-omap@vger.kernel.org
  S:    Maintained
- F:    arch/arm/mach-omap2/omap_hwmod.c
- F:    arch/arm/plat-omap/include/plat/omap_hwmod.h
+ F:    arch/arm/mach-omap2/omap_hwmod.*
  
  OMAP HWMOD DATA FOR OMAP4-BASED DEVICES
  M:    Benoît Cousson <b-cousson@ti.com>
@@@ -5513,6 -5556,7 +5556,7 @@@ M:      Harald Welte <laforge@gnumonks.org
  S:    Maintained
  F:    drivers/char/pcmcia/cm4000_cs.c
  F:    include/linux/cm4000_cs.h
+ F:    include/uapi/linux/cm4000_cs.h
  
  OMNIKEY CARDMAN 4040 DRIVER
  M:    Harald Welte <laforge@gnumonks.org>
@@@ -5671,7 -5715,7 +5715,7 @@@ S:      Orpha
  F:    drivers/parport/
  F:    include/linux/parport*.h
  F:    drivers/char/ppdev.c
- F:    include/linux/ppdev.h
+ F:    include/uapi/linux/ppdev.h
  
  PARAVIRT_OPS INTERFACE
  M:    Jeremy Fitzhardinge <jeremy@goop.org>
@@@ -5812,11 -5856,11 +5856,11 @@@ T:   git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    kernel/events/*
  F:    include/linux/perf_event.h
+ F:    include/uapi/linux/perf_event.h
  F:    arch/*/kernel/perf_event*.c
  F:    arch/*/kernel/*/perf_event*.c
  F:    arch/*/kernel/*/*/perf_event*.c
  F:    arch/*/include/asm/perf_event.h
- F:    arch/*/lib/perf_event*.c
  F:    arch/*/kernel/perf_callchain.c
  F:    tools/perf/
  
@@@ -5825,6 -5869,7 +5869,7 @@@ M:      Christoph Hellwig <hch@infradead.org
  L:    linux-abi-devel@lists.sourceforge.net
  S:    Maintained
  F:    include/linux/personality.h
+ F:    include/uapi/linux/personality.h
  
  PHONET PROTOCOL
  M:    Remi Denis-Courmont <courmisch@gmail.com>
@@@ -5832,6 -5877,7 +5877,7 @@@ S:      Supporte
  F:    Documentation/networking/phonet.txt
  F:    include/linux/phonet.h
  F:    include/net/phonet/
+ F:    include/uapi/linux/phonet.h
  F:    net/phonet/
  
  PHRAM MTD DRIVER
@@@ -5880,6 -5926,7 +5926,7 @@@ M:      Jiri Kosina <jkosina@suse.cz
  S:    Maintained
  F:    drivers/block/pktcdvd.c
  F:    include/linux/pktcdvd.h
+ F:    include/uapi/linux/pktcdvd.h
  
  PKUNITY SOC DRIVERS
  M:    Guan Xuetao <gxt@mprc.pku.edu.cn>
@@@ -5954,7 -6001,7 +6001,7 @@@ PPP OVER ATM (RFC 2364
  M:    Mitchell Blank Jr <mitch@sfgoth.com>
  S:    Maintained
  F:    net/atm/pppoatm.c
- F:    include/linux/atmppp.h
+ F:    include/uapi/linux/atmppp.h
  
  PPP OVER ETHERNET
  M:    Michal Ostrowski <mostrows@earthlink.net>
@@@ -5967,6 -6014,7 +6014,7 @@@ M:      James Chapman <jchapman@katalix.com
  S:    Maintained
  F:    net/l2tp/l2tp_ppp.c
  F:    include/linux/if_pppol2tp.h
+ F:    include/uapi/linux/if_pppol2tp.h
  
  PPS SUPPORT
  M:    Rodolfo Giometti <giometti@enneenne.com>
@@@ -6064,6 -6112,7 +6112,7 @@@ F:      include/asm-generic/syscall.
  F:    include/linux/ptrace.h
  F:    include/linux/regset.h
  F:    include/linux/tracehook.h
+ F:    include/uapi/linux/ptrace.h
  F:    kernel/ptrace.c
  
  PVRUSB2 VIDEO4LINUX DRIVER
@@@ -6092,7 -6141,6 +6141,6 @@@ T:      git git://gitorious.org/linux-pwm/li
  F:    Documentation/pwm.txt
  F:    Documentation/devicetree/bindings/pwm/
  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
@@@ -6188,8 -6236,8 +6236,8 @@@ M:      Anders Larsen <al@alarsen.net
  W:    http://www.alarsen.net/linux/qnx4fs/
  S:    Maintained
  F:    fs/qnx4/
- F:    include/linux/qnx4_fs.h
- F:    include/linux/qnxtypes.h
+ F:    include/uapi/linux/qnx4_fs.h
+ F:    include/uapi/linux/qnxtypes.h
  
  QT1010 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
@@@ -6223,7 -6271,7 +6271,7 @@@ M:      Benjamin Herrenschmidt <benh@kernel.
  L:    linux-fbdev@vger.kernel.org
  S:    Maintained
  F:    drivers/video/aty/radeon*
- F:    include/linux/radeonfb.h
+ F:    include/uapi/linux/radeonfb.h
  
  RADIOSHARK RADIO DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
@@@ -6324,6 -6372,7 +6372,7 @@@ S:      Maintaine
  F:    Documentation/rtc.txt
  F:    drivers/rtc/
  F:    include/linux/rtc.h
+ F:    include/uapi/linux/rtc.h
  
  REISERFS FILE SYSTEM
  L:    reiserfs-devel@vger.kernel.org
@@@ -6378,8 -6427,8 +6427,8 @@@ M:      Ralf Baechle <ralf@linux-mips.org
  L:    linux-hams@vger.kernel.org
  W:    http://www.linux-ax25.org/
  S:    Maintained
- F:    include/linux/rose.h
  F:    include/net/rose.h
+ F:    include/uapi/linux/rose.h
  F:    net/rose/
  
  RTL2830 MEDIA DRIVER
@@@ -6536,7 -6585,7 +6585,7 @@@ F:      drivers/media/platform/s3c-camif
  F:    include/media/s3c_camif.h
  
  SERIAL DRIVERS
- M:    Alan Cox <alan@linux.intel.com>
+ M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  L:    linux-serial@vger.kernel.org
  S:    Maintained
  F:    drivers/tty/serial
@@@ -6556,6 -6605,8 +6605,8 @@@ S:      Supporte
  F:    include/linux/clocksource.h
  F:    include/linux/time.h
  F:    include/linux/timex.h
+ F:    include/uapi/linux/time.h
+ F:    include/uapi/linux/timex.h
  F:    kernel/time/clocksource.c
  F:    kernel/time/time*.c
  F:    kernel/time/ntp.c
@@@ -6580,6 -6631,7 +6631,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    kernel/sched/
  F:    include/linux/sched.h
+ F:    include/uapi/linux/sched.h
  
  SCORE ARCHITECTURE
  M:    Chen Liqin <liqin.chen@sunplusct.com>
@@@ -6733,7 -6785,7 +6785,7 @@@ SENSABLE PHANTO
  M:    Jiri Slaby <jirislaby@gmail.com>
  S:    Maintained
  F:    drivers/misc/phantom.c
- F:    include/linux/phantom.h
+ F:    include/uapi/linux/phantom.h
  
  SERIAL ATA (SATA) SUBSYSTEM
  M:    Jeff Garzik <jgarzik@pobox.com>
@@@ -6991,6 -7043,7 +7043,7 @@@ L:      linux-raid@vger.kernel.or
  S:    Supported
  F:    drivers/md/
  F:    include/linux/raid/
+ F:    include/uapi/linux/raid/
  
  SONIC NETWORK DRIVER
  M:    Thomas Bogendoerfer <tsbogend@alpha.franken.de>
@@@ -7031,6 -7084,7 +7084,7 @@@ T:      git git://git.alsa-project.org/alsa-
  S:    Maintained
  F:    Documentation/sound/
  F:    include/sound/
+ F:    include/uapi/sound/
  F:    sound/
  
  SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC)
@@@ -7131,6 -7185,7 +7185,7 @@@ S:      Maintaine
  F:    Documentation/spi/
  F:    drivers/spi/
  F:    include/linux/spi/
+ F:    include/uapi/linux/spi/
  
  SPIDERNET NETWORK DRIVER for CELL
  M:    Ishizaki Kou <kou.ishizaki@toshiba.co.jp>
@@@ -7248,7 -7303,8 +7303,7 @@@ S:      Odd Fixe
  F:    drivers/staging/olpc_dcon/
  
  STAGING - OZMO DEVICES USB OVER WIFI DRIVER
 -M:    Rupesh Gujare <rgujare@ozmodevices.com>
 -M:    Chris Kelly <ckelly@ozmodevices.com>
 +M:    Rupesh Gujare <rupesh.gujare@atmel.com>
  S:    Maintained
  F:    drivers/staging/ozwpan/
  
@@@ -7266,7 -7322,7 +7321,7 @@@ F:      drivers/staging/rtl8712
  STAGING - SILICON MOTION SM7XX FRAME BUFFER DRIVER
  M:    Teddy Wang <teddy.wang@siliconmotion.com.cn>
  S:    Odd Fixes
- F:    drivers/staging/sm7xx/
+ F:    drivers/staging/sm7xxfb/
  
  STAGING - SOFTLOGIC 6x10 MPEG CODEC
  M:    Ben Collins <bcollins@bluecherry.net>
@@@ -7284,7 -7340,7 +7339,7 @@@ S:      Odd Fixe
  F:    drivers/staging/speakup/
  
  STAGING - TI DSP BRIDGE DRIVERS
- M:    Omar Ramirez Luna <omar.ramirez@ti.com>
+ M:    Omar Ramirez Luna <omar.ramirez@copitl.com>
  S:    Odd Fixes
  F:    drivers/staging/tidspbridge/
  
@@@ -7392,8 -7448,8 +7447,8 @@@ TC CLASSIFIE
  M:    Jamal Hadi Salim <jhs@mojatatu.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
- F:    include/linux/pkt_cls.h
  F:    include/net/pkt_cls.h
+ F:    include/uapi/linux/pkt_cls.h
  F:    net/sched/
  
  TCP LOW PRIORITY MODULE
@@@ -7485,6 -7541,7 +7540,7 @@@ L:      netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/team/
  F:    include/linux/if_team.h
+ F:    include/uapi/linux/if_team.h
  
  TECHNOTREND USB IR RECEIVER
  M:    Sean Young <sean@mess.org>
@@@ -7583,7 -7640,7 +7639,7 @@@ L:      netdev@vger.kernel.org (core kernel 
  L:    tipc-discussion@lists.sourceforge.net (user apps, general discussion)
  W:    http://tipc.sourceforge.net/
  S:    Maintained
- F:    include/linux/tipc*.h
+ F:    include/uapi/linux/tipc*.h
  F:    net/tipc/
  
  TILE ARCHITECTURE
@@@ -7633,6 -7690,7 +7689,7 @@@ W:      http://www.buzzard.org.uk/toshiba
  S:    Maintained
  F:    drivers/char/toshiba.c
  F:    include/linux/toshiba.h
+ F:    include/uapi/linux/toshiba.h
  
  TMIO MMC DRIVER
  M:    Guennadi Liakhovetski <g.liakhovetski@gmx.de>
@@@ -7700,6 -7758,9 +7757,9 @@@ F:      drivers/tty/serial/serial_core.
  F:    include/linux/serial_core.h
  F:    include/linux/serial.h
  F:    include/linux/tty.h
+ F:    include/uapi/linux/serial_core.h
+ F:    include/uapi/linux/serial.h
+ F:    include/uapi/linux/tty.h
  
  TUA9001 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
@@@ -7779,7 -7840,7 +7839,7 @@@ M:      David Herrmann <dh.herrmann@googlema
  L:    linux-input@vger.kernel.org
  S:    Maintained
  F:    drivers/hid/uhid.c
- F:    include/linux/uhid.h
+ F:    include/uapi/linux/uhid.h
  
  ULTRA-WIDEBAND (UWB) SUBSYSTEM:
  L:    linux-usb@vger.kernel.org
@@@ -7808,6 -7869,7 +7868,7 @@@ S:      Maintaine
  F:    Documentation/cdrom/
  F:    drivers/cdrom/cdrom.c
  F:    include/linux/cdrom.h
+ F:    include/uapi/linux/cdrom.h
  
  UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER
  M:    Vinayak Holikatti <vinholikatti@gmail.com>
@@@ -7825,7 -7887,7 +7886,7 @@@ T:      git git://git.infradead.org/ubi-2.6.
  S:    Maintained
  F:    drivers/mtd/ubi/
  F:    include/linux/mtd/ubi.h
- F:    include/mtd/ubi-user.h
+ F:    include/uapi/mtd/ubi-user.h
  
  UNSORTED BLOCK IMAGES (UBI) Fastmap
  M:    Richard Weinberger <richard@nod.at>
@@@ -7859,7 -7921,7 +7920,7 @@@ M:      Oliver Neukum <oliver@neukum.org
  L:    linux-usb@vger.kernel.org
  S:    Maintained
  F:    drivers/net/usb/cdc_*.c
- F:    include/linux/usb/cdc.h
+ F:    include/uapi/linux/usb/cdc.h
  
  USB CYPRESS C67X00 DRIVER
  M:    Peter Korsgaard <jacmet@sunsite.dk>
@@@ -8180,6 -8242,7 +8241,7 @@@ S:      Maintaine
  F:    Documentation/vfio.txt
  F:    drivers/vfio/
  F:    include/linux/vfio.h
+ F:    include/uapi/linux/vfio.h
  
  VIDEOBUF2 FRAMEWORK
  M:    Pawel Osciak <pawel@osciak.com>
@@@ -8196,6 -8259,7 +8258,7 @@@ L:      virtualization@lists.linux-foundatio
  S:    Maintained
  F:    drivers/char/virtio_console.c
  F:    include/linux/virtio_console.h
+ F:    include/uapi/linux/virtio_console.h
  
  VIRTIO CORE, NET AND BLOCK DRIVERS
  M:    Rusty Russell <rusty@rustcorp.com.au>
@@@ -8214,7 -8278,7 +8277,7 @@@ L:      virtualization@lists.linux-foundatio
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/vhost/
- F:    include/linux/vhost.h
+ F:    include/uapi/linux/vhost.h
  
  VIA RHINE NETWORK DRIVER
  M:    Roger Luethi <rl@hellgate.ch>
@@@ -8354,6 -8418,7 +8417,7 @@@ S:      Maintaine
  F:    Documentation/watchdog/
  F:    drivers/watchdog/
  F:    include/linux/watchdog.h
+ F:    include/uapi/linux/watchdog.h
  
  WD7000 SCSI DRIVER
  M:    Miroslav Zagorac <zaga@fly.cc.fer.hr>
@@@ -8379,9 -8444,9 +8443,9 @@@ L:      wimax@linuxwimax.or
  S:    Supported
  W:    http://linuxwimax.org
  F:    Documentation/wimax/README.wimax
- F:    include/linux/wimax.h
  F:    include/linux/wimax/debug.h
  F:    include/net/wimax.h
+ F:    include/uapi/linux/wimax.h
  F:    net/wimax/
  
  WISTRON LAPTOP BUTTON DRIVER
@@@ -8467,7 -8532,7 +8531,7 @@@ F:      Documentation/x86
  F:    arch/x86/
  
  X86 PLATFORM DRIVERS
- M:    Matthew Garrett <mjg@redhat.com>
+ M:    Matthew Garrett <matthew.garrett@nebula.com>
  L:    platform-driver-x86@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86.git
  S:    Maintained
@@@ -8499,6 -8564,7 +8563,7 @@@ F:      drivers/*/xen-*front.
  F:    drivers/xen/
  F:    arch/x86/include/asm/xen/
  F:    include/xen/
+ F:    include/uapi/xen/
  
  XEN HYPERVISOR ARM
  M:    Stefano Stabellini <stefano.stabellini@eu.citrix.com>
index 253684ebc572183ac435cf5517d1118c0d60ba68,0b0c3c66f6c07f8778c96ec76b513db80a16cf7a..dd8ea428493450cfce48dfb3161202d85b5d9177
@@@ -28,6 -28,7 +28,6 @@@
  #include <linux/iio/buffer.h>
  #include <linux/iio/trigger_consumer.h>
  #include <linux/iio/triggered_buffer.h>
 -#include "../common/hid-sensors/hid-sensor-attributes.h"
  #include "../common/hid-sensors/hid-sensor-trigger.h"
  
  /*Format: HID-SENSOR-usage_id_in_hex*/
@@@ -43,7 -44,7 +43,7 @@@ enum accel_3d_channel 
  
  struct accel_3d_state {
        struct hid_sensor_hub_callbacks callbacks;
 -      struct hid_sensor_iio_common common_attributes;
 +      struct hid_sensor_common common_attributes;
        struct hid_sensor_hub_attribute_info accel[ACCEL_3D_CHANNEL_MAX];
        u32 accel_val[ACCEL_3D_CHANNEL_MAX];
  };
@@@ -277,7 -278,7 +277,7 @@@ static int accel_3d_parse_report(struc
  }
  
  /* Function to initialize the processing for usage id */
- static int __devinit hid_accel_3d_probe(struct platform_device *pdev)
+ static int hid_accel_3d_probe(struct platform_device *pdev)
  {
        int ret = 0;
        static const char *name = "accel_3d";
@@@ -374,7 -375,7 +374,7 @@@ error_ret
  }
  
  /* Function to deinitialize the processing for usage id */
- static int __devinit hid_accel_3d_remove(struct platform_device *pdev)
+ static int hid_accel_3d_remove(struct platform_device *pdev)
  {
        struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data;
        struct iio_dev *indio_dev = platform_get_drvdata(pdev);
index f8ae81cae9cff6a0f183ba63987305b3025b2029,72955e45e9e043bf96bd4d177abefe4d8b1e5e95..f8bcb1f5892df23e2c3c4e25289eaa1fc96752ba
@@@ -179,7 -179,7 +179,7 @@@ static int lp8788_iio_map_register(stru
  
        ret = iio_map_array_register(indio_dev, map);
        if (ret) {
 -              dev_err(adc->lp->dev, "iio map err: %d\n", ret);
 +              dev_err(&indio_dev->dev, "iio map err: %d\n", ret);
                return ret;
        }
  
@@@ -193,7 -193,7 +193,7 @@@ static inline void lp8788_iio_map_unreg
        iio_map_array_unregister(indio_dev, adc->map);
  }
  
- static int __devinit lp8788_adc_probe(struct platform_device *pdev)
+ static int lp8788_adc_probe(struct platform_device *pdev)
  {
        struct lp8788 *lp = dev_get_drvdata(pdev->dev.parent);
        struct iio_dev *indio_dev;
  
        mutex_init(&adc->lock);
  
 -      indio_dev->dev.parent = lp->dev;
 +      indio_dev->dev.parent = &pdev->dev;
        indio_dev->name = pdev->name;
        indio_dev->modes = INDIO_DIRECT_MODE;
        indio_dev->info = &lp8788_adc_info;
  
        ret = iio_device_register(indio_dev);
        if (ret) {
 -              dev_err(lp->dev, "iio dev register err: %d\n", ret);
 +              dev_err(&pdev->dev, "iio dev register err: %d\n", ret);
                goto err_iio_device;
        }
  
@@@ -236,7 -236,7 +236,7 @@@ err_iio_map
        return ret;
  }
  
- static int __devexit lp8788_adc_remove(struct platform_device *pdev)
+ static int lp8788_adc_remove(struct platform_device *pdev)
  {
        struct iio_dev *indio_dev = platform_get_drvdata(pdev);
        struct lp8788_adc *adc = iio_priv(indio_dev);
  
  static struct platform_driver lp8788_adc_driver = {
        .probe = lp8788_adc_probe,
-       .remove = __devexit_p(lp8788_adc_remove),
+       .remove = lp8788_adc_remove,
        .driver = {
                .name = LP8788_DEV_ADC,
                .owner = THIS_MODULE,
index aac572290cbf53259fb3942b96fa329eb4fab923,03b25b3dc71eb95703d2131230e2f11cb2dae03c..eba1034d860640760ac8b06e02f764fcff572e49
@@@ -39,7 -39,6 +39,7 @@@
  #include <linux/iio/driver.h>
  #include <linux/iio/kfifo_buf.h>
  #include <linux/iio/trigger_consumer.h>
 +#include <linux/iio/triggered_buffer.h>
  
  #define MAX1363_SETUP_BYTE(a) ((a) | 0x80)
  
@@@ -56,7 -55,7 +56,7 @@@
  #define MAX1363_SETUP_POWER_UP_INT_REF                0x10
  #define MAX1363_SETUP_POWER_DOWN_INT_REF      0x00
  
 -/* think about includeing max11600 etc - more settings */
 +/* think about including max11600 etc - more settings */
  #define MAX1363_SETUP_EXT_CLOCK                       0x08
  #define MAX1363_SETUP_INT_CLOCK                       0x00
  #define MAX1363_SETUP_UNIPOLAR                        0x00
@@@ -87,7 -86,7 +87,7 @@@
  /* max123{6-9} only */
  #define MAX1236_SCAN_MID_TO_CHANNEL           0x40
  
 -/* max1363 only - merely part of channel selects or don't care for others*/
 +/* max1363 only - merely part of channel selects or don't care for others */
  #define MAX1363_CONFIG_EN_MON_MODE_READ 0x18
  
  #define MAX1363_CHANNEL_SEL(a) ((a) << 1)
@@@ -134,7 -133,7 +134,7 @@@ enum max1363_modes 
   * @mode_list:                array of available scan modes
   * @default_mode:     the scan mode in which the chip starts up
   * @int_vref_mv:      the internal reference voltage
 - * @num_channels:     number of channels
 + * @num_modes:                number of modes
   * @bits:             accuracy of the adc in bits
   */
  struct max1363_chip_info {
   * @client:           i2c_client
   * @setupbyte:                cache of current device setup byte
   * @configbyte:               cache of current device config byte
 - * @chip_info:                chip model specific constants, available modes etc
 + * @chip_info:                chip model specific constants, available modes, etc.
   * @current_mode:     the scan mode of this chip
   * @requestedmask:    a valid requested set of channels
   * @reg:              supply regulator
@@@ -294,7 -293,7 +294,7 @@@ static const struct max1363_mode max136
  
  static const struct max1363_mode
  *max1363_match_mode(const unsigned long *mask,
 -const struct max1363_chip_info *ci)
 +      const struct max1363_chip_info *ci)
  {
        int i;
        if (mask)
@@@ -1395,7 -1394,7 +1395,7 @@@ static int max1363_initial_setup(struc
                | MAX1363_SETUP_UNIPOLAR
                | MAX1363_SETUP_NORESET;
  
 -      /* Set scan mode writes the config anyway so wait until then*/
 +      /* Set scan mode writes the config anyway so wait until then */
        st->setupbyte = MAX1363_SETUP_BYTE(st->setupbyte);
        st->current_mode = &max1363_mode_table[st->chip_info->default_mode];
        st->configbyte = MAX1363_CONFIG_BYTE(st->configbyte);
        return max1363_set_scan_mode(st);
  }
  
- static int __devinit max1363_alloc_scan_masks(struct iio_dev *indio_dev)
+ static int max1363_alloc_scan_masks(struct iio_dev *indio_dev)
  {
        struct max1363_state *st = iio_priv(indio_dev);
        unsigned long *masks;
        return 0;
  }
  
 -
  static irqreturn_t max1363_trigger_handler(int irq, void *p)
  {
        struct iio_poll_func *pf = p;
@@@ -1483,8 -1483,50 +1483,50 @@@ static const struct iio_buffer_setup_op
        .predisable = &iio_triggered_buffer_predisable,
  };
  
- static int __devinit max1363_probe(struct i2c_client *client,
-                                  const struct i2c_device_id *id)
+ static int max1363_register_buffered_funcs_and_init(struct iio_dev *indio_dev)
+ {
+       struct max1363_state *st = iio_priv(indio_dev);
+       int ret = 0;
+       indio_dev->buffer = iio_kfifo_allocate(indio_dev);
+       if (!indio_dev->buffer) {
+               ret = -ENOMEM;
+               goto error_ret;
+       }
+       indio_dev->pollfunc = iio_alloc_pollfunc(NULL,
+                                                &max1363_trigger_handler,
+                                                IRQF_ONESHOT,
+                                                indio_dev,
+                                                "%s_consumer%d",
+                                                st->client->name,
+                                                indio_dev->id);
+       if (indio_dev->pollfunc == NULL) {
+               ret = -ENOMEM;
+               goto error_deallocate_sw_rb;
+       }
+       /* Buffer functions - here trigger setup related */
+       indio_dev->setup_ops = &max1363_buffered_setup_ops;
+       /* Flag that polled buffering is possible */
+       indio_dev->modes |= INDIO_BUFFER_TRIGGERED;
+       return 0;
+ error_deallocate_sw_rb:
+       iio_kfifo_free(indio_dev->buffer);
+ error_ret:
+       return ret;
+ }
+ static void max1363_buffer_cleanup(struct iio_dev *indio_dev)
+ {
+       /* ensure that the trigger has been detached */
+       iio_dealloc_pollfunc(indio_dev->pollfunc);
+       iio_kfifo_free(indio_dev->buffer);
+ }
+ static int max1363_probe(struct i2c_client *client,
+                        const struct i2c_device_id *id)
  {
        int ret;
        struct max1363_state *st;
        if (ret)
                goto error_disable_reg;
  
 -      /* Estabilish that the iio_dev is a child of the i2c device */
 +      /* Establish that the iio_dev is a child of the i2c device */
        indio_dev->dev.parent = &client->dev;
        indio_dev->name = id->name;
        indio_dev->channels = st->chip_info->channels;
        if (ret < 0)
                goto error_free_available_scan_masks;
  
 -      ret = max1363_register_buffered_funcs_and_init(indio_dev);
 +      ret = iio_triggered_buffer_setup(indio_dev, NULL,
 +              &max1363_trigger_handler, &max1363_buffered_setup_ops);
        if (ret)
                goto error_free_available_scan_masks;
  
 -      ret = iio_buffer_register(indio_dev,
 -                                st->chip_info->channels,
 -                                st->chip_info->num_channels);
 -      if (ret)
 -              goto error_cleanup_buffer;
 -
        if (client->irq) {
                ret = request_threaded_irq(st->client->irq,
                                           NULL,
@@@ -1561,7 -1608,9 +1603,7 @@@ error_free_irq
        if (client->irq)
                free_irq(st->client->irq, indio_dev);
  error_uninit_buffer:
 -      iio_buffer_unregister(indio_dev);
 -error_cleanup_buffer:
 -      max1363_buffer_cleanup(indio_dev);
 +      iio_triggered_buffer_cleanup(indio_dev);
  error_free_available_scan_masks:
        kfree(indio_dev->available_scan_masks);
  error_disable_reg:
@@@ -1576,7 -1625,7 +1618,7 @@@ error_out
        return ret;
  }
  
- static int __devexit max1363_remove(struct i2c_client *client)
+ static int max1363_remove(struct i2c_client *client)
  {
        struct iio_dev *indio_dev = i2c_get_clientdata(client);
        struct max1363_state *st = iio_priv(indio_dev);
        iio_device_unregister(indio_dev);
        if (client->irq)
                free_irq(st->client->irq, indio_dev);
 -      iio_buffer_unregister(indio_dev);
 -      max1363_buffer_cleanup(indio_dev);
 +      iio_triggered_buffer_cleanup(indio_dev);
        kfree(indio_dev->available_scan_masks);
        regulator_disable(st->reg);
        regulator_put(st->reg);
@@@ -1639,7 -1689,7 +1681,7 @@@ static struct i2c_driver max1363_drive
                .name = "max1363",
        },
        .probe = max1363_probe,
-       .remove = __devexit_p(max1363_remove),
+       .remove = max1363_remove,
        .id_table = max1363_id,
  };
  module_i2c_driver(max1363_driver);
index 1a64f88d1e89c747eea5e2e4b412640c1ebaa595,06e7cc35450c633a9e08e55450907f6e00241518..fcfc83a9f86119a91899769632477f7005052c43
@@@ -28,6 -28,7 +28,6 @@@
  #include <linux/iio/buffer.h>
  #include <linux/iio/trigger_consumer.h>
  #include <linux/iio/triggered_buffer.h>
 -#include "../common/hid-sensors/hid-sensor-attributes.h"
  #include "../common/hid-sensors/hid-sensor-trigger.h"
  
  /*Format: HID-SENSOR-usage_id_in_hex*/
@@@ -43,7 -44,7 +43,7 @@@ enum gyro_3d_channel 
  
  struct gyro_3d_state {
        struct hid_sensor_hub_callbacks callbacks;
 -      struct hid_sensor_iio_common common_attributes;
 +      struct hid_sensor_common common_attributes;
        struct hid_sensor_hub_attribute_info gyro[GYRO_3D_CHANNEL_MAX];
        u32 gyro_val[GYRO_3D_CHANNEL_MAX];
  };
@@@ -277,7 -278,7 +277,7 @@@ static int gyro_3d_parse_report(struct 
  }
  
  /* Function to initialize the processing for usage id */
- static int __devinit hid_gyro_3d_probe(struct platform_device *pdev)
+ static int hid_gyro_3d_probe(struct platform_device *pdev)
  {
        int ret = 0;
        static const char *name = "gyro_3d";
@@@ -374,7 -375,7 +374,7 @@@ error_ret
  }
  
  /* Function to deinitialize the processing for usage id */
- static int __devinit hid_gyro_3d_remove(struct platform_device *pdev)
+ static int hid_gyro_3d_remove(struct platform_device *pdev)
  {
        struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data;
        struct iio_dev *indio_dev = platform_get_drvdata(pdev);
index 6ab987a13c79ce1f7e75d44fbe882c61633f2d29,e2d042f2a544b0b55bcdbee9bf84e6ed5430a252..3d7e8c9b4beb15eb9cce8f3790ea136701a77c79
@@@ -28,6 -28,7 +28,6 @@@
  #include <linux/iio/buffer.h>
  #include <linux/iio/trigger_consumer.h>
  #include <linux/iio/triggered_buffer.h>
 -#include "../common/hid-sensors/hid-sensor-attributes.h"
  #include "../common/hid-sensors/hid-sensor-trigger.h"
  
  /*Format: HID-SENSOR-usage_id_in_hex*/
@@@ -38,7 -39,7 +38,7 @@@
  
  struct als_state {
        struct hid_sensor_hub_callbacks callbacks;
 -      struct hid_sensor_iio_common common_attributes;
 +      struct hid_sensor_common common_attributes;
        struct hid_sensor_hub_attribute_info als_illum;
        u32 illum;
  };
@@@ -244,7 -245,7 +244,7 @@@ static int als_parse_report(struct plat
  }
  
  /* Function to initialize the processing for usage id */
- static int __devinit hid_als_probe(struct platform_device *pdev)
+ static int hid_als_probe(struct platform_device *pdev)
  {
        int ret = 0;
        static const char *name = "als";
@@@ -340,7 -341,7 +340,7 @@@ error_ret
  }
  
  /* Function to deinitialize the processing for usage id */
- static int __devinit hid_als_remove(struct platform_device *pdev)
+ static int hid_als_remove(struct platform_device *pdev)
  {
        struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data;
        struct iio_dev *indio_dev = platform_get_drvdata(pdev);
index 28026e2ab06b9d7fb3df1c4b31d03877a8645022,7ac2c7483ba8ae51f95243311929cc028110aea2..d8d01265220bfe5048be6adc3610524857a8b5df
@@@ -28,6 -28,7 +28,6 @@@
  #include <linux/iio/buffer.h>
  #include <linux/iio/trigger_consumer.h>
  #include <linux/iio/triggered_buffer.h>
 -#include "../common/hid-sensors/hid-sensor-attributes.h"
  #include "../common/hid-sensors/hid-sensor-trigger.h"
  
  /*Format: HID-SENSOR-usage_id_in_hex*/
@@@ -43,7 -44,7 +43,7 @@@ enum magn_3d_channel 
  
  struct magn_3d_state {
        struct hid_sensor_hub_callbacks callbacks;
 -      struct hid_sensor_iio_common common_attributes;
 +      struct hid_sensor_common common_attributes;
        struct hid_sensor_hub_attribute_info magn[MAGN_3D_CHANNEL_MAX];
        u32 magn_val[MAGN_3D_CHANNEL_MAX];
  };
@@@ -278,7 -279,7 +278,7 @@@ static int magn_3d_parse_report(struct 
  }
  
  /* Function to initialize the processing for usage id */
- static int __devinit hid_magn_3d_probe(struct platform_device *pdev)
+ static int hid_magn_3d_probe(struct platform_device *pdev)
  {
        int ret = 0;
        static char *name = "magn_3d";
@@@ -375,7 -376,7 +375,7 @@@ error_ret
  }
  
  /* Function to deinitialize the processing for usage id */
- static int __devinit hid_magn_3d_remove(struct platform_device *pdev)
+ static int hid_magn_3d_remove(struct platform_device *pdev)
  {
        struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data;
        struct iio_dev *indio_dev = platform_get_drvdata(pdev);
diff --combined drivers/rtc/Kconfig
index eed335c16cb0120ac5eabd59ee8d41268d2292ec,923a9da9c829d7be9a3fe95bac77b0b7e4431de6..fabef47c1efcae4c66cb34a31f69514c0e99d491
@@@ -352,6 -352,14 +352,14 @@@ config RTC_DRV_TWL403
          This driver can also be built as a module. If so, the module
          will be called rtc-twl.
  
+ config RTC_DRV_TPS6586X
+       tristate "TI TPS6586X RTC driver"
+       depends on MFD_TPS6586X
+       help
+         TI Power Managment IC TPS6586X supports RTC functionality
+         along with alarm. This driver supports the RTC driver for
+         the TPS6586X RTC module.
  config RTC_DRV_TPS65910
        tristate "TI TPS65910 RTC driver"
        depends on RTC_CLASS && MFD_TPS65910
@@@ -1165,20 -1173,4 +1173,20 @@@ config RTC_DRV_SNV
           This driver can also be built as a module, if so, the module
           will be called "rtc-snvs".
  
 +comment "HID Sensor RTC drivers"
 +
 +config RTC_DRV_HID_SENSOR_TIME
 +      tristate "HID Sensor Time"
 +      depends on USB_HID
 +      select IIO
 +      select HID_SENSOR_HUB
 +      select HID_SENSOR_IIO_COMMON
 +      help
 +        Say yes here to build support for the HID Sensors of type Time.
 +        This drivers makes such sensors available as RTCs.
 +
 +        If this driver is compiled as a module, it will be named
 +        rtc-hid-sensor-time.
 +
 +
  endif # RTC_CLASS
diff --combined drivers/rtc/Makefile
index 63be277d9ff656be708175263c164b724f557b8e,4418ef3f9ecc9278b53aae5dd5177cff522b24ba..68a3ca937c88f12a46a2e3949175b86fcfe37b7d
@@@ -52,7 -52,6 +52,7 @@@ obj-$(CONFIG_RTC_DRV_EM3027)  += rtc-em3
  obj-$(CONFIG_RTC_DRV_EP93XX)  += rtc-ep93xx.o
  obj-$(CONFIG_RTC_DRV_FM3130)  += rtc-fm3130.o
  obj-$(CONFIG_RTC_DRV_GENERIC) += rtc-generic.o
 +obj-$(CONFIG_RTC_DRV_HID_SENSOR_TIME) += rtc-hid-sensor-time.o
  obj-$(CONFIG_RTC_DRV_IMXDI)   += rtc-imxdi.o
  obj-$(CONFIG_RTC_DRV_ISL1208) += rtc-isl1208.o
  obj-$(CONFIG_RTC_DRV_ISL12022)        += rtc-isl12022.o
@@@ -112,6 -111,7 +112,7 @@@ obj-$(CONFIG_RTC_DRV_TEGRA)        += rtc-tegr
  obj-$(CONFIG_RTC_DRV_TEST)    += rtc-test.o
  obj-$(CONFIG_RTC_DRV_TILE)    += rtc-tile.o
  obj-$(CONFIG_RTC_DRV_TWL4030) += rtc-twl.o
+ obj-$(CONFIG_RTC_DRV_TPS6586X)        += rtc-tps6586x.o
  obj-$(CONFIG_RTC_DRV_TPS65910)        += rtc-tps65910.o
  obj-$(CONFIG_RTC_DRV_TX4939)  += rtc-tx4939.o
  obj-$(CONFIG_RTC_DRV_V3020)   += rtc-v3020.o
index 3a4d5f06beed6b7d7d423ed6d5b609addae8a7f8,c5ceb9d90ea83a696a4ca4518dc379a2c6a82831..eca07045f4de26d00e5cb228ccb203021bbf6174
@@@ -75,6 -75,11 +75,6 @@@ static const char * const mxs_lradc_irq
        "mxs-lradc-button1",
  };
  
 -struct mxs_lradc_chan {
 -      uint8_t                         slot;
 -      uint8_t                         flags;
 -};
 -
  struct mxs_lradc {
        struct device           *dev;
        void __iomem            *base;
@@@ -85,6 -90,8 +85,6 @@@
  
        struct mutex            lock;
  
 -      uint8_t                 enable;
 -
        struct completion       completion;
  };
  
@@@ -232,7 -239,7 +232,7 @@@ static irqreturn_t mxs_lradc_trigger_ha
        struct mxs_lradc *lradc = iio_priv(iio);
        const uint32_t chan_value = LRADC_CH_ACCUMULATE |
                ((LRADC_DELAY_TIMER_LOOP - 1) << LRADC_CH_NUM_SAMPLES_OFFSET);
-       int i, j = 0;
+       unsigned int i, j = 0;
  
        for_each_set_bit(i, iio->active_scan_mask, iio->masklength) {
                lradc->buffer[j] = readl(lradc->base + LRADC_CH(j));
index 27780b8bf15523da60df75abbbca5a130db78d18,b6c5b5c6c8c53dbd39e84baa91cd43e1b81ebfb7..a3236abfca3d3b9a6450c3f15eca211945f5bfc1
@@@ -53,10 -53,10 +53,10 @@@ static struct sg_table *omap_gem_map_dm
        /* this should be after _get_paddr() to ensure we have pages attached */
        omap_gem_dma_sync(obj, dir);
  
 -out:
 -      if (ret)
 -              return ERR_PTR(ret);
        return sg;
 +out:
 +      kfree(sg);
 +      return ERR_PTR(ret);
  }
  
  static void omap_gem_unmap_dma_buf(struct dma_buf_attachment *attachment,
@@@ -207,7 -207,12 +207,12 @@@ struct drm_gem_object *omap_gem_prime_i
                obj = buffer->priv;
                /* is it from our device? */
                if (obj->dev == dev) {
+                       /*
+                        * Importing dmabuf exported from out own gem increases
+                        * refcount on gem itself instead of f_count of dmabuf.
+                        */
                        drm_gem_object_reference(obj);
+                       dma_buf_put(buffer);
                        return obj;
                }
        }
index 3da44dff24bfbea43943d8498c2df6bff5f06e33,9464f3874346eb141f115c65752b9bbe41fc4c7d..f75ee1dd475c6e1b9ead392a1e43e5ea6177747b
@@@ -1563,13 -1563,13 +1563,13 @@@ static int mp_open(struct tty_struct *t
  
        state = uart_get(drv, line);
  
 -      mtpt  = (struct mp_port *)state->port;
 -
        if (IS_ERR(state)) {
                retval = PTR_ERR(state);
                goto fail;
        }
  
 +      mtpt  = (struct mp_port *)state->port;
 +
        tty->driver_data = state;
        tty->low_latency = (state->port->flags & UPF_LOW_LATENCY) ? 1 : 0;
        tty->alt_speed = 0;
@@@ -2851,12 -2851,18 +2851,12 @@@ static void __init multi_init_ports(voi
                                printk("IIR_RET = %x\n",b_ret);
                        }
  
 -                      if(IIR_RS232 == (b_ret & IIR_RS232))
 -                      {
 -                              mtpt->interface = RS232;
 -                      }
 -                      if(IIR_RS422 == (b_ret & IIR_RS422))
 -                      {
 +                      /* default to RS232 */
 +                      mtpt->interface = RS232;
 +                      if (IIR_RS422 == (b_ret & IIR_TYPE_MASK))
                                mtpt->interface = RS422PTP;
 -                      }
 -                      if(IIR_RS485 == (b_ret & IIR_RS485))
 -                      {
 +                      if (IIR_RS485 == (b_ret & IIR_TYPE_MASK))
                                mtpt->interface = RS485NE;
 -                      }
                }
        }
  }
@@@ -3048,7 -3054,7 +3048,7 @@@ static int init_mp_dev(struct pci_dev *
                                sbdev->nr_ports = ((portnum_hex/16)*10) + (portnum_hex % 16);
                        }
                        break;
- #ifdef CONFIG_PARPORT
+ #ifdef CONFIG_PARPORT_PC
                case PCI_DEVICE_ID_MP2S1P :
                        sbdev->nr_ports = 2;
  
index 9b1bf6a24877e5f1b3c17cd2cc3c19cea02a2bb1,806cbf72fb59b6f58eb1419d98af755475fed311..9ee37b9ede3cc961f3e317856d74e3a1f92fa0e8
@@@ -90,7 -90,6 +90,6 @@@ typedef struct tagSRSNCapObject 
  } SRSNCapObject, *PSRSNCapObject;
  
  // BSS info(AP)
- #pragma pack(1)
  typedef struct tagKnownBSS {
      // BSS info
      BOOL            bActive;
      unsigned int            uClearCount;
  //    BYTE            abyIEs[WLAN_BEACON_FR_MAXLEN];
      unsigned int            uIELength;
 -    QWORD           qwBSSTimestamp;
 -    QWORD           qwLocalTSF;     // local TSF timer
 +      u64 qwBSSTimestamp;
 +      u64 qwLocalTSF;/* local TSF timer */
  
      CARD_PHY_TYPE   eNetworkTypeInUse;
  
@@@ -226,70 -225,80 +225,70 @@@ typedef struct tagKnownNodeDB 
  
  /*---------------------  Export Functions  --------------------------*/
  
 -PKnownBSS BSSpSearchBSSList(void *hDeviceContext,
 -                          PBYTE pbyDesireBSSID,
 -                          PBYTE pbyDesireSSID,
 -                          CARD_PHY_TYPE ePhyType);
 -
 -PKnownBSS BSSpAddrIsInBSSList(void *hDeviceContext,
 -                            PBYTE abyBSSID,
 -                            PWLAN_IE_SSID pSSID);
 -
 -void BSSvClearBSSList(void *hDeviceContext, BOOL bKeepCurrBSSID);
 -
 -BOOL BSSbInsertToBSSList(void *hDeviceContext,
 -                       PBYTE abyBSSIDAddr,
 -                       QWORD qwTimestamp,
 -                       WORD wBeaconInterval,
 -                       WORD wCapInfo,
 -                       BYTE byCurrChannel,
 -                       PWLAN_IE_SSID pSSID,
 -                       PWLAN_IE_SUPP_RATES pSuppRates,
 -                       PWLAN_IE_SUPP_RATES pExtSuppRates,
 -                       PERPObject psERP,
 -                       PWLAN_IE_RSN pRSN,
 -                       PWLAN_IE_RSN_EXT pRSNWPA,
 -                       PWLAN_IE_COUNTRY pIE_Country,
 -                       PWLAN_IE_QUIET pIE_Quiet,
 -                       unsigned int uIELength,
 -                       PBYTE pbyIEs,
 -                       void *pRxPacketContext);
 -
 -BOOL BSSbUpdateToBSSList(void *hDeviceContext,
 -                       QWORD qwTimestamp,
 -                       WORD wBeaconInterval,
 -                       WORD wCapInfo,
 -                       BYTE byCurrChannel,
 -                       BOOL bChannelHit,
 -                       PWLAN_IE_SSID pSSID,
 -                       PWLAN_IE_SUPP_RATES pSuppRates,
 -                       PWLAN_IE_SUPP_RATES pExtSuppRates,
 -                       PERPObject psERP,
 -                       PWLAN_IE_RSN pRSN,
 -                       PWLAN_IE_RSN_EXT pRSNWPA,
 -                       PWLAN_IE_COUNTRY pIE_Country,
 -                       PWLAN_IE_QUIET pIE_Quiet,
 -                       PKnownBSS pBSSList,
 -                       unsigned int uIELength,
 -                       PBYTE pbyIEs,
 -                       void *pRxPacketContext);
 -
 -BOOL BSSbIsSTAInNodeDB(void *hDeviceContext,
 -                     PBYTE abyDstAddr,
 -                     unsigned int *puNodeIndex);
 -
 -void BSSvCreateOneNode(void *hDeviceContext, unsigned int *puNodeIndex);
 -
 -void BSSvUpdateAPNode(void *hDeviceContext,
 -                    PWORD pwCapInfo,
 -                    PWLAN_IE_SUPP_RATES pItemRates,
 -                    PWLAN_IE_SUPP_RATES pExtSuppRates);
 -
 -void BSSvSecondCallBack(void *hDeviceContext);
 -
 -void BSSvUpdateNodeTxCounter(void *hDeviceContext,
 -                           PSStatCounter pStatistic,
 -                           BYTE byTSR,
 -                           BYTE byPktNO);
 -
 -void BSSvRemoveOneNode(void *hDeviceContext,
 -                     unsigned int uNodeIndex);
 -
 -void BSSvAddMulticastNode(void *hDeviceContext);
 -
 -void BSSvClearNodeDBTable(void *hDeviceContext,
 -                        unsigned int uStartIndex);
 -
 -void BSSvClearAnyBSSJoinRecord(void *hDeviceContext);
 +PKnownBSS BSSpSearchBSSList(struct vnt_private *, u8 *pbyDesireBSSID,
 +      u8 *pbyDesireSSID, CARD_PHY_TYPE ePhyType);
 +
 +PKnownBSS BSSpAddrIsInBSSList(struct vnt_private *, u8 *abyBSSID,
 +      PWLAN_IE_SSID pSSID);
 +
 +void BSSvClearBSSList(struct vnt_private *, int bKeepCurrBSSID);
 +
 +int BSSbInsertToBSSList(struct vnt_private *,
 +                      u8 *abyBSSIDAddr,
 +                      u64 qwTimestamp,
 +                      u16 wBeaconInterval,
 +                      u16 wCapInfo,
 +                      u8 byCurrChannel,
 +                      PWLAN_IE_SSID pSSID,
 +                      PWLAN_IE_SUPP_RATES pSuppRates,
 +                      PWLAN_IE_SUPP_RATES pExtSuppRates,
 +                      PERPObject psERP,
 +                      PWLAN_IE_RSN pRSN,
 +                      PWLAN_IE_RSN_EXT pRSNWPA,
 +                      PWLAN_IE_COUNTRY pIE_Country,
 +                      PWLAN_IE_QUIET pIE_Quiet,
 +                      u32 uIELength,
 +                      u8 *pbyIEs,
 +                      void *pRxPacketContext);
 +
 +int BSSbUpdateToBSSList(struct vnt_private *,
 +                      u64 qwTimestamp,
 +                      u16 wBeaconInterval,
 +                      u16 wCapInfo,
 +                      u8 byCurrChannel,
 +                      int bChannelHit,
 +                      PWLAN_IE_SSID pSSID,
 +                      PWLAN_IE_SUPP_RATES pSuppRates,
 +                      PWLAN_IE_SUPP_RATES pExtSuppRates,
 +                      PERPObject psERP,
 +                      PWLAN_IE_RSN pRSN,
 +                      PWLAN_IE_RSN_EXT pRSNWPA,
 +                      PWLAN_IE_COUNTRY pIE_Country,
 +                      PWLAN_IE_QUIET pIE_Quiet,
 +                      PKnownBSS pBSSList,
 +                      u32 uIELength,
 +                      u8 *pbyIEs,
 +                      void *pRxPacketContext);
 +
 +int BSSbIsSTAInNodeDB(struct vnt_private *, PBYTE abyDstAddr,
 +      u32 *puNodeIndex);
 +
 +void BSSvCreateOneNode(struct vnt_private *, u32 *puNodeIndex);
 +
 +void BSSvUpdateAPNode(struct vnt_private *, u16 *pwCapInfo,
 +      PWLAN_IE_SUPP_RATES pItemRates, PWLAN_IE_SUPP_RATES pExtSuppRates);
 +
 +void BSSvSecondCallBack(struct vnt_private *);
 +
 +void BSSvUpdateNodeTxCounter(struct vnt_private *, PSStatCounter pStatistic,
 +      u8 byTSR, u8 byPktNO);
 +
 +void BSSvRemoveOneNode(struct vnt_private *, u32 uNodeIndex);
 +
 +void BSSvAddMulticastNode(struct vnt_private *);
 +
 +void BSSvClearNodeDBTable(struct vnt_private *, u32 uStartIndex);
 +
 +void BSSvClearAnyBSSJoinRecord(struct vnt_private *);
  
  #endif /* __BSSDB_H__ */
index 444b6c2ea4129de4b69d5ac895069154d4a27ebe,e0d2b07ba608d14415f19daee1ae8d0924b6cf65..27c725f1ce1189bee0362cbde8f10d285b901abf
@@@ -34,7 -34,6 +34,6 @@@
  #include "device.h"
  
  /*---------------------  Export Definitions -------------------------*/
- #pragma pack(1)
  typedef struct tagSINTData {
        BYTE byTSR0;
        BYTE byPkt0;
@@@ -48,7 -47,8 +47,7 @@@
        BYTE byTSR3;
        BYTE byPkt3;
        WORD wTime3;
 -      u32 dwLoTSF;
 -      u32 dwHiTSF;
 +      u64 qwTSF;
        BYTE byISR0;
        BYTE byISR1;
        BYTE byRTSSuccess;
@@@ -65,7 -65,7 +64,7 @@@ SINTData, *PSINTData
  
  /*---------------------  Export Functions  --------------------------*/
  
 -void INTvWorkItem(void *Context);
 -void INTnsProcessData(PSDevice pDevice);
 +void INTvWorkItem(struct vnt_private *);
 +void INTnsProcessData(struct vnt_private *);
  
  #endif /* __INT_H__ */
index fba4af805d988893ba63fc892fc1335278bcff9b,89bfd858bb280949f499c463a6ec26034bddcdad..d22db43e803199f122696f7ae7ec3c16ee2d6171
@@@ -406,7 -406,7 +406,7 @@@ int prism2mgmt_scan_results(wlandevice_
        /* SSID */
        req->ssid.status = P80211ENUM_msgitem_status_data_ok;
        req->ssid.data.len = le16_to_cpu(item->ssid.len);
-       req->ssid.data.len = min_t(u16, req->ssid.data.len, WLAN_BSSID_LEN);
+       req->ssid.data.len = min_t(u16, req->ssid.data.len, WLAN_SSID_MAXLEN);
        memcpy(req->ssid.data.data, item->ssid.data, req->ssid.data.len);
  
        /* supported rates */
                        break;
  
  #define REQBASICRATE(N) \
 -      if ((count >= N) && DOT11_RATE5_ISBASIC_GET(item->supprates[(N)-1])) { \
 -              req->basicrate ## N .data = item->supprates[(N)-1]; \
 -              req->basicrate ## N .status = \
 -                      P80211ENUM_msgitem_status_data_ok; \
 -      }
 +      do { \
 +              if ((count >= N) && DOT11_RATE5_ISBASIC_GET( \
 +                      item->supprates[(N)-1])) { \
 +                      req->basicrate ## N .data = item->supprates[(N)-1]; \
 +                      req->basicrate ## N .status = \
 +                              P80211ENUM_msgitem_status_data_ok; \
 +              } \
 +      } while (0)
  
        REQBASICRATE(1);
        REQBASICRATE(2);
        REQBASICRATE(8);
  
  #define REQSUPPRATE(N) \
 -      if (count >= N) { \
 -              req->supprate ## N .data = item->supprates[(N)-1]; \
 -              req->supprate ## N .status = \
 -                      P80211ENUM_msgitem_status_data_ok; \
 -      }
 +      do { \
 +              if (count >= N) { \
 +                      req->supprate ## N .data = item->supprates[(N)-1]; \
 +                      req->supprate ## N .status = \
 +                              P80211ENUM_msgitem_status_data_ok; \
 +              } \
 +      } while (0)
  
        REQSUPPRATE(1);
        REQSUPPRATE(2);
@@@ -1144,8 -1139,9 +1144,8 @@@ int prism2mgmt_wlansniff(wlandevice_t *
                        /* Enable the port */
                        result = hfa384x_drvr_enable(hw, 0);
                        if (result) {
 -                              pr_debug
 -                              ("failed to enable port to presniff setting, result=%d\n",
 -                                   result);
 +                              pr_debug("failed to enable port to presniff setting, result=%d\n",
 +                                       result);
                                goto failed;
                        }
                } else {
                                hfa384x_drvr_stop(hw);
                                result = hfa384x_drvr_start(hw);
                                if (result) {
 -                                      pr_debug
 -                                          ("failed to restart the card for sniffing, result=%d\n",
 -                                           result);
 +                                      pr_debug("failed to restart the card for sniffing, result=%d\n",
 +                                               result);
                                        goto failed;
                                }
                        } else {
                                /* Disable the port */
                                result = hfa384x_drvr_disable(hw, 0);
                                if (result) {
 -                                      pr_debug
 -                                          ("failed to enable port for sniffing, result=%d\n",
 -                                           result);
 +                                      pr_debug("failed to enable port for sniffing, result=%d\n",
 +                                               result);
                                        goto failed;
                                }
                        }
index 6762b994f6f4b70403b262fd31e9e7aa99e95e1f,f2a73bd739fb94b750e66e1ee2c931e3c971a52a..77a3f0dfba770821ebe8aef3ce3229bfa1163078
@@@ -40,7 -40,17 +40,7 @@@ static int zram_major
  struct zram *zram_devices;
  
  /* Module params (documentation at end) */
 -static unsigned int num_devices;
 -
 -static void zram_stat_inc(u32 *v)
 -{
 -      *v = *v + 1;
 -}
 -
 -static void zram_stat_dec(u32 *v)
 -{
 -      *v = *v - 1;
 -}
 +static unsigned int num_devices = 1;
  
  static void zram_stat64_add(struct zram *zram, u64 *v, u64 inc)
  {
@@@ -116,7 -126,8 +116,7 @@@ static void zram_set_disksize(struct zr
                "\tMemory Size: %zu kB\n"
                "\tSize you selected: %llu kB\n"
                "Continuing anyway ...\n",
 -              totalram_bytes >> 10, zram->disksize
 -              );
 +              totalram_bytes >> 10, zram->disksize >> 10);
        }
  
        zram->disksize &= PAGE_MASK;
@@@ -134,22 -145,22 +134,22 @@@ static void zram_free_page(struct zram 
                 */
                if (zram_test_flag(zram, index, ZRAM_ZERO)) {
                        zram_clear_flag(zram, index, ZRAM_ZERO);
 -                      zram_stat_dec(&zram->stats.pages_zero);
 +                      zram->stats.pages_zero--;
                }
                return;
        }
  
        if (unlikely(size > max_zpage_size))
 -              zram_stat_dec(&zram->stats.bad_compress);
 +              zram->stats.bad_compress--;
  
        zs_free(zram->mem_pool, handle);
  
        if (size <= PAGE_SIZE / 2)
 -              zram_stat_dec(&zram->stats.good_compress);
 +              zram->stats.good_compress--;
  
        zram_stat64_sub(zram, &zram->stats.compr_size,
                        zram->table[index].size);
 -      zram_stat_dec(&zram->stats.pages_stored);
 +      zram->stats.pages_stored--;
  
        zram->table[index].handle = 0;
        zram->table[index].size = 0;
@@@ -254,7 -265,7 +254,7 @@@ out_cleanup
  static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index,
                           int offset)
  {
-       int ret;
+       int ret = 0;
        size_t clen;
        unsigned long handle;
        struct page *page;
                        goto out;
                }
                ret = zram_decompress_page(zram, uncmem, index);
-               if (ret) {
-                       kfree(uncmem);
+               if (ret)
                        goto out;
-               }
        }
  
        /*
  
        user_mem = kmap_atomic(page);
  
-       if (is_partial_io(bvec))
+       if (is_partial_io(bvec)) {
                memcpy(uncmem + offset, user_mem + bvec->bv_offset,
                       bvec->bv_len);
-       else
+               kunmap_atomic(user_mem);
+               user_mem = NULL;
+       } else {
                uncmem = user_mem;
+       }
  
        if (page_zero_filled(uncmem)) {
 -              if (!is_partial_io(bvec))
 -                      kunmap_atomic(user_mem);
 -              zram_stat_inc(&zram->stats.pages_zero);
 +              kunmap_atomic(user_mem);
 +              if (is_partial_io(bvec))
 +                      kfree(uncmem);
 +              zram->stats.pages_zero++;
                zram_set_flag(zram, index, ZRAM_ZERO);
                ret = 0;
                goto out;
        ret = lzo1x_1_compress(uncmem, PAGE_SIZE, src, &clen,
                               zram->compress_workmem);
  
-       kunmap_atomic(user_mem);
-       if (is_partial_io(bvec))
-                       kfree(uncmem);
+       if (!is_partial_io(bvec)) {
+               kunmap_atomic(user_mem);
+               user_mem = NULL;
+               uncmem = NULL;
+       }
  
        if (unlikely(ret != LZO_E_OK)) {
                pr_err("Compression failed! err=%d\n", ret);
        }
  
        if (unlikely(clen > max_zpage_size)) {
 -              zram_stat_inc(&zram->stats.bad_compress);
 +              zram->stats.bad_compress++;
-               src = uncmem;
                clen = PAGE_SIZE;
+               src = NULL;
+               if (is_partial_io(bvec))
+                       src = uncmem;
        }
  
        handle = zs_malloc(zram->mem_pool, clen);
        }
        cmem = zs_map_object(zram->mem_pool, handle, ZS_MM_WO);
  
+       if ((clen == PAGE_SIZE) && !is_partial_io(bvec))
+               src = kmap_atomic(page);
        memcpy(cmem, src, clen);
+       if ((clen == PAGE_SIZE) && !is_partial_io(bvec))
+               kunmap_atomic(src);
  
        zs_unmap_object(zram->mem_pool, handle);
  
  
        /* Update stats */
        zram_stat64_add(zram, &zram->stats.compr_size, clen);
 -      zram_stat_inc(&zram->stats.pages_stored);
 +      zram->stats.pages_stored++;
        if (clen <= PAGE_SIZE / 2)
 -              zram_stat_inc(&zram->stats.good_compress);
 +              zram->stats.good_compress++;
  
-       return 0;
  out:
+       if (is_partial_io(bvec))
+               kfree(uncmem);
        if (ret)
                zram_stat64_inc(zram, &zram->stats.failed_writes);
        return ret;
@@@ -704,7 -724,13 +714,7 @@@ static int __init zram_init(void
                goto out;
        }
  
 -      if (!num_devices) {
 -              pr_info("num_devices not specified. Using default: 1\n");
 -              num_devices = 1;
 -      }
 -
        /* Allocate the device array and initialize each one */
 -      pr_info("Creating %u devices ...\n", num_devices);
        zram_devices = kzalloc(num_devices * sizeof(struct zram), GFP_KERNEL);
        if (!zram_devices) {
                ret = -ENOMEM;
                        goto free_devices;
        }
  
 +      pr_info("Created %u device(s) ...\n", num_devices);
 +
        return 0;
  
  free_devices: