]> Pileus Git - ~andy/linux/commitdiff
Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 26 Feb 2013 17:41:53 +0000 (09:41 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 26 Feb 2013 17:41:53 +0000 (09:41 -0800)
Pull i2c updates from Wolfram Sang:
 "Highlights:

   - new drivers for Intel ismt & Broadcom bcm2835
   - a number of drivers got support for more variants and mostly got
     cleaned up on the way (sis630, i801, at91, tegra, designware)
   - i2c got rid of all *_set_drvdata(..., NULL) on remove/probe failure
   - removed the i2c_smbus_process_call from the core since there are no
     users
   - mxs can now switch between PIO and DMA depending on the message
     size and the bus speed can now be arbitrary

  In addition, there is the usual bunch of fixes, cleanups, devm_*
  conversions, etc"

Fixed conflict (and buggy devm_* conversion) in i2c-s3c2410.c

* 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (39 commits)
  i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls
  i2c: pxa: remove incorrect __exit annotations
  i2c: ocores: Fix pointer to integer cast warning
  i2c: tegra: remove warning dump if timeout happen in transfer
  i2c: fix i2c-ismt.c printk format warning
  i2c: i801: Add Device IDs for Intel Wellsburg PCH
  i2c: add bcm2835 driver
  i2c: ismt: Add Seth and Myself as maintainers
  i2c: sis630: checkpatch cleanup
  i2c: sis630: display unsigned hex
  i2c: sis630: use hex to constants for SMBus commands
  i2c: sis630: fix behavior after collision
  i2c: sis630: clear sticky bits
  i2c: sis630: Add SIS964 support
  i2c: isch: Add module parameter for backbone clock rate if divider is unset
  i2c: at91: fix unsed variable warning when building with !CONFIG_OF
  i2c: Adding support for Intel iSMT SMBus 2.0 host controller
  i2c: sh_mobile: don't send a stop condition by default inside transfers
  i2c: sh_mobile: eliminate an open-coded "goto" loop
  i2c: sh_mobile: fix timeout error handling
  ...

1  2 
MAINTAINERS
drivers/i2c/busses/Kconfig
drivers/i2c/busses/i2c-at91.c
drivers/i2c/busses/i2c-imx.c
drivers/i2c/busses/i2c-ocores.c
drivers/i2c/busses/i2c-omap.c
drivers/i2c/busses/i2c-s3c2410.c
drivers/i2c/busses/i2c-stu300.c
drivers/i2c/busses/i2c-tegra.c
drivers/i2c/busses/i2c-xlr.c

diff --combined MAINTAINERS
index ec9b7d2aa6abc931f38020a33c3c77cae50df0f8,5a5816c688081c69b98b25a7495d0851e5e5462f..1e5c3a4ece7b0353e4c6c6503c029baf78fe538f
@@@ -465,14 -465,6 +465,14 @@@ S:       Maintaine
  F:    drivers/scsi/aic7xxx/
  F:    drivers/scsi/aic7xxx_old/
  
 +AIMSLAB FM RADIO RECEIVER DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/radio/radio-aimslab*
 +
  AIO
  M:    Benjamin LaHaise <bcrl@kvack.org>
  L:    linux-aio@kvack.org
@@@ -567,18 -559,6 +567,18 @@@ L:       linux-rdma@vger.kernel.or
  S:    Maintained
  F:    drivers/infiniband/hw/amso1100/
  
 +ANALOG DEVICES INC AD9389B DRIVER
 +M:    Hans Verkuil <hans.verkuil@cisco.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/media/i2c/ad9389b*
 +
 +ANALOG DEVICES INC ADV7604 DRIVER
 +M:    Hans Verkuil <hans.verkuil@cisco.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/media/i2c/adv7604*
 +
  ANALOG DEVICES INC ASOC CODEC DRIVERS
  M:    Lars-Peter Clausen <lars@metafoo.de>
  L:    device-drivers-devel@blackfin.uclinux.org
@@@ -690,16 -670,8 +690,16 @@@ F:       drivers/input/serio/ambakmi.
  F:    include/linux/amba/kmi.h
  
  ARM PRIMECELL MMCI PL180/1 DRIVER
 -S:    Orphan
 +M:    Russell King <linux@arm.linux.org.uk>
 +S:    Maintained
  F:    drivers/mmc/host/mmci.*
 +F:    include/linux/amba/mmci.h
 +
 +ARM PRIMECELL UART PL010 AND PL011 DRIVERS
 +M:    Russell King <linux@arm.linux.org.uk>
 +S:    Maintained
 +F:    drivers/tty/serial/amba-pl01*.c
 +F:    include/linux/amba/serial.h
  
  ARM PRIMECELL BUS SUPPORT
  M:    Russell King <linux@arm.linux.org.uk>
@@@ -1146,14 -1118,6 +1146,14 @@@ F:    arch/arm/mach-s5pv210/mach-goni.
  F:    arch/arm/mach-exynos/mach-universal_c210.c
  F:    arch/arm/mach-exynos/mach-nuri.c
  
 +ARM/SAMSUNG S5P SERIES 2D GRAPHICS ACCELERATION (G2D) SUPPORT
 +M:    Kyungmin Park <kyungmin.park@samsung.com>
 +M:    Kamil Debski <k.debski@samsung.com>
 +L:    linux-arm-kernel@lists.infradead.org
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/media/platform/s5p-g2d/
 +
  ARM/SAMSUNG S5P SERIES FIMC SUPPORT
  M:    Kyungmin Park <kyungmin.park@samsung.com>
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
@@@ -1284,17 -1248,12 +1284,17 @@@ M:   Tony Prisk <linux@prisktech.co.nz
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-vt8500/
 +F:    drivers/clocksource/vt8500_timer.c
 +F:    drivers/gpio/gpio-vt8500.c
 +F:    drivers/mmc/host/wmt-sdmmc.c
 +F:    drivers/pwm/pwm-vt8500.c
 +F:    drivers/rtc/rtc-vt8500.c
 +F:    drivers/tty/serial/vt8500_serial.c
 +F:    drivers/usb/host/ehci-vt8500.c
 +F:    drivers/usb/host/uhci-platform.c
  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/mmc/host/wmt-sdmmc.c
  
  ARM/ZIPIT Z2 SUPPORT
  M:    Marek Vasut <marek.vasut@gmail.com>
@@@ -1303,14 -1262,6 +1303,14 @@@ S:    Maintaine
  F:    arch/arm/mach-pxa/z2.c
  F:    arch/arm/mach-pxa/include/mach/z2.h
  
 +ARM/ZYNQ ARCHITECTURE
 +M:    Michal Simek <michal.simek@xilinx.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +W:    http://wiki.xilinx.com
 +T:    git git://git.xilinx.com/linux-xlnx.git
 +S:    Supported
 +F:    arch/arm/mach-zynq/
 +
  ARM64 PORT (AARCH64 ARCHITECTURE)
  M:    Catalin Marinas <catalin.marinas@arm.com>
  M:    Will Deacon <will.deacon@arm.com>
@@@ -1319,14 -1270,6 +1319,14 @@@ S:    Maintaine
  F:    arch/arm64/
  F:    Documentation/arm64/
  
 +AS3645A LED FLASH CONTROLLER DRIVER
 +M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/as3645a.c
 +F:    include/media/as3645a.h
 +
  ASC7621 HARDWARE MONITOR DRIVER
  M:    George Joseph <george.joseph@fairview5.com>
  L:    lm-sensors@lm-sensors.org
@@@ -1360,7 -1303,7 +1360,7 @@@ F:      include/linux/dmaengine.
  F:    include/linux/async_tx.h
  
  AT24 EEPROM DRIVER
 -M:    Wolfram Sang <w.sang@pengutronix.de>
 +M:    Wolfram Sang <wsa@the-dreams.de>
  L:    linux-i2c@vger.kernel.org
  S:    Maintained
  F:    drivers/misc/eeprom/at24.c
@@@ -1546,7 -1489,7 +1546,7 @@@ AVR32 ARCHITECTUR
  M:    Haavard Skinnemoen <hskinnemoen@gmail.com>
  M:    Hans-Christian Egtvedt <egtvedt@samfundet.no>
  W:    http://www.atmel.com/products/AVR32/
 -W:    http://avr32linux.org/
 +W:    http://mirror.egtvedt.no/avr32linux.org/
  W:    http://avrfreaks.net/
  S:    Maintained
  F:    arch/avr32/
@@@ -1574,14 -1517,6 +1574,14 @@@ T:    git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/usb/dvb-usb-v2/az6007.c
  
 +AZTECH FM RADIO RECEIVER DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/radio/radio-aztech*
 +
  B43 WIRELESS DRIVER
  M:    Stefano Brivio <stefano.brivio@polimi.it>
  L:    linux-wireless@vger.kernel.org
@@@ -1681,15 -1616,6 +1681,15 @@@ W:    http://blackfin.uclinux.org
  S:    Supported
  F:    drivers/i2c/busses/i2c-bfin-twi.c
  
 +BLACKFIN MEDIA DRIVER
 +M:    Scott Jiang <scott.jiang.linux@gmail.com>
 +L:    uclinux-dist-devel@blackfin.uclinux.org
 +W:    http://blackfin.uclinux.org/
 +S:    Supported
 +F:    drivers/media/platform/blackfin/
 +F:    drivers/media/i2c/adv7183*
 +F:    drivers/media/i2c/vs6624*
 +
  BLINKM RGB LED DRIVER
  M:    Jan-Simon Moeller <jansimon.moeller@gmx.de>
  S:    Maintained
@@@ -1873,14 -1799,6 +1873,14 @@@ S:    Supporte
  F:    Documentation/filesystems/caching/cachefiles.txt
  F:    fs/cachefiles/
  
 +CADET FM/AM RADIO RECEIVER DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/radio/radio-cadet*
 +
  CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER
  M:    Jonathan Corbet <corbet@lwn.net>
  L:    linux-media@vger.kernel.org
@@@ -2017,8 -1935,7 +2017,8 @@@ F:      drivers/misc/
  
  CHECKPATCH
  M:    Andy Whitcroft <apw@canonical.com>
 -S:    Supported
 +M:    Joe Perches <joe@perches.com>
 +S:    Maintained
  F:    scripts/checkpatch.pl
  
  CHINESE DOCUMENTATION
@@@ -2223,10 -2140,10 +2223,10 @@@ S:   Maintaine
  F:    tools/power/cpupower
  
  CPUSETS
 -M:    Paul Menage <paul@paulmenage.org>
 +M:    Li Zefan <lizefan@huawei.com>
  W:    http://www.bullopensource.org/cpuset/
  W:    http://oss.sgi.com/projects/cpusets/
 -S:    Supported
 +S:    Maintained
  F:    Documentation/cgroups/cpusets.txt
  F:    include/linux/cpuset.h
  F:    kernel/cpuset.c
@@@ -2282,15 -2199,6 +2282,15 @@@ F:    Documentation/video4linux/cx18.tx
  F:    drivers/media/pci/cx18/
  F:    include/uapi/linux/ivtv*
  
 +CX2341X MPEG ENCODER HELPER MODULE
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/i2c/cx2341x*
 +F:    include/media/cx2341x*
 +
  CX88 VIDEO4LINUX DRIVER
  M:    Mauro Carvalho Chehab <mchehab@redhat.com>
  L:    linux-media@vger.kernel.org
@@@ -2668,13 -2576,6 +2668,13 @@@ S:    Maintaine
  F:    drivers/gpu/drm/tegra/
  F:    Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt
  
 +DSBR100 USB FM RADIO DRIVER
 +M:    Alexey Klimov <klimov.linux@gmail.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/radio/dsbr100.c
 +
  DSCC4 DRIVER
  M:    Francois Romieu <romieu@fr.zoreil.com>
  L:    netdev@vger.kernel.org
@@@ -3065,7 -2966,7 +3065,7 @@@ S:      Maintaine
  F:    drivers/net/ethernet/i825xx/eexpress.*
  
  ETHERNET BRIDGE
 -M:    Stephen Hemminger <shemminger@vyatta.com>
 +M:    Stephen Hemminger <stephen@networkplumber.org>
  L:    bridge@lists.linux-foundation.org
  L:    netdev@vger.kernel.org
  W:    http://www.linuxfoundation.org/en/Net:Bridge
@@@ -3073,6 -2974,11 +3073,6 @@@ S:     Maintaine
  F:    include/linux/netfilter_bridge/
  F:    net/bridge/
  
 -ETHERTEAM 16I DRIVER
 -M:    Mika Kuoppala <miku@iki.fi>
 -S:    Maintained
 -F:    drivers/net/ethernet/fujitsu/eth16i.c
 -
  EXT2 FILE SYSTEM
  M:    Jan Kara <jack@suse.cz>
  L:    linux-ext4@vger.kernel.org
@@@ -3441,14 -3347,6 +3441,14 @@@ W:    http://www.icp-vortex.com
  S:    Supported
  F:    drivers/scsi/gdt*
  
 +GEMTEK FM RADIO RECEIVER DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/radio/radio-gemtek*
 +
  GENERIC GPIO I2C DRIVER
  M:    Haavard Skinnemoen <hskinnemoen@gmail.com>
  S:    Supported
@@@ -3852,6 -3750,13 +3852,13 @@@ F:    drivers/i2c/busses/i2c-sis96x.
  F:    drivers/i2c/busses/i2c-via.c
  F:    drivers/i2c/busses/i2c-viapro.c
  
+ I2C/SMBUS ISMT DRIVER
+ M:    Seth Heasley <seth.heasley@intel.com>
+ M:    Neil Horman <nhorman@tuxdriver.com>
+ L:    linux-i2c@vger.kernel.org
+ F:    drivers/i2c/busses/i2c-ismt.c
+ F:    Documentation/i2c/busses/i2c-ismt
  I2C/SMBUS STUB DRIVER
  M:    "Mark M. Hoffman" <mhoffman@lightlink.com>
  L:    linux-i2c@vger.kernel.org
@@@ -3859,11 -3764,12 +3866,11 @@@ S:   Maintaine
  F:    drivers/i2c/i2c-stub.c
  
  I2C SUBSYSTEM
 -M:    Wolfram Sang <w.sang@pengutronix.de>
 +M:    Wolfram Sang <wsa@the-dreams.de>
  M:    "Ben Dooks (embedded platforms)" <ben-linux@fluff.org>
  L:    linux-i2c@vger.kernel.org
  W:    http://i2c.wiki.kernel.org/
 -T:    quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-i2c/
 -T:    git git://git.pengutronix.de/git/wsa/linux.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
  S:    Maintained
  F:    Documentation/i2c/
  F:    drivers/i2c/
@@@ -4317,7 -4223,6 +4324,7 @@@ M:      Thomas Gleixner <tglx@linutronix.de
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
  F:    kernel/irq/
 +F:    drivers/irqchip/
  
  IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
  M:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
@@@ -4335,14 -4240,6 +4342,14 @@@ F:    Documentation/isapnp.tx
  F:    drivers/pnp/isapnp/
  F:    include/linux/isapnp.h
  
 +ISA RADIO MODULE
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/radio/radio-isa*
 +
  iSCSI BOOT FIRMWARE TABLE (iBFT) DRIVER
  M:    Peter Jones <pjones@redhat.com>
  M:    Konrad Rzeszutek Wilk <konrad@kernel.org>
@@@ -4501,14 -4398,6 +4508,14 @@@ W:    http://lse.sourceforge.net/kdump
  S:    Maintained
  F:    Documentation/kdump/
  
 +KEENE FM RADIO TRANSMITTER DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/radio/radio-keene*
 +
  KERNEL AUTOMOUNTER v4 (AUTOFS4)
  M:    Ian Kent <raven@themaw.net>
  L:    autofs@vger.kernel.org
@@@ -4599,15 -4488,6 +4606,15 @@@ F:    arch/s390/include/asm/kvm
  F:    arch/s390/kvm/
  F:    drivers/s390/kvm/
  
 +KERNEL VIRTUAL MACHINE (KVM) FOR ARM
 +M:    Christoffer Dall <cdall@cs.columbia.edu>
 +L:    kvmarm@lists.cs.columbia.edu
 +W:    http://systems.cs.columbia.edu/projects/kvm-arm
 +S:    Maintained
 +F:    arch/arm/include/uapi/asm/kvm*
 +F:    arch/arm/include/asm/kvm*
 +F:    arch/arm/kvm/
 +
  KEXEC
  M:    Eric Biederman <ebiederm@xmission.com>
  W:    http://kernel.org/pub/linux/utils/kernel/kexec/
@@@ -4996,13 -4876,6 +5003,13 @@@ Q:    http://patchwork.linuxtv.org/project
  S:    Maintained
  F:    drivers/media/dvb-frontends/m88rs2000*
  
 +MA901 MASTERKIT USB FM RADIO DRIVER
 +M:      Alexey Klimov <klimov.linux@gmail.com>
 +L:      linux-media@vger.kernel.org
 +T:      git git://linuxtv.org/media_tree.git
 +S:      Maintained
 +F:      drivers/media/radio/radio-ma901.c
 +
  MAC80211
  M:    Johannes Berg <johannes@sipsolutions.net>
  L:    linux-wireless@vger.kernel.org
@@@ -5039,7 -4912,7 +5046,7 @@@ S:      Maintaine
  
  MARVELL GIGABIT ETHERNET DRIVERS (skge/sky2)
  M:    Mirko Lindner <mlindner@marvell.com>
 -M:    Stephen Hemminger <shemminger@vyatta.com>
 +M:    Stephen Hemminger <stephen@networkplumber.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/marvell/sk*
@@@ -5100,14 -4973,6 +5107,14 @@@ S:    Maintaine
  F:    Documentation/hwmon/max6650
  F:    drivers/hwmon/max6650.c
  
 +MAXIRADIO FM RADIO RECEIVER DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/radio/radio-maxiradio*
 +
  MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
  M:    Mauro Carvalho Chehab <mchehab@redhat.com>
  P:    LinuxTV.org Project
@@@ -5130,14 -4995,6 +5137,14 @@@ F:    include/uapi/linux/meye.
  F:    include/uapi/linux/ivtv*
  F:    include/uapi/linux/uvcvideo.h
  
 +MEDIAVISION PRO MOVIE STUDIO DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Odd Fixes
 +F:    drivers/media/parport/pms*
 +
  MEGARAID SCSI DRIVERS
  M:    Neela Syam Kolli <megaraidlinux@lsi.com>
  L:    linux-scsi@vger.kernel.org
@@@ -5160,10 -5017,6 +5167,10 @@@ L:    linux-mm@kvack.or
  W:    http://www.linux-mm.org
  S:    Maintained
  F:    include/linux/mm.h
 +F:    include/linux/gfp.h
 +F:    include/linux/mmzone.h
 +F:    include/linux/memory_hotplug.h
 +F:    include/linux/vmalloc.h
  F:    mm/
  
  MEMORY RESOURCE CONTROLLER
@@@ -5211,14 -5064,6 +5218,14 @@@ S:    Supporte
  F:    Documentation/mips/
  F:    arch/mips/
  
 +MIROSOUND PCM20 FM RADIO RECEIVER DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Odd Fixes
 +F:    drivers/media/radio/radio-miropcm20*
 +
  MODULE SUPPORT
  M:    Rusty Russell <rusty@rustcorp.com.au>
  S:    Maintained
@@@ -5257,38 -5102,6 +5264,38 @@@ L:    platform-driver-x86@vger.kernel.or
  S:    Supported
  F:    drivers/platform/x86/msi-wmi.c
  
 +MT9M032 SENSOR DRIVER
 +M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/mt9m032.c
 +F:    include/media/mt9m032.h
 +
 +MT9P031 SENSOR DRIVER
 +M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/mt9p031.c
 +F:    include/media/mt9p031.h
 +
 +MT9T001 SENSOR DRIVER
 +M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/mt9t001.c
 +F:    include/media/mt9t001.h
 +
 +MT9V032 SENSOR DRIVER
 +M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/mt9v032.c
 +F:    include/media/mt9v032.h
 +
  MULTIFUNCTION DEVICES (MFD)
  M:    Samuel Ortiz <sameo@linux.intel.com>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6.git
@@@ -5374,7 -5187,7 +5381,7 @@@ S:      Supporte
  F:    drivers/infiniband/hw/nes/
  
  NETEM NETWORK EMULATOR
 -M:    Stephen Hemminger <shemminger@vyatta.com>
 +M:    Stephen Hemminger <stephen@networkplumber.org>
  L:    netem@lists.linux-foundation.org
  S:    Maintained
  F:    net/sched/sch_netem.c
@@@ -5563,6 -5376,13 +5570,6 @@@ 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>
 -M:    Andreas Mohr <andi@lisas.de>
 -L:    netdev@vger.kernel.org
 -S:    Maintained
 -F:    drivers/net/ethernet/racal/ni5010.*
 -
  NILFS2 FILESYSTEM
  M:    KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp>
  L:    linux-nilfs@vger.kernel.org
@@@ -5588,13 -5408,6 +5595,13 @@@ S:    Maintaine
  F:    Documentation/scsi/NinjaSCSI.txt
  F:    drivers/scsi/nsp32*
  
 +NTB DRIVER
 +M:    Jon Mason <jon.mason@intel.com>
 +S:    Supported
 +F:    drivers/ntb/
 +F:    drivers/net/ntb_netdev.c
 +F:    include/linux/ntb.h
 +
  NTFS FILESYSTEM
  M:    Anton Altaparmakov <anton@tuxera.com>
  L:    linux-ntfs-dev@lists.sourceforge.net
@@@ -5692,7 -5505,7 +5699,7 @@@ S:      Maintaine
  F:    drivers/mmc/host/omap.c
  
  OMAP HS MMC SUPPORT
 -M:    Venkatraman S <svenkatr@ti.com>
 +M:    Balaji T K <balajitk@ti.com>
  L:    linux-mmc@vger.kernel.org
  L:    linux-omap@vger.kernel.org
  S:    Maintained
@@@ -5972,6 -5785,15 +5979,6 @@@ L:     linux-i2c@vger.kernel.or
  S:    Maintained
  F:    drivers/i2c/muxes/i2c-mux-pca9541.c
  
 -PCA9564/PCA9665 I2C BUS DRIVER
 -M:    Wolfram Sang <w.sang@pengutronix.de>
 -L:    linux-i2c@vger.kernel.org
 -S:    Maintained
 -F:    drivers/i2c/algos/i2c-algo-pca.c
 -F:    drivers/i2c/busses/i2c-pca-*
 -F:    include/linux/i2c-algo-pca.h
 -F:    include/linux/i2c-pca-platform.h
 -
  PCDP - PRIMARY CONSOLE AND DEBUG PORT
  M:    Khalid Aziz <khalid@gonehiking.org>
  S:    Maintained
@@@ -6440,14 -6262,6 +6447,14 @@@ L:    linux-hexagon@vger.kernel.or
  S:    Supported
  F:    arch/hexagon/
  
 +QUICKCAM PARALLEL PORT WEBCAMS
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Odd Fixes
 +F:    drivers/media/parport/*-qcam*
 +
  RADOS BLOCK DEVICE (RBD)
  M:    Yehuda Sadeh <yehuda@inktank.com>
  M:    Sage Weil <sage@inktank.com>
@@@ -6691,7 -6505,7 +6698,7 @@@ S:      Supporte
  F:    drivers/s390/net/
  
  S390 ZCRYPT DRIVER
 -M:    Holger Dengler <hd@linux.vnet.ibm.com>
 +M:    Ingo Tuchscherer <ingo.tuchscherer@de.ibm.com>
  M:    linux390@de.ibm.com
  L:    linux-s390@vger.kernel.org
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -6722,14 -6536,6 +6729,14 @@@ L:    linux-arm-kernel@lists.infradead.or
  S:    Supported
  F:    drivers/mmc/host/s3cmci.*
  
 +SAA6588 RDS RECEIVER DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Odd Fixes
 +F:    drivers/media/i2c/saa6588*
 +
  SAA7134 VIDEO4LINUX DRIVER
  M:    Mauro Carvalho Chehab <mchehab@redhat.com>
  L:    linux-media@vger.kernel.org
@@@ -6740,9 -6546,10 +6747,9 @@@ F:     Documentation/video4linux/saa7134
  F:    drivers/media/pci/saa7134/
  
  SAA7146 VIDEO4LINUX-2 DRIVER
 -M:    Michael Hunold <michael@mihu.de>
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
 -W:    http://www.mihu.de/linux/saa7146
  S:    Maintained
  F:    drivers/media/common/saa7146/
  F:    drivers/media/pci/saa7146/
@@@ -6784,13 -6591,6 +6791,13 @@@ S:    Maintaine
  F:    drivers/media/platform/s3c-camif/
  F:    include/media/s3c_camif.h
  
 +SAMSUNG S5C73M3 CAMERA DRIVER
 +M:    Kyungmin Park <kyungmin.park@samsung.com>
 +M:    Andrzej Hajda <a.hajda@samsung.com>
 +L:    linux-media@vger.kernel.org
 +S:    Supported
 +F:    drivers/media/i2c/s5c73m3/*
 +
  SERIAL DRIVERS
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  L:    linux-serial@vger.kernel.org
@@@ -6804,16 -6604,8 +6811,16 @@@ F:    include/linux/dw_dmac.
  F:    drivers/dma/dw_dmac_regs.h
  F:    drivers/dma/dw_dmac.c
  
 +SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
 +M:    Seungwon Jeon <tgih.jun@samsung.com>
 +M:    Jaehoon Chung <jh80.chung@samsung.com>
 +L:    linux-mmc@vger.kernel.org
 +S:    Maintained
 +F:    include/linux/mmc/dw_mmc.h
 +F:    drivers/mmc/host/dw_mmc*
 +
  TIMEKEEPING, NTP
 -M:    John Stultz <johnstul@us.ibm.com>
 +M:    John Stultz <john.stultz@linaro.org>
  M:    Thomas Gleixner <tglx@linutronix.de>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
  S:    Supported
@@@ -7035,8 -6827,7 +7042,8 @@@ S:      Supporte
  F:    drivers/net/ethernet/sfc/
  
  SGI GRU DRIVER
 -M:    Jack Steiner <steiner@sgi.com>
 +M:    Dimitri Sivanich <sivanich@sgi.com>
 +M:    Robin Holt <holt@sgi.com>
  S:    Maintained
  F:    drivers/misc/sgi-gru/
  
@@@ -7060,38 -6851,6 +7067,38 @@@ M:    Robin Holt <holt@sgi.com
  S:    Maintained
  F:    drivers/misc/sgi-xp/
  
 +SI470X FM RADIO RECEIVER I2C DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Odd Fixes
 +F:    drivers/media/radio/si470x/radio-si470x-i2c.c
 +
 +SI470X FM RADIO RECEIVER USB DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/radio/si470x/radio-si470x-common.c
 +F:    drivers/media/radio/si470x/radio-si470x.h
 +F:    drivers/media/radio/si470x/radio-si470x-usb.c
 +
 +SH_VEU V4L2 MEM2MEM DRIVER
 +M:    Guennadi Liakhovetski <g.liakhovetski@gmx.de>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/media/platform/sh_veu.c
 +F:    include/media/sh_veu.h
 +
 +SH_VOU V4L2 OUTPUT DRIVER
 +M:    Guennadi Liakhovetski <g.liakhovetski@gmx.de>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/media/platform/sh_vou.c
 +F:    include/media/sh_vou.h
 +
  SIMPLE FIRMWARE INTERFACE (SFI)
  M:    Len Brown <lenb@kernel.org>
  L:    sfi-devel@simplefirmware.org
@@@ -7263,6 -7022,14 +7270,6 @@@ L:     linux-fbdev@vger.kernel.or
  S:    Maintained
  F:    drivers/video/smscufx.c
  
 -SN-IA64 (Itanium) SUB-PLATFORM
 -M:    Jes Sorensen <jes@sgi.com>
 -L:    linux-altix@sgi.com
 -L:    linux-ia64@vger.kernel.org
 -W:    http://www.sgi.com/altix
 -S:    Maintained
 -F:    arch/ia64/sn/
 -
  SOC-CAMERA V4L2 SUBSYSTEM
  M:    Guennadi Liakhovetski <g.liakhovetski@gmx.de>
  L:    linux-media@vger.kernel.org
@@@ -7328,7 -7095,7 +7335,7 @@@ F:      include/uapi/sound
  F:    sound/
  
  SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC)
 -M:    Liam Girdwood <lrg@ti.com>
 +M:    Liam Girdwood <lgirdwood@gmail.com>
  M:    Mark Brown <broonie@opensource.wolfsonmicro.com>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -7418,7 -7185,6 +7425,7 @@@ F:      drivers/clk/spear
  
  SPI SUBSYSTEM
  M:    Grant Likely <grant.likely@secretlab.ca>
 +M:    Mark Brown <broonie@opensource.wolfsonmicro.com>
  L:    spi-devel-general@lists.sourceforge.net
  Q:    http://patchwork.kernel.org/project/spi-devel-general/list/
  T:    git git://git.secretlab.ca/git/linux-2.6.git
@@@ -7544,7 -7310,8 +7551,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/
  
@@@ -7759,14 -7526,6 +7766,14 @@@ T:    git git://linuxtv.org/mkrufky/tuners
  S:    Maintained
  F:    drivers/media/tuners/tda8290.*
  
 +TDA9840 MEDIA DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/i2c/tda9840*
 +
  TEA5761 TUNER DRIVER
  M:    Mauro Carvalho Chehab <mchehab@redhat.com>
  L:    linux-media@vger.kernel.org
@@@ -7783,35 -7542,14 +7790,35 @@@ T:   git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/tuners/tea5767.*
  
 +TEA6415C MEDIA DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/i2c/tea6415c*
 +
 +TEA6420 MEDIA DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/i2c/tea6420*
 +
  TEAM DRIVER
 -M:    Jiri Pirko <jpirko@redhat.com>
 +M:    Jiri Pirko <jiri@resnulli.us>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/team/
  F:    include/linux/if_team.h
  F:    include/uapi/linux/if_team.h
  
 +TECHNOLOGIC SYSTEMS TS-5500 PLATFORM SUPPORT
 +M:    Savoir-faire Linux Inc. <kernel@savoirfairelinux.com>
 +S:    Maintained
 +F:    arch/x86/platform/ts5500/
 +
  TECHNOTREND USB IR RECEIVER
  M:    Sean Young <sean@mess.org>
  L:    linux-media@vger.kernel.org
@@@ -7854,11 -7592,6 +7861,11 @@@ S:      Supporte
  F:      drivers/thermal/
  F:      include/linux/thermal.h
  
 +THINGM BLINK(1) USB RGB LED DRIVER
 +M:    Vivien Didelot <vivien.didelot@savoirfairelinux.com>
 +S:    Maintained
 +F:    drivers/hid/hid-thingm.c
 +
  THINKPAD ACPI EXTRAS DRIVER
  M:    Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>
  L:    ibm-acpi-devel@lists.sourceforge.net
@@@ -7891,22 -7624,6 +7898,22 @@@ F:    Documentation/backlight/lp855x-drive
  F:    drivers/video/backlight/lp855x_bl.c
  F:    include/linux/platform_data/lp855x.h
  
 +TI LP8727 CHARGER DRIVER
 +M:    Milo Kim <milo.kim@ti.com>
 +S:    Maintained
 +F:    drivers/power/lp8727_charger.c
 +F:    include/linux/platform_data/lp8727.h
 +
 +TI LP8788 MFD DRIVER
 +M:    Milo Kim <milo.kim@ti.com>
 +S:    Maintained
 +F:    drivers/iio/adc/lp8788_adc.c
 +F:    drivers/leds/leds-lp8788.c
 +F:    drivers/mfd/lp8788*.c
 +F:    drivers/power/lp8788-charger.c
 +F:    drivers/regulator/lp8788-*.c
 +F:    include/linux/mfd/lp8788*.h
 +
  TI TWL4030 SERIES SOC CODEC DRIVER
  M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -8201,10 -7918,9 +8208,10 @@@ F:    drivers/net/wireless/ath/ar5523
  USB ATTACHED SCSI
  M:    Matthew Wilcox <willy@linux.intel.com>
  M:    Sarah Sharp <sarah.a.sharp@linux.intel.com>
 +M:    Gerd Hoffmann <kraxel@redhat.com>
  L:    linux-usb@vger.kernel.org
  L:    linux-scsi@vger.kernel.org
 -S:    Supported
 +S:    Maintained
  F:    drivers/usb/storage/uas.c
  
  USB CDC ETHERNET DRIVER
@@@ -8448,14 -8164,6 +8455,14 @@@ S:    Maintaine
  F:    drivers/media/usb/uvc/
  F:    include/uapi/linux/uvcvideo.h
  
 +USB VISION DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Odd Fixes
 +F:    drivers/media/usb/usbvision/
 +
  USB WEBCAM GADGET
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-usb@vger.kernel.org
@@@ -8605,14 -8313,6 +8612,14 @@@ L:    netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/via/via-velocity.*
  
 +VIVI VIRTUAL VIDEO DRIVER
 +M:    Hans Verkuil <hverkuil@xs4all.nl>
 +L:    linux-media@vger.kernel.org
 +T:    git git://linuxtv.org/media_tree.git
 +W:    http://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/platform/vivi*
 +
  VLAN (802.1Q)
  M:    Patrick McHardy <kaber@trash.net>
  L:    netdev@vger.kernel.org
index 8bb810e1900b6448b10364f30b433384b7b67284,b588317f23935e92ba9c4c23eaa788de7ed573e8..a3725de923848baba3c55f3067588f42759b5227
@@@ -22,7 -22,7 +22,7 @@@ config I2C_ALI153
  
  config I2C_ALI1563
        tristate "ALI 1563"
 -      depends on PCI && EXPERIMENTAL
 +      depends on PCI
        help
          If you say yes to this option, support will be included for the SMB
          Host controller on Acer Labs Inc. (ALI) M1563 South Bridges.  The SMB
@@@ -56,7 -56,7 +56,7 @@@ config I2C_AMD75
  
  config I2C_AMD756_S4882
        tristate "SMBus multiplexing on the Tyan S4882"
 -      depends on I2C_AMD756 && X86 && EXPERIMENTAL
 +      depends on I2C_AMD756 && X86
        help
          Enabling this option will add specific SMBus support for the Tyan
          S4882 motherboard.  On this 4-CPU board, the SMBus is multiplexed
@@@ -106,6 -106,8 +106,8 @@@ config I2C_I80
            Panther Point (PCH)
            Lynx Point (PCH)
            Lynx Point-LP (PCH)
+           Avoton (SOC)
+           Wellsburg (PCH)
  
          This driver can also be built as a module.  If so, the module
          will be called i2c-i801.
@@@ -121,6 -123,16 +123,16 @@@ config I2C_ISC
          This driver can also be built as a module. If so, the module
          will be called i2c-isch.
  
+ config I2C_ISMT
+       tristate "Intel iSMT SMBus Controller"
+       depends on PCI && X86
+       help
+         If you say yes to this option, support will be included for the Intel
+         iSMT SMBus host controller interface.
+         This driver can also be built as a module.  If so, the module will be
+         called i2c-ismt.
  config I2C_PIIX4
        tristate "Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC)"
        depends on PCI
@@@ -164,7 -176,7 +176,7 @@@ config I2C_NFORCE
  
  config I2C_NFORCE2_S4985
        tristate "SMBus multiplexing on the Tyan S4985"
 -      depends on I2C_NFORCE2 && X86 && EXPERIMENTAL
 +      depends on I2C_NFORCE2 && X86
        help
          Enabling this option will add specific SMBus support for the Tyan
          S4985 motherboard.  On this 4-CPU board, the SMBus is multiplexed
@@@ -186,11 -198,11 +198,11 @@@ config I2C_SIS559
          will be called i2c-sis5595.
  
  config I2C_SIS630
-       tristate "SiS 630/730"
+       tristate "SiS 630/730/964"
        depends on PCI
        help
          If you say yes to this option, support will be included for the
-         SiS630 and SiS730 SMBus (a subset of I2C) interface.
+         SiS630, SiS730 and SiS964 SMBus (a subset of I2C) interface.
  
          This driver can also be built as a module.  If so, the module
          will be called i2c-sis630.
@@@ -215,7 -227,7 +227,7 @@@ config I2C_SIS96
  
  config I2C_VIA
        tristate "VIA VT82C586B"
 -      depends on PCI && EXPERIMENTAL
 +      depends on PCI
        select I2C_ALGOBIT
        help
          If you say yes to this option, support will be included for the VIA
@@@ -267,7 -279,7 +279,7 @@@ comment "Mac SMBus host controller driv
  
  config I2C_HYDRA
        tristate "CHRP Apple Hydra Mac I/O I2C interface"
 -      depends on PCI && PPC_CHRP && EXPERIMENTAL
 +      depends on PCI && PPC_CHRP
        select I2C_ALGOBIT
        help
          This supports the use of the I2C interface in the Apple Hydra Mac
@@@ -293,7 -305,7 +305,7 @@@ comment "I2C system bus drivers (mostl
  
  config I2C_AT91
        tristate "Atmel AT91 I2C Two-Wire interface (TWI)"
 -      depends on ARCH_AT91 && EXPERIMENTAL
 +      depends on ARCH_AT91
        help
          This supports the use of the I2C interface on Atmel AT91
          processors.
@@@ -319,6 -331,18 +331,18 @@@ config I2C_AU155
          This driver can also be built as a module.  If so, the module
          will be called i2c-au1550.
  
+ config I2C_BCM2835
+       tristate "Broadcom BCM2835 I2C controller"
+       depends on ARCH_BCM2835
+       help
+         If you say yes to this option, support will be included for the
+         BCM2835 I2C controller.
+         If you don't know what to do here, say N.
+         This support is also available as a module.  If so, the module
+         will be called i2c-bcm2835.
  config I2C_BLACKFIN_TWI
        tristate "Blackfin TWI I2C support"
        depends on BLACKFIN
@@@ -519,6 -543,7 +543,6 @@@ config I2C_NUC90
  
  config I2C_OCORES
        tristate "OpenCores I2C Controller"
 -      depends on EXPERIMENTAL
        help
          If you say yes to this option, support will be included for the
          OpenCores I2C controller. For details see
@@@ -711,7 -736,7 +735,7 @@@ config I2C_OCTEO
  
  config I2C_XILINX
        tristate "Xilinx I2C Controller"
 -      depends on EXPERIMENTAL && HAS_IOMEM
 +      depends on HAS_IOMEM
        help
          If you say yes to this option, support will be included for the
          Xilinx I2C controller.
@@@ -802,7 -827,7 +826,7 @@@ config I2C_PARPORT_LIGH
  
  config I2C_TAOS_EVM
        tristate "TAOS evaluation module"
 -      depends on EXPERIMENTAL
 +      depends on TTY
        select SERIO
        select SERIO_SERPORT
        default n
index ebc2241546952b34598fdb4fc0ddbd0e99171e01,3e4ad68e3bd7bf7007d88f48a3637a381058c823..75195e3f5ddb5b7090ae1f3923988d40bc1a4f8a
@@@ -553,13 -553,6 +553,6 @@@ static struct at91_twi_pdata at91sam9g1
        .has_dma_support = false,
  };
  
- static struct at91_twi_pdata at91sam9x5_config = {
-       .clk_max_div = 7,
-       .clk_offset = 4,
-       .has_unre_flag = false,
-       .has_dma_support = true,
- };
  static const struct platform_device_id at91_twi_devtypes[] = {
        {
                .name = "i2c-at91rm9200",
  };
  
  #if defined(CONFIG_OF)
+ static struct at91_twi_pdata at91sam9x5_config = {
+       .clk_max_div = 7,
+       .clk_offset = 4,
+       .has_unre_flag = false,
+       .has_dma_support = true,
+ };
  static const struct of_device_id atmel_twi_dt_ids[] = {
        {
+               .compatible = "atmel,at91rm9200-i2c",
+               .data = &at91rm9200_config,
+       } , {
                .compatible = "atmel,at91sam9260-i2c",
                .data = &at91sam9260_config,
        } , {
@@@ -723,9 -726,9 +726,9 @@@ static int at91_twi_probe(struct platfo
        if (!dev->pdata)
                return -ENODEV;
  
 -      dev->base = devm_request_and_ioremap(&pdev->dev, mem);
 -      if (!dev->base)
 -              return -EBUSY;
 +      dev->base = devm_ioremap_resource(&pdev->dev, mem);
 +      if (IS_ERR(dev->base))
 +              return PTR_ERR(dev->base);
  
        dev->irq = platform_get_irq(pdev, 0);
        if (dev->irq < 0)
index a71ece63e917d2c7434092207ce6ca8786d7b8d2,c5d2ba3c4cd082d2cf59542d05c4a60095945681..82f20c60bb7bc36193785b57a993848c37375f60
@@@ -511,9 -511,9 +511,9 @@@ static int __init i2c_imx_probe(struct 
                return -ENOENT;
        }
  
 -      base = devm_request_and_ioremap(&pdev->dev, res);
 -      if (!base)
 -              return -EBUSY;
 +      base = devm_ioremap_resource(&pdev->dev, res);
 +      if (IS_ERR(base))
 +              return PTR_ERR(base);
  
        i2c_imx = devm_kzalloc(&pdev->dev, sizeof(struct imx_i2c_struct),
                                GFP_KERNEL);
@@@ -605,7 -605,6 +605,6 @@@ static int __exit i2c_imx_remove(struc
        /* remove adapter */
        dev_dbg(&i2c_imx->adapter.dev, "adapter removed\n");
        i2c_del_adapter(&i2c_imx->adapter);
-       platform_set_drvdata(pdev, NULL);
  
        /* setup chip registers to defaults */
        writeb(0, i2c_imx->base + IMX_I2C_IADR);
index a337d08a392db520eaee71d1713af9c5ad3f1de0,dd3df76c2e356ae93f350d5e074501f7b1461c8b..0e1f8245e768d91c9fe2c58639607b952b804c57
@@@ -12,7 -12,6 +12,7 @@@
   * kind, whether express or implied.
   */
  
 +#include <linux/err.h>
  #include <linux/kernel.h>
  #include <linux/module.h>
  #include <linux/init.h>
@@@ -332,7 -331,7 +332,7 @@@ static int ocores_i2c_of_probe(struct p
                                &i2c->reg_io_width);
  
        match = of_match_node(ocores_i2c_match, pdev->dev.of_node);
-       if (match && (int)match->data == TYPE_GRLIB) {
+       if (match && (long)match->data == TYPE_GRLIB) {
                dev_dbg(&pdev->dev, "GRLIB variant of i2c-ocores\n");
                i2c->setreg = oc_setreg_grlib;
                i2c->getreg = oc_getreg_grlib;
@@@ -365,9 -364,9 +365,9 @@@ static int ocores_i2c_probe(struct plat
        if (!i2c)
                return -ENOMEM;
  
 -      i2c->base = devm_request_and_ioremap(&pdev->dev, res);
 -      if (!i2c->base)
 -              return -EADDRNOTAVAIL;
 +      i2c->base = devm_ioremap_resource(&pdev->dev, res);
 +      if (IS_ERR(i2c->base))
 +              return PTR_ERR(i2c->base);
  
        pdata = pdev->dev.platform_data;
        if (pdata) {
@@@ -452,7 -451,6 +452,6 @@@ static int ocores_i2c_remove(struct pla
  
        /* remove adapter & data */
        i2c_del_adapter(&i2c->adap);
-       platform_set_drvdata(pdev, NULL);
  
        return 0;
  }
index 3ee188679cf12136598b53e0e26108688037dfdc,79d05128c77ed40aa9e800b7eb01fca95406cf75..e02f9e36a7b2071ee7c63efa36a5efbf1878d00e
@@@ -1103,9 -1103,11 +1103,9 @@@ omap_i2c_probe(struct platform_device *
                return -ENOMEM;
        }
  
 -      dev->base = devm_request_and_ioremap(&pdev->dev, mem);
 -      if (!dev->base) {
 -              dev_err(&pdev->dev, "I2C region already claimed\n");
 -              return -ENOMEM;
 -      }
 +      dev->base = devm_ioremap_resource(&pdev->dev, mem);
 +      if (IS_ERR(dev->base))
 +              return PTR_ERR(dev->base);
  
        match = of_match_device(of_match_ptr(omap_i2c_of_match), &pdev->dev);
        if (match) {
@@@ -1260,7 -1262,6 +1260,6 @@@ err_unuse_clocks
        pm_runtime_put(dev->dev);
        pm_runtime_disable(&pdev->dev);
  err_free_mem:
-       platform_set_drvdata(pdev, NULL);
  
        return r;
  }
@@@ -1270,8 -1271,6 +1269,6 @@@ static int omap_i2c_remove(struct platf
        struct omap_i2c_dev     *dev = platform_get_drvdata(pdev);
        int ret;
  
-       platform_set_drvdata(pdev, NULL);
        i2c_del_adapter(&dev->adapter);
        ret = pm_runtime_get_sync(&pdev->dev);
        if (IS_ERR_VALUE(ret))
index c807a6d14f0ccc69e21105f74461963a1bbcb3cf,5e33df7c6c8258d03fd5299b8dfaeefe4438b149..f6b880ba1932e9058a55ef8eca542629d0ea4ffd
@@@ -111,6 -111,8 +111,8 @@@ static const struct of_device_id s3c24x
        { .compatible = "samsung,s3c2440-i2c", .data = (void *)QUIRK_S3C2440 },
        { .compatible = "samsung,s3c2440-hdmiphy-i2c",
          .data = (void *)(QUIRK_S3C2440 | QUIRK_HDMIPHY | QUIRK_NO_GPIO) },
+       { .compatible = "samsung,exynos5440-i2c",
+         .data = (void *)(QUIRK_S3C2440 | QUIRK_NO_GPIO) },
        {},
  };
  MODULE_DEVICE_TABLE(of, s3c24xx_i2c_match);
@@@ -1000,8 -1002,8 +1002,8 @@@ static int s3c24xx_i2c_probe(struct pla
  
        i2c->pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
        if (!i2c->pdata) {
-               ret = -ENOMEM;
-               goto err_noclk;
+               dev_err(&pdev->dev, "no memory for platform data\n");
+               return -ENOMEM;
        }
  
        i2c->quirks = s3c24xx_get_device_quirks(pdev);
        /* find the clock and enable it */
  
        i2c->dev = &pdev->dev;
-       i2c->clk = clk_get(&pdev->dev, "i2c");
+       i2c->clk = devm_clk_get(&pdev->dev, "i2c");
        if (IS_ERR(i2c->clk)) {
                dev_err(&pdev->dev, "cannot get clock\n");
-               ret = -ENOENT;
-               goto err_noclk;
+               return -ENOENT;
        }
  
        dev_dbg(&pdev->dev, "clock source %p\n", i2c->clk);
  
-       clk_prepare_enable(i2c->clk);
  
        /* map the registers */
  
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (res == NULL) {
                dev_err(&pdev->dev, "cannot find IO resource\n");
-               ret = -ENOENT;
-               goto err_clk;
+               return -ENOENT;
        }
  
 -      i2c->regs = devm_request_and_ioremap(&pdev->dev, res);
 +      i2c->regs = devm_ioremap_resource(&pdev->dev, res);
  
-       if (IS_ERR(i2c->regs)) {
-               ret = PTR_ERR(i2c->regs);
-               goto err_clk;
 -      if (i2c->regs == NULL) {
 -              dev_err(&pdev->dev, "cannot request and map IO\n");
 -              return -ENXIO;
--      }
++      if (IS_ERR(i2c->regs))
++              return PTR_ERR(i2c->regs);
  
        dev_dbg(&pdev->dev, "registers %p (%p)\n",
                i2c->regs, res);
        if (i2c->pdata->cfg_gpio) {
                i2c->pdata->cfg_gpio(to_platform_device(i2c->dev));
        } else if (IS_ERR(i2c->pctrl) && s3c24xx_i2c_parse_dt_gpio(i2c)) {
-               ret = -EINVAL;
-               goto err_clk;
+               return -EINVAL;
        }
  
        /* initialise the i2c controller */
  
+       clk_prepare_enable(i2c->clk);
        ret = s3c24xx_i2c_init(i2c);
-       if (ret != 0)
-               goto err_clk;
+       clk_disable_unprepare(i2c->clk);
+       if (ret != 0) {
+               dev_err(&pdev->dev, "I2C controller init failed\n");
+               return ret;
+       }
        /* find the IRQ for this unit (note, this relies on the init call to
         * ensure no current IRQs pending
         */
        i2c->irq = ret = platform_get_irq(pdev, 0);
        if (ret <= 0) {
                dev_err(&pdev->dev, "cannot find IRQ\n");
-               goto err_clk;
+               return ret;
        }
  
-       ret = request_irq(i2c->irq, s3c24xx_i2c_irq, 0,
-                         dev_name(&pdev->dev), i2c);
+       ret = devm_request_irq(&pdev->dev, i2c->irq, s3c24xx_i2c_irq, 0,
+                              dev_name(&pdev->dev), i2c);
  
        if (ret != 0) {
                dev_err(&pdev->dev, "cannot claim IRQ %d\n", i2c->irq);
-               goto err_clk;
+               return ret;
        }
  
        ret = s3c24xx_i2c_register_cpufreq(i2c);
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to register cpufreq notifier\n");
-               goto err_irq;
+               return ret;
        }
  
        /* Note, previous versions of the driver used i2c_add_adapter()
        ret = i2c_add_numbered_adapter(&i2c->adap);
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to add bus to i2c core\n");
-               goto err_cpufreq;
+               s3c24xx_i2c_deregister_cpufreq(i2c);
+               return ret;
        }
  
        of_i2c_register_devices(&i2c->adap);
        pm_runtime_enable(&i2c->adap.dev);
  
        dev_info(&pdev->dev, "%s: S3C I2C adapter\n", dev_name(&i2c->adap.dev));
-       clk_disable_unprepare(i2c->clk);
        return 0;
-  err_cpufreq:
-       s3c24xx_i2c_deregister_cpufreq(i2c);
-  err_irq:
-       free_irq(i2c->irq, i2c);
-  err_clk:
-       clk_disable_unprepare(i2c->clk);
-       clk_put(i2c->clk);
-  err_noclk:
-       return ret;
  }
  
  /* s3c24xx_i2c_remove
@@@ -1152,10 -1140,8 +1138,8 @@@ static int s3c24xx_i2c_remove(struct pl
        s3c24xx_i2c_deregister_cpufreq(i2c);
  
        i2c_del_adapter(&i2c->adap);
-       free_irq(i2c->irq, i2c);
  
        clk_disable_unprepare(i2c->clk);
-       clk_put(i2c->clk);
  
        if (pdev->dev.of_node && IS_ERR(i2c->pctrl))
                s3c24xx_i2c_dt_gpio_free(i2c);
index 60195b590637d89aa6f4345e861a9f72953eec66,f1912c8520fe8c5f3471d95c4e1ca2999b4308fe..0a6f941133f66d3cce251403e606088db7fb326c
@@@ -888,11 -888,11 +888,11 @@@ stu300_probe(struct platform_device *pd
        if (!res)
                return -ENOENT;
  
 -      dev->virtbase = devm_request_and_ioremap(&pdev->dev, res);
 +      dev->virtbase = devm_ioremap_resource(&pdev->dev, res);
        dev_dbg(&pdev->dev, "initialize bus device I2C%d on virtual "
                "base %p\n", bus_nr, dev->virtbase);
 -      if (!dev->virtbase)
 -              return -ENOMEM;
 +      if (IS_ERR(dev->virtbase))
 +              return PTR_ERR(dev->virtbase);
  
        dev->irq = platform_get_irq(pdev, 0);
        ret = devm_request_irq(&pdev->dev, dev->irq, stu300_irh, 0, NAME, dev);
@@@ -975,7 -975,6 +975,6 @@@ stu300_remove(struct platform_device *p
        i2c_del_adapter(&dev->adapter);
        /* Turn off everything */
        stu300_wr8(0x00, dev->virtbase + I2C_CR);
-       platform_set_drvdata(pdev, NULL);
        return 0;
  }
  
index f0d9923323ea7f16a56fb74302e216d4cbd067b5,e58a58d7231c6f93d1a2452681358cdb7ce506a6..36704e3ab3fa9a87cdd9ca53e825f80792c28732
  #include <linux/of_i2c.h>
  #include <linux/of_device.h>
  #include <linux/module.h>
 +#include <linux/clk/tegra.h>
  
  #include <asm/unaligned.h>
  
 -#include <mach/clk.h>
 -
  #define TEGRA_I2C_TIMEOUT (msecs_to_jiffies(1000))
  #define BYTES_PER_FIFO_WORD 4
  
@@@ -70,6 -71,8 +70,8 @@@
  #define I2C_INT_TX_FIFO_DATA_REQ              (1<<1)
  #define I2C_INT_RX_FIFO_DATA_REQ              (1<<0)
  #define I2C_CLK_DIVISOR                               0x06c
+ #define I2C_CLK_DIVISOR_STD_FAST_MODE_SHIFT   16
+ #define I2C_CLK_MULTIPLIER_STD_FAST_MODE      8
  
  #define DVC_CTRL_REG1                         0x000
  #define DVC_CTRL_REG1_INTR_EN                 (1<<10)
@@@ -116,10 -119,23 +118,23 @@@ enum msg_end_type 
  /**
   * struct tegra_i2c_hw_feature : Different HW support on Tegra
   * @has_continue_xfer_support: Continue transfer supports.
+  * @has_per_pkt_xfer_complete_irq: Has enable/disable capability for transfer
+  *            complete interrupt per packet basis.
+  * @has_single_clk_source: The i2c controller has single clock source. Tegra30
+  *            and earlier Socs has two clock sources i.e. div-clk and
+  *            fast-clk.
+  * @clk_divisor_hs_mode: Clock divisor in HS mode.
+  * @clk_divisor_std_fast_mode: Clock divisor in standard/fast mode. It is
+  *            applicable if there is no fast clock source i.e. single clock
+  *            source.
   */
  
  struct tegra_i2c_hw_feature {
        bool has_continue_xfer_support;
+       bool has_per_pkt_xfer_complete_irq;
+       bool has_single_clk_source;
+       int clk_divisor_hs_mode;
+       int clk_divisor_std_fast_mode;
  };
  
  /**
@@@ -365,11 -381,13 +380,13 @@@ static void tegra_dvc_init(struct tegra
  static inline int tegra_i2c_clock_enable(struct tegra_i2c_dev *i2c_dev)
  {
        int ret;
-       ret = clk_prepare_enable(i2c_dev->fast_clk);
-       if (ret < 0) {
-               dev_err(i2c_dev->dev,
-                       "Enabling fast clk failed, err %d\n", ret);
-               return ret;
+       if (!i2c_dev->hw->has_single_clk_source) {
+               ret = clk_prepare_enable(i2c_dev->fast_clk);
+               if (ret < 0) {
+                       dev_err(i2c_dev->dev,
+                               "Enabling fast clk failed, err %d\n", ret);
+                       return ret;
+               }
        }
        ret = clk_prepare_enable(i2c_dev->div_clk);
        if (ret < 0) {
  static inline void tegra_i2c_clock_disable(struct tegra_i2c_dev *i2c_dev)
  {
        clk_disable_unprepare(i2c_dev->div_clk);
-       clk_disable_unprepare(i2c_dev->fast_clk);
+       if (!i2c_dev->hw->has_single_clk_source)
+               clk_disable_unprepare(i2c_dev->fast_clk);
  }
  
  static int tegra_i2c_init(struct tegra_i2c_dev *i2c_dev)
  {
        u32 val;
        int err = 0;
+       int clk_multiplier = I2C_CLK_MULTIPLIER_STD_FAST_MODE;
+       u32 clk_divisor;
  
        tegra_i2c_clock_enable(i2c_dev);
  
                (0x2 << I2C_CNFG_DEBOUNCE_CNT_SHIFT);
        i2c_writel(i2c_dev, val, I2C_CNFG);
        i2c_writel(i2c_dev, 0, I2C_INT_MASK);
-       clk_set_rate(i2c_dev->div_clk, i2c_dev->bus_clk_rate * 8);
+       clk_multiplier *= (i2c_dev->hw->clk_divisor_std_fast_mode + 1);
+       clk_set_rate(i2c_dev->div_clk, i2c_dev->bus_clk_rate * clk_multiplier);
+       /* Make sure clock divisor programmed correctly */
+       clk_divisor = i2c_dev->hw->clk_divisor_hs_mode;
+       clk_divisor |= i2c_dev->hw->clk_divisor_std_fast_mode <<
+                                       I2C_CLK_DIVISOR_STD_FAST_MODE_SHIFT;
+       i2c_writel(i2c_dev, clk_divisor, I2C_CLK_DIVISOR);
  
        if (!i2c_dev->is_dvc) {
                u32 sl_cfg = i2c_readl(i2c_dev, I2C_SL_CNFG);
@@@ -546,6 -575,8 +574,8 @@@ static int tegra_i2c_xfer_msg(struct te
                tegra_i2c_fill_tx_fifo(i2c_dev);
  
        int_mask = I2C_INT_NO_ACK | I2C_INT_ARBITRATION_LOST;
+       if (i2c_dev->hw->has_per_pkt_xfer_complete_irq)
+               int_mask |= I2C_INT_PACKET_XFER_COMPLETE;
        if (msg->flags & I2C_M_RD)
                int_mask |= I2C_INT_RX_FIFO_DATA_REQ;
        else if (i2c_dev->msg_buf_remaining)
        ret = wait_for_completion_timeout(&i2c_dev->msg_complete, TEGRA_I2C_TIMEOUT);
        tegra_i2c_mask_irq(i2c_dev, int_mask);
  
-       if (WARN_ON(ret == 0)) {
+       if (ret == 0) {
                dev_err(i2c_dev->dev, "i2c transfer timed out\n");
  
                tegra_i2c_init(i2c_dev);
@@@ -633,15 -664,32 +663,32 @@@ static const struct i2c_algorithm tegra
  
  static const struct tegra_i2c_hw_feature tegra20_i2c_hw = {
        .has_continue_xfer_support = false,
+       .has_per_pkt_xfer_complete_irq = false,
+       .has_single_clk_source = false,
+       .clk_divisor_hs_mode = 3,
+       .clk_divisor_std_fast_mode = 0,
  };
  
  static const struct tegra_i2c_hw_feature tegra30_i2c_hw = {
        .has_continue_xfer_support = true,
+       .has_per_pkt_xfer_complete_irq = false,
+       .has_single_clk_source = false,
+       .clk_divisor_hs_mode = 3,
+       .clk_divisor_std_fast_mode = 0,
+ };
+ static const struct tegra_i2c_hw_feature tegra114_i2c_hw = {
+       .has_continue_xfer_support = true,
+       .has_per_pkt_xfer_complete_irq = true,
+       .has_single_clk_source = true,
+       .clk_divisor_hs_mode = 1,
+       .clk_divisor_std_fast_mode = 0x19,
  };
  
  #if defined(CONFIG_OF)
  /* Match table for of_platform binding */
  static const struct of_device_id tegra_i2c_of_match[] = {
+       { .compatible = "nvidia,tegra114-i2c", .data = &tegra114_i2c_hw, },
        { .compatible = "nvidia,tegra30-i2c", .data = &tegra30_i2c_hw, },
        { .compatible = "nvidia,tegra20-i2c", .data = &tegra20_i2c_hw, },
        { .compatible = "nvidia,tegra20-i2c-dvc", .data = &tegra20_i2c_hw, },
@@@ -668,9 -716,11 +715,9 @@@ static int tegra_i2c_probe(struct platf
                return -EINVAL;
        }
  
 -      base = devm_request_and_ioremap(&pdev->dev, res);
 -      if (!base) {
 -              dev_err(&pdev->dev, "Cannot request/ioremap I2C registers\n");
 -              return -EADDRNOTAVAIL;
 -      }
 +      base = devm_ioremap_resource(&pdev->dev, res);
 +      if (IS_ERR(base))
 +              return PTR_ERR(base);
  
        res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
        if (!res) {
                return PTR_ERR(div_clk);
        }
  
-       fast_clk = devm_clk_get(&pdev->dev, "fast-clk");
-       if (IS_ERR(fast_clk)) {
-               dev_err(&pdev->dev, "missing bus clock");
-               return PTR_ERR(fast_clk);
-       }
        i2c_dev = devm_kzalloc(&pdev->dev, sizeof(*i2c_dev), GFP_KERNEL);
        if (!i2c_dev) {
                dev_err(&pdev->dev, "Could not allocate struct tegra_i2c_dev");
  
        i2c_dev->base = base;
        i2c_dev->div_clk = div_clk;
-       i2c_dev->fast_clk = fast_clk;
        i2c_dev->adapter.algo = &tegra_i2c_algo;
        i2c_dev->irq = irq;
        i2c_dev->cont_id = pdev->id;
        }
        init_completion(&i2c_dev->msg_complete);
  
+       if (!i2c_dev->hw->has_single_clk_source) {
+               fast_clk = devm_clk_get(&pdev->dev, "fast-clk");
+               if (IS_ERR(fast_clk)) {
+                       dev_err(&pdev->dev, "missing fast clock");
+                       return PTR_ERR(fast_clk);
+               }
+               i2c_dev->fast_clk = fast_clk;
+       }
        platform_set_drvdata(pdev, i2c_dev);
  
        ret = tegra_i2c_init(i2c_dev);
index 93f029e98c0d0fc9d93f47d613614c48f78a436d,86010293e23ca450cc5637dfffb96afeb2f0f4d3..7945b05d3ea0415c2fe86c5f578fa90787e20ef1
@@@ -7,7 -7,6 +7,7 @@@
   * warranty of any kind, whether express or implied.
   */
  
 +#include <linux/err.h>
  #include <linux/kernel.h>
  #include <linux/module.h>
  #include <linux/slab.h>
@@@ -226,9 -225,11 +226,9 @@@ static int xlr_i2c_probe(struct platfor
                return -ENOMEM;
  
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 -      priv->iobase = devm_request_and_ioremap(&pdev->dev, res);
 -      if (!priv->iobase) {
 -              dev_err(&pdev->dev, "devm_request_and_ioremap failed\n");
 -              return -EBUSY;
 -      }
 +      priv->iobase = devm_ioremap_resource(&pdev->dev, res);
 +      if (IS_ERR(priv->iobase))
 +              return PTR_ERR(priv->iobase);
  
        priv->adap.dev.parent = &pdev->dev;
        priv->adap.owner        = THIS_MODULE;
@@@ -256,7 -257,6 +256,6 @@@ static int xlr_i2c_remove(struct platfo
  
        priv = platform_get_drvdata(pdev);
        i2c_del_adapter(&priv->adap);
-       platform_set_drvdata(pdev, NULL);
        return 0;
  }