Merge tag 'v3.8-rc1' into staging/for_v3.9
authorMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 27 Dec 2012 14:44:11 +0000 (12:44 -0200)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 27 Dec 2012 14:44:11 +0000 (12:44 -0200)
Linux 3.8-rc1

* tag 'v3.8-rc1': (10696 commits)
  Linux 3.8-rc1
  Revert "nfsd: warn on odd reply state in nfsd_vfs_read"
  ARM: dts: fix duplicated build target and alphabetical sort out for exynos
  dm stripe: add WRITE SAME support
  dm: remove map_info
  dm snapshot: do not use map_context
  dm thin: dont use map_context
  dm raid1: dont use map_context
  dm flakey: dont use map_context
  dm raid1: rename read_record to bio_record
  dm: move target request nr to dm_target_io
  dm snapshot: use per_bio_data
  dm verity: use per_bio_data
  dm raid1: use per_bio_data
  dm: introduce per_bio_data
  dm kcopyd: add WRITE SAME support to dm_kcopyd_zero
  dm linear: add WRITE SAME support
  dm: add WRITE SAME support
  dm: prepare to support WRITE SAME
  dm ioctl: use kmalloc if possible
  ...

Conflicts:
MAINTAINERS

1  2 
MAINTAINERS
arch/arm/mach-davinci/board-dm644x-evm.c
arch/arm/mach-davinci/dm644x.c
drivers/media/platform/omap/omap_vout.c
drivers/media/platform/soc_camera/mx2_camera.c
drivers/media/platform/soc_camera/mx3_camera.c
drivers/media/platform/soc_camera/omap1_camera.c
drivers/staging/media/dt3155v4l/dt3155v4l.c
drivers/staging/media/lirc/lirc_parallel.c
drivers/staging/media/lirc/lirc_serial.c
drivers/staging/media/lirc/lirc_sir.c

diff --combined MAINTAINERS
index 7cea7ea606c73d2c22bb3647db534f943438e5bd,4e2a1f67a1fcf00b553e8190947368d240d74b44..376117d5518da2703984a58c624ccbd3fdd328f0
@@@ -464,14 -464,6 +464,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
@@@ -566,18 -558,6 +566,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
@@@ -712,6 -692,12 +712,12 @@@ M:       Lennert Buytenhek <kernel@wantstofly
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
+ ARM/Allwinner A1X SoC support
+ M:    Maxime Ripard <maxime.ripard@free-electrons.com>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    arch/arm/mach-sunxi/
  ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES
  M:    Andrew Victor <linux@maxim.org.za>
  M:    Nicolas Ferre <nicolas.ferre@atmel.com>
@@@ -734,6 -720,12 +740,12 @@@ S:       Maintaine
  F:    arch/arm/mach-cns3xxx/
  T:    git git://git.infradead.org/users/cbou/linux-cns3xxx.git
  
+ ARM/CIRRUS LOGIC CLPS711X ARM ARCHITECTURE
+ M:    Alexander Shiyan <shc_work@mail.ru>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Odd Fixes
+ F:    arch/arm/mach-clps711x/
  ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
  M:    Hartley Sweeten <hsweeten@visionengravers.com>
  M:    Ryan Mallon <rmallon@gmail.com>
@@@ -824,7 -816,6 +836,6 @@@ L: linux-arm-kernel@lists.infradead.or
  S:    Maintained
  T:    git git://git.pengutronix.de/git/imx/linux-2.6.git
  F:    arch/arm/mach-imx/
- F:    arch/arm/plat-mxc/
  F:    arch/arm/configs/imx*_defconfig
  
  ARM/FREESCALE IMX6
@@@ -1128,14 -1119,6 +1139,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>
@@@ -1165,12 -1148,12 +1176,12 @@@ S:   Maintaine
  F:    drivers/media/platform/s5p-tv/
  
  ARM/SHMOBILE ARM ARCHITECTURE
- M:    Paul Mundt <lethal@linux-sh.org>
+ M:    Simon Horman <horms@verge.net.au>
  M:    Magnus Damm <magnus.damm@gmail.com>
  L:    linux-sh@vger.kernel.org
  W:    http://oss.renesas.com
  Q:    http://patchwork.kernel.org/project/linux-sh/list/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.git rmobile-latest
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next
  S:    Supported
  F:    arch/arm/mach-shmobile/
  F:    drivers/sh/
@@@ -1272,6 -1255,7 +1283,7 @@@ 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>
@@@ -1282,9 -1266,11 +1294,11 @@@ F:    arch/arm/mach-pxa/include/mach/z2.
  
  ARM64 PORT (AARCH64 ARCHITECTURE)
  M:    Catalin Marinas <catalin.marinas@arm.com>
+ M:    Will Deacon <will.deacon@arm.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm64/
+ F:    Documentation/arm64/
  
  ASC7621 HARDWARE MONITOR DRIVER
  M:    George Joseph <george.joseph@fairview5.com>
@@@ -1294,7 -1280,7 +1308,7 @@@ F:      Documentation/hwmon/asc762
  F:    drivers/hwmon/asc7621.c
  
  ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS
- M:    Corentin Chary <corentincj@iksaif.net>
+ M:    Corentin Chary <corentin.chary@gmail.com>
  L:    acpi4asus-user@lists.sourceforge.net
  L:    platform-driver-x86@vger.kernel.org
  W:    http://acpi4asus.sf.net
@@@ -1403,14 -1389,6 +1417,6 @@@ S:     Maintaine
  F:    drivers/atm/
  F:    include/linux/atm*
  
- ATMEL AT91 MCI DRIVER
- M:    Ludovic Desroches <ludovic.desroches@atmel.com>
- L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
- W:    http://www.atmel.com/products/AT91/
- W:    http://www.at91.com/
- S:    Maintained
- F:    drivers/mmc/host/at91_mci.c
  ATMEL AT91 / AT32 MCI DRIVER
  M:    Ludovic Desroches <ludovic.desroches@atmel.com>
  S:    Maintained
@@@ -1434,7 -1412,7 +1440,7 @@@ ATMEL ISI DRIVE
  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
@@@ -1531,14 -1509,6 +1537,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
@@@ -1725,10 -1695,9 +1731,9 @@@ F:     drivers/net/ethernet/broadcom/tg3.
  
  BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER
  M:    Brett Rudley <brudley@broadcom.com>
- M:    Roland Vossen <rvossen@broadcom.com>
  M:    Arend van Spriel <arend@broadcom.com>
  M:    Franky (Zhenhui) Lin <frankyl@broadcom.com>
- M:    Kan Yan <kanyan@broadcom.com>
+ M:    Hante Meuleman <meuleman@broadcom.com>
  L:    linux-wireless@vger.kernel.org
  L:    brcm80211-dev-list@broadcom.com
  S:    Supported
@@@ -1821,14 -1790,6 +1826,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
@@@ -1968,7 -1929,7 +1973,7 @@@ F:      scripts/checkpatch.p
  
  CHINESE DOCUMENTATION
  M:    Harry Wei <harryxiyou@gmail.com>
- L:    xiyoulinuxkernelgroup@googlegroups.com
+ L:    xiyoulinuxkernelgroup@googlegroups.com (subscribers-only)
  L:    linux-kernel@zh-kernel.org (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/zh_CN/
@@@ -2053,7 -2014,6 +2058,6 @@@ F:      fs/coda
  F:    include/linux/coda*.h
  
  COMMON CLK FRAMEWORK
- M:    Mike Turquette <mturquette@ti.com>
  M:    Mike Turquette <mturquette@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (same as CLK API & CLKDEV)
  T:    git git://git.linaro.org/people/mturquette/linux.git
@@@ -2227,15 -2187,6 +2231,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
@@@ -2598,13 -2549,15 +2602,22 @@@ S:   Supporte
  F:    drivers/gpu/drm/exynos
  F:    include/drm/exynos*
  
+ DRM DRIVERS FOR NVIDIA TEGRA
+ M:    Thierry Reding <thierry.reding@avionic-design.de>
+ L:    dri-devel@lists.freedesktop.org
+ L:    linux-tegra@vger.kernel.org
+ T:    git git://gitorious.org/thierryreding/linux.git
+ S:    Maintained
+ 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
@@@ -2669,7 -2622,7 +2682,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>
@@@ -2807,6 -2760,15 +2820,15 @@@ W:    bluesmoke.sourceforge.ne
  S:    Maintained
  F:    drivers/edac/amd64_edac*
  
+ EDAC-CAVIUM
+ M:    Ralf Baechle <ralf@linux-mips.org>
+ M:    David Daney <david.daney@cavium.com>
+ L:    linux-edac@vger.kernel.org
+ L:    linux-mips@linux-mips.org
+ W:    bluesmoke.sourceforge.net
+ S:    Supported
+ F:    drivers/edac/octeon_edac*
  EDAC-E752X
  M:    Mark Gross <mark.gross@intel.com>
  M:    Doug Thompson <dougthompson@xmission.com>
@@@ -3020,7 -2982,6 +3042,6 @@@ L:      linux-ext4@vger.kernel.or
  S:    Maintained
  F:    Documentation/filesystems/ext3.txt
  F:    fs/ext3/
- F:    include/linux/ext3*
  
  EXT4 FILE SYSTEM
  M:    "Theodore Ts'o" <tytso@mit.edu>
@@@ -3167,7 -3128,8 +3188,8 @@@ W:      http://ieee1394.wiki.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394.git
  S:    Maintained
  F:    drivers/firewire/
- F:    include/linux/firewire*.h
+ F:    include/linux/firewire.h
+ F:    include/uapi/linux/firewire*.h
  F:    tools/firewire/
  
  FIRMWARE LOADER (request_firmware)
@@@ -3209,6 -3171,12 +3231,12 @@@ F:    drivers/video
  F:    include/video/
  F:    include/linux/fb.h
  
+ FREESCALE DIU FRAMEBUFFER DRIVER
+ M:    Timur Tabi <timur@freescale.com>
+ L:    linux-fbdev@vger.kernel.org
+ S:    Supported
+ F:    drivers/video/fsl-diu-fb.*
  FREESCALE DMA DRIVER
  M:    Li Yang <leoli@freescale.com>
  M:    Zhang Wei <zw@zh-kernel.org>
@@@ -3351,14 -3319,6 +3379,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
@@@ -3701,7 -3661,7 +3729,7 @@@ S:      Maintaine
  F:    drivers/input/touchscreen/htcpen.c
  
  HUGETLB FILESYSTEM
- M:    William Irwin <wli@holomorphy.com>
+ M:    Nadia Yvette Chambers <nyc@holomorphy.com>
  S:    Maintained
  F:    fs/hugetlbfs/
  
@@@ -3713,7 -3673,6 +3741,6 @@@ S:      Maintaine
  F:    drivers/hv/
  F:    drivers/hid/hid-hyperv.c
  F:    drivers/net/hyperv/
- F:    drivers/staging/hv/
  
  I2C OVER PARALLEL PORT
  M:    Jean Delvare <khali@linux-fr.org>
@@@ -3762,7 -3721,7 +3789,7 @@@ I2C/SMBUS STUB DRIVE
  M:    "Mark M. Hoffman" <mhoffman@lightlink.com>
  L:    linux-i2c@vger.kernel.org
  S:    Maintained
- F:    drivers/i2c/busses/i2c-stub.c
+ F:    drivers/i2c/i2c-stub.c
  
  I2C SUBSYSTEM
  M:    Wolfram Sang <w.sang@pengutronix.de>
@@@ -3912,6 -3871,15 +3939,15 @@@ M:    Stanislaw Gruszka <stf_xl@wp.pl
  S:    Maintained
  F:    drivers/usb/atm/ueagle-atm.c
  
+ INDUSTRY PACK SUBSYSTEM (IPACK)
+ M:    Samuel Iglesias Gonsalvez <siglesias@igalia.com>
+ M:    Jens Taprogge <jens.taprogge@taprogge.org>
+ M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+ L:    industrypack-devel@lists.sourceforge.net
+ W:    http://industrypack.sourceforge.net
+ S:    Maintained
+ F:    drivers/ipack/
  INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
  M:    Mimi Zohar <zohar@us.ibm.com>
  S:    Supported
@@@ -4051,7 -4019,9 +4087,9 @@@ M:      Greg Rose <gregory.v.rose@intel.com
  M:    Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
  M:    Alex Duyck <alexander.h.duyck@intel.com>
  M:    John Ronciak <john.ronciak@intel.com>
+ M:    Tushar Dave <tushar.n.dave@intel.com>
  L:    e1000-devel@lists.sourceforge.net
+ W:    http://www.intel.com/support/feedback.htm
  W:    http://e1000.sourceforge.net/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next.git
@@@ -4232,14 -4202,6 +4270,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>
@@@ -4352,7 -4314,6 +4390,6 @@@ M:      Jan Kara <jack@suse.cz
  L:    linux-ext4@vger.kernel.org
  S:    Maintained
  F:    fs/jbd/
- F:    include/linux/ext3_jbd.h
  F:    include/linux/jbd.h
  
  JOURNALLING LAYER FOR BLOCK DEVICES (JBD2)
@@@ -4397,14 -4358,6 +4434,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
@@@ -4455,10 -4408,10 +4492,10 @@@ F:   include/linux/kvm
  F:    virt/kvm/
  
  KERNEL VIRTUAL MACHINE (KVM) FOR AMD-V
- M:    Joerg Roedel <joerg.roedel@amd.com>
+ M:    Joerg Roedel <joro@8bytes.org>
  L:    kvm@vger.kernel.org
  W:    http://kvm.qumranet.com
- S:    Supported
+ S:    Maintained
  F:    arch/x86/include/asm/svm.h
  F:    arch/x86/kvm/svm.c
  
@@@ -4466,6 -4419,7 +4503,7 @@@ KERNEL VIRTUAL MACHINE (KVM) FOR POWERP
  M:    Alexander Graf <agraf@suse.de>
  L:    kvm-ppc@vger.kernel.org
  W:    http://kvm.qumranet.com
+ T:    git git://github.com/agraf/linux-2.6.git
  S:    Supported
  F:    arch/powerpc/include/asm/kvm*
  F:    arch/powerpc/kvm/
@@@ -4803,13 -4757,16 +4841,16 @@@ S:   Maintaine
  F:    fs/logfs/
  
  LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
- M:    Eric Moore <Eric.Moore@lsi.com>
+ M:    Nagalakshmi Nandigama <Nagalakshmi.Nandigama@lsi.com>
+ M:    Sreekanth Reddy <Sreekanth.Reddy@lsi.com>
  M:    support@lsi.com
  L:    DL-MPTFusionLinux@lsi.com
  L:    linux-scsi@vger.kernel.org
  W:    http://www.lsilogic.com/support
  S:    Supported
  F:    drivers/message/fusion/
+ F:    drivers/scsi/mpt2sas/
+ F:    drivers/scsi/mpt3sas/
  
  LSILOGIC/SYMBIOS/NCR 53C8XX and 53C1010 PCI-SCSI drivers
  M:    Matthew Wilcox <matthew@wil.cx>
@@@ -4874,13 -4831,6 +4915,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
@@@ -4935,6 -4885,12 +4976,12 @@@ S:    Maintaine
  F:    drivers/net/ethernet/marvell/mv643xx_eth.*
  F:    include/linux/mv643xx.h
  
+ MARVELL MVNETA ETHERNET DRIVER
+ M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ F:    drivers/net/ethernet/marvell/mvneta.*
  MARVELL MWIFIEX WIRELESS DRIVER
  M:    Bing Zhao <bzhao@marvell.com>
  L:    linux-wireless@vger.kernel.org
@@@ -4972,14 -4928,6 +5019,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
@@@ -5002,14 -4950,6 +5049,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
@@@ -5019,6 -4959,14 +5066,14 @@@ F:    Documentation/scsi/megaraid.tx
  F:    drivers/scsi/megaraid.*
  F:    drivers/scsi/megaraid/
  
+ MELLANOX ETHERNET DRIVER (mlx4_en)
+ M:    Amir Vadai <amirv@mellanox.com>
+ L:    netdev@vger.kernel.org
+ S:    Supported
+ W:    http://www.mellanox.com
+ Q:    http://patchwork.ozlabs.org/project/netdev/list/
+ F:    drivers/net/ethernet/mellanox/mlx4/en_*
  MEMORY MANAGEMENT
  L:    linux-mm@kvack.org
  W:    http://www.linux-mm.org
@@@ -5071,14 -5019,6 +5126,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
@@@ -5276,7 -5216,7 +5331,7 @@@ NETWORKING [GENERAL
  M:    "David S. Miller" <davem@davemloft.net>
  L:    netdev@vger.kernel.org
  W:    http://www.linuxfoundation.org/en/Net
W:    http://patchwork.ozlabs.org/project/netdev/list/
Q:    http://patchwork.ozlabs.org/project/netdev/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
  S:    Maintained
@@@ -5336,6 -5276,7 +5391,7 @@@ F:      drivers/net/wireless
  NETWORKING DRIVERS
  L:    netdev@vger.kernel.org
  W:    http://www.linuxfoundation.org/en/Net
+ Q:    http://patchwork.ozlabs.org/project/netdev/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
  S:    Odd Fixes
@@@ -5368,6 -5309,7 +5424,7 @@@ F:      net/nfc
  F:    include/linux/nfc.h
  F:    include/net/nfc/
  F:    drivers/nfc/
+ F:    include/linux/platform_data/pn544.h
  
  NFS, SUNRPC, AND LOCKD CLIENTS
  M:    Trond Myklebust <Trond.Myklebust@netapp.com>
@@@ -5910,6 -5852,12 +5967,12 @@@ S:    Maintaine
  F:    drivers/pinctrl/
  F:    include/linux/pinctrl/
  
+ PIN CONTROLLER - ATMEL AT91
+ M:    Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
+ L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S:    Maintained
+ F:    drivers/pinctrl/pinctrl-at91.c
  PIN CONTROLLER - ST SPEAR
  M:    Viresh Kumar <viresh.linux@gmail.com>
  L:    spear-devel@list.st.com
@@@ -6250,14 -6198,6 +6313,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>
@@@ -6531,14 -6471,6 +6594,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
@@@ -6549,16 -6481,17 +6612,16 @@@ 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/
  F:    include/media/saa7146*
  
  SAMSUNG LAPTOP DRIVER
- M:    Corentin Chary <corentincj@iksaif.net>
+ M:    Corentin Chary <corentin.chary@gmail.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/samsung-laptop.c
@@@ -6691,6 -6624,7 +6754,7 @@@ F:      drivers/scsi/st
  SCTP PROTOCOL
  M:    Vlad Yasevich <vyasevich@gmail.com>
  M:    Sridhar Samudrala <sri@us.ibm.com>
+ M:    Neil Horman <nhorman@tuxdriver.com>
  L:    linux-sctp@vger.kernel.org
  W:    http://lksctp.sourceforge.net
  S:    Maintained
@@@ -6849,38 -6783,6 +6913,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
@@@ -7553,14 -7455,6 +7617,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
@@@ -7577,22 -7471,6 +7641,22 @@@ 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>
  L:    netdev@vger.kernel.org
@@@ -7667,6 -7545,13 +7731,13 @@@ S:    Maintaine
  F:    sound/soc/codecs/lm49453*
  F:    sound/soc/codecs/isabelle*
  
+ TI LP855x BACKLIGHT DRIVER
+ M:    Milo Kim <milo.kim@ti.com>
+ S:    Maintained
+ F:    Documentation/backlight/lp855x-driver.txt
+ F:    drivers/video/backlight/lp855x_bl.c
+ F:    include/linux/platform_data/lp855x.h
  TI TWL4030 SERIES SOC CODEC DRIVER
  M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -7799,6 -7684,7 +7870,7 @@@ K:      ^Subject:.*(?i)trivia
  
  TTY LAYER
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+ M:    Jiri Slaby <jslaby@suse.cz>
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git
  F:    drivers/tty/
@@@ -7824,8 -7710,7 +7896,7 @@@ S:      Maintaine
  F:    drivers/net/ethernet/dec/tulip/
  
  TUN/TAP driver
- M:    Maxim Krasnyansky <maxk@qualcomm.com>
- L:    vtun@office.satix.net
+ M:    Maxim Krasnyansky <maxk@qti.qualcomm.com>
  W:    http://vtun.sourceforge.net/tun
  S:    Maintained
  F:    Documentation/networking/tuntap.txt
@@@ -7947,6 -7832,12 +8018,12 @@@ S:    Maintaine
  F:    Documentation/usb/acm.txt
  F:    drivers/usb/class/cdc-acm.*
  
+ USB AR5523 WIRELESS DRIVER
+ M:    Pontus Fuchs <pontus.fuchs@gmail.com>
+ L:    linux-wireless@vger.kernel.org
+ S:    Maintained
+ 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>
@@@ -7955,12 -7846,6 +8032,6 @@@ L:     linux-scsi@vger.kernel.or
  S:    Supported
  F:    drivers/usb/storage/uas.c
  
- USB BLOCK DRIVER (UB ub)
- M:    Pete Zaitcev <zaitcev@redhat.com>
- L:    linux-usb@vger.kernel.org
- S:    Supported
- F:    drivers/block/ub.c
  USB CDC ETHERNET DRIVER
  M:    Oliver Neukum <oliver@neukum.org>
  L:    linux-usb@vger.kernel.org
@@@ -8202,14 -8087,6 +8273,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
@@@ -8357,14 -8234,6 +8428,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 b00ade49807776598527da146397dfd9916e1737,f5e018de7fa512403fbd62bcf0a82277b9727830..8e1b4ffb5e542411e180401afc36a14af61e744a
@@@ -519,13 -519,11 +519,11 @@@ static int dm6444evm_msp430_get_pins(vo
        char buf[4];
        struct i2c_msg msg[2] = {
                {
-                       .addr = dm6446evm_msp->addr,
                        .flags = 0,
                        .len = 2,
                        .buf = (void __force *)txbuf,
                },
                {
-                       .addr = dm6446evm_msp->addr,
                        .flags = I2C_M_RD,
                        .len = 4,
                        .buf = buf,
        if (!dm6446evm_msp)
                return -ENXIO;
  
+       msg[0].addr = dm6446evm_msp->addr;
+       msg[1].addr = dm6446evm_msp->addr;
        /* Command 4 == get input state, returns port 2 and port3 data
         *   S Addr W [A] len=2 [A] cmd=4 [A]
         *   RS Addr R [A] [len=4] A [cmd=4] A [port2] A [port3] N P
@@@ -689,7 -690,7 +690,7 @@@ static struct vpbe_output dm644xevm_vpb
                        .std            = VENC_STD_ALL,
                        .capabilities   = V4L2_OUT_CAP_STD,
                },
 -              .subdev_name    = VPBE_VENC_SUBDEV_NAME,
 +              .subdev_name    = DM644X_VPBE_VENC_SUBDEV_NAME,
                .default_mode   = "ntsc",
                .num_modes      = ARRAY_SIZE(dm644xevm_enc_std_timing),
                .modes          = dm644xevm_enc_std_timing,
                        .type           = V4L2_OUTPUT_TYPE_ANALOG,
                        .capabilities   = V4L2_OUT_CAP_DV_TIMINGS,
                },
 -              .subdev_name    = VPBE_VENC_SUBDEV_NAME,
 +              .subdev_name    = DM644X_VPBE_VENC_SUBDEV_NAME,
                .default_mode   = "480p59_94",
                .num_modes      = ARRAY_SIZE(dm644xevm_enc_preset_timing),
                .modes          = dm644xevm_enc_preset_timing,
@@@ -712,10 -713,10 +713,10 @@@ static struct vpbe_config dm644xevm_dis
        .module_name    = "dm644x-vpbe-display",
        .i2c_adapter_id = 1,
        .osd            = {
 -              .module_name    = VPBE_OSD_SUBDEV_NAME,
 +              .module_name    = DM644X_VPBE_OSD_SUBDEV_NAME,
        },
        .venc           = {
 -              .module_name    = VPBE_VENC_SUBDEV_NAME,
 +              .module_name    = DM644X_VPBE_VENC_SUBDEV_NAME,
        },
        .num_outputs    = ARRAY_SIZE(dm644xevm_vpbe_outputs),
        .outputs        = dm644xevm_vpbe_outputs,
@@@ -776,7 -777,7 +777,7 @@@ static __init void davinci_evm_init(voi
        struct davinci_soc_info *soc_info = &davinci_soc_info;
  
        aemif_clk = clk_get(NULL, "aemif");
-       clk_enable(aemif_clk);
+       clk_prepare_enable(aemif_clk);
  
        if (HAS_ATA) {
                if (HAS_NAND || HAS_NOR)
index 0849d5768d99faf4afc3dabe1e028bfb1adc1a86,11c79a3362ef9e3ec1aa7abc67280ddbada9591f..db1dd92e00af44c13f7f55f0ae364f08be1035c4
@@@ -669,14 -669,19 +669,14 @@@ static struct resource dm644x_osd_resou
        },
  };
  
 -static struct osd_platform_data dm644x_osd_data = {
 -      .vpbe_type     = VPBE_VERSION_1,
 -};
 -
  static struct platform_device dm644x_osd_dev = {
 -      .name           = VPBE_OSD_SUBDEV_NAME,
 +      .name           = DM644X_VPBE_OSD_SUBDEV_NAME,
        .id             = -1,
        .num_resources  = ARRAY_SIZE(dm644x_osd_resources),
        .resource       = dm644x_osd_resources,
        .dev            = {
                .dma_mask               = &dm644x_video_dma_mask,
                .coherent_dma_mask      = DMA_BIT_MASK(32),
 -              .platform_data          = &dm644x_osd_data,
        },
  };
  
@@@ -746,11 -751,12 +746,11 @@@ static struct platform_device dm644x_vp
  };
  
  static struct venc_platform_data dm644x_venc_pdata = {
 -      .venc_type      = VPBE_VERSION_1,
        .setup_clock    = dm644x_venc_setup_clock,
  };
  
  static struct platform_device dm644x_venc_dev = {
 -      .name           = VPBE_VENC_SUBDEV_NAME,
 +      .name           = DM644X_VPBE_VENC_SUBDEV_NAME,
        .id             = -1,
        .num_resources  = ARRAY_SIZE(dm644x_venc_resources),
        .resource       = dm644x_venc_resources,
@@@ -779,12 -785,6 +779,6 @@@ static struct map_desc dm644x_io_desc[
                .length         = IO_SIZE,
                .type           = MT_DEVICE
        },
-       {
-               .virtual        = SRAM_VIRT,
-               .pfn            = __phys_to_pfn(0x00008000),
-               .length         = SZ_16K,
-               .type           = MT_MEMORY_NONCACHED,
-       },
  };
  
  /* Contents of JTAG ID register used to identify exact cpu type */
index c74b0d48dcd69ea9152882c680c5c60327597f0c,35cc526e6c9379626a647dfeb36e22c58d7bfd56..dade3ceab0927282e3d08d6f10e705f3bd1759c8
@@@ -44,9 -44,7 +44,7 @@@
  #include <media/v4l2-device.h>
  #include <media/v4l2-ioctl.h>
  
- #include <plat/cpu.h>
- #include <plat/dma.h>
- #include <plat/vrfb.h>
+ #include <video/omapvrfb.h>
  #include <video/omapdss.h>
  
  #include "omap_voutlib.h"
@@@ -597,7 -595,7 +595,7 @@@ static void omap_vout_isr(void *arg, un
                return;
  
        spin_lock(&vout->vbq_lock);
 -      do_gettimeofday(&timevalue);
 +      v4l2_get_timestamp(&timevalue);
  
        switch (cur_display->type) {
        case OMAP_DISPLAY_TYPE_DSI:
@@@ -1232,6 -1230,21 +1230,6 @@@ static int vidioc_s_fmt_vid_overlay(str
        return ret;
  }
  
 -static int vidioc_enum_fmt_vid_overlay(struct file *file, void *fh,
 -                      struct v4l2_fmtdesc *fmt)
 -{
 -      int index = fmt->index;
 -
 -      if (index >= NUM_OUTPUT_FORMATS)
 -              return -EINVAL;
 -
 -      fmt->flags = omap_formats[index].flags;
 -      strlcpy(fmt->description, omap_formats[index].description,
 -                      sizeof(fmt->description));
 -      fmt->pixelformat = omap_formats[index].pixelformat;
 -      return 0;
 -}
 -
  static int vidioc_g_fmt_vid_overlay(struct file *file, void *fh,
                        struct v4l2_format *f)
  {
@@@ -1845,9 -1858,10 +1843,9 @@@ static const struct v4l2_ioctl_ops vout
        .vidioc_s_fbuf                          = vidioc_s_fbuf,
        .vidioc_g_fbuf                          = vidioc_g_fbuf,
        .vidioc_s_ctrl                          = vidioc_s_ctrl,
 -      .vidioc_try_fmt_vid_overlay             = vidioc_try_fmt_vid_overlay,
 -      .vidioc_s_fmt_vid_overlay               = vidioc_s_fmt_vid_overlay,
 -      .vidioc_enum_fmt_vid_overlay            = vidioc_enum_fmt_vid_overlay,
 -      .vidioc_g_fmt_vid_overlay               = vidioc_g_fmt_vid_overlay,
 +      .vidioc_try_fmt_vid_out_overlay         = vidioc_try_fmt_vid_overlay,
 +      .vidioc_s_fmt_vid_out_overlay           = vidioc_s_fmt_vid_overlay,
 +      .vidioc_g_fmt_vid_out_overlay           = vidioc_g_fmt_vid_overlay,
        .vidioc_cropcap                         = vidioc_cropcap,
        .vidioc_g_crop                          = vidioc_g_crop,
        .vidioc_s_crop                          = vidioc_s_crop,
@@@ -2027,7 -2041,7 +2025,7 @@@ static int __init omap_vout_create_vide
                vout->vid_info.id = k + 1;
  
                /* Set VRFB as rotation_type for omap2 and omap3 */
-               if (cpu_is_omap24xx() || cpu_is_omap34xx())
+               if (omap_vout_dss_omap24xx() || omap_vout_dss_omap34xx())
                        vout->vid_info.rotation_type = VOUT_ROT_VRFB;
  
                /* Setup the default configuration for the video devices
@@@ -2144,14 -2158,23 +2142,23 @@@ static int __init omap_vout_probe(struc
        struct omap_dss_device *def_display;
        struct omap2video_device *vid_dev = NULL;
  
+       ret = omapdss_compat_init();
+       if (ret) {
+               dev_err(&pdev->dev, "failed to init dss\n");
+               return ret;
+       }
        if (pdev->num_resources == 0) {
                dev_err(&pdev->dev, "probed for an unknown device\n");
-               return -ENODEV;
+               ret = -ENODEV;
+               goto err_dss_init;
        }
  
        vid_dev = kzalloc(sizeof(struct omap2video_device), GFP_KERNEL);
-       if (vid_dev == NULL)
-               return -ENOMEM;
+       if (vid_dev == NULL) {
+               ret = -ENOMEM;
+               goto err_dss_init;
+       }
  
        vid_dev->num_displays = 0;
        for_each_dss_dev(dssdev) {
@@@ -2246,6 -2269,8 +2253,8 @@@ probe_err1
        }
  probe_err0:
        kfree(vid_dev);
+ err_dss_init:
+       omapdss_compat_uninit();
        return ret;
  }
  
index 3c5ba63cd3112ae97d409749907727a25e1144b4,791cd1d54a769c5321cca32d8fa7cc6665467324..28d5c84eef82a8c21ab34175ea83ed61bf975066
@@@ -41,7 -41,6 +41,6 @@@
  #include <linux/videodev2.h>
  
  #include <linux/platform_data/camera-mx2.h>
- #include <mach/hardware.h>
  
  #include <asm/dma.h>
  
  
  #define CSICR1                        0x00
  #define CSICR2                        0x04
- #define CSISR                 (cpu_is_mx27() ? 0x08 : 0x18)
+ #define CSISR_IMX25           0x18
+ #define CSISR_IMX27           0x08
  #define CSISTATFIFO           0x0c
  #define CSIRFIFO              0x10
  #define CSIRXCNT              0x14
- #define CSICR3                        (cpu_is_mx27() ? 0x1C : 0x08)
+ #define CSICR3_IMX25          0x08
+ #define CSICR3_IMX27          0x1c
  #define CSIDMASA_STATFIFO     0x20
  #define CSIDMATA_STATFIFO     0x24
  #define CSIDMASA_FB1          0x28
@@@ -268,11 -269,17 +269,17 @@@ struct mx2_buffer 
        struct mx2_buf_internal         internal;
  };
  
+ enum mx2_camera_type {
+       IMX25_CAMERA,
+       IMX27_CAMERA,
+ };
  struct mx2_camera_dev {
        struct device           *dev;
        struct soc_camera_host  soc_host;
        struct soc_camera_device *icd;
-       struct clk              *clk_csi, *clk_emma_ahb, *clk_emma_ipg;
+       struct clk              *clk_emma_ahb, *clk_emma_ipg;
+       struct clk              *clk_csi_ahb, *clk_csi_per;
  
        void __iomem            *base_csi, *base_emma;
  
        struct mx2_buffer       *fb2_active;
  
        u32                     csicr1;
+       u32                     reg_csisr;
+       u32                     reg_csicr3;
+       enum mx2_camera_type    devtype;
  
        struct mx2_buf_internal buf_discard[2];
        void                    *discard_buffer;
        struct vb2_alloc_ctx    *alloc_ctx;
  };
  
+ static struct platform_device_id mx2_camera_devtype[] = {
+       {
+               .name = "imx25-camera",
+               .driver_data = IMX25_CAMERA,
+       }, {
+               .name = "imx27-camera",
+               .driver_data = IMX27_CAMERA,
+       }, {
+               /* sentinel */
+       }
+ };
+ MODULE_DEVICE_TABLE(platform, mx2_camera_devtype);
+ static inline int is_imx25_camera(struct mx2_camera_dev *pcdev)
+ {
+       return pcdev->devtype == IMX25_CAMERA;
+ }
+ static inline int is_imx27_camera(struct mx2_camera_dev *pcdev)
+ {
+       return pcdev->devtype == IMX27_CAMERA;
+ }
  static struct mx2_buffer *mx2_ibuf_to_buf(struct mx2_buf_internal *int_buf)
  {
        return container_of(int_buf, struct mx2_buffer, internal);
@@@ -432,11 -465,12 +465,12 @@@ static void mx2_camera_deactivate(struc
  {
        unsigned long flags;
  
-       clk_disable_unprepare(pcdev->clk_csi);
+       clk_disable_unprepare(pcdev->clk_csi_ahb);
+       clk_disable_unprepare(pcdev->clk_csi_per);
        writel(0, pcdev->base_csi + CSICR1);
-       if (cpu_is_mx27()) {
+       if (is_imx27_camera(pcdev)) {
                writel(0, pcdev->base_emma + PRP_CNTL);
-       } else if (cpu_is_mx25()) {
+       } else if (is_imx25_camera(pcdev)) {
                spin_lock_irqsave(&pcdev->lock, flags);
                pcdev->fb1_active = NULL;
                pcdev->fb2_active = NULL;
@@@ -460,13 -494,17 +494,17 @@@ static int mx2_camera_add_device(struc
        if (pcdev->icd)
                return -EBUSY;
  
-       ret = clk_prepare_enable(pcdev->clk_csi);
+       ret = clk_prepare_enable(pcdev->clk_csi_ahb);
        if (ret < 0)
                return ret;
  
+       ret = clk_prepare_enable(pcdev->clk_csi_per);
+       if (ret < 0)
+               goto exit_csi_ahb;
        csicr1 = CSICR1_MCLKEN;
  
-       if (cpu_is_mx27())
+       if (is_imx27_camera(pcdev))
                csicr1 |= CSICR1_PRP_IF_EN | CSICR1_FCC |
                        CSICR1_RXFF_LEVEL(0);
  
                 icd->devnum);
  
        return 0;
+ exit_csi_ahb:
+       clk_disable_unprepare(pcdev->clk_csi_ahb);
+       return ret;
  }
  
  static void mx2_camera_remove_device(struct soc_camera_device *icd)
@@@ -516,7 -559,7 +559,7 @@@ static void mx25_camera_frame_done(stru
        dev_dbg(pcdev->dev, "%s (vb=0x%p) 0x%p %lu\n", __func__,
                vb, vb2_plane_vaddr(vb, 0), vb2_get_plane_payload(vb, 0));
  
 -      do_gettimeofday(&vb->v4l2_buf.timestamp);
 +      v4l2_get_timestamp(&vb->v4l2_buf.timestamp);
        vb->v4l2_buf.sequence++;
        vb2_buffer_done(vb, VB2_BUF_STATE_DONE);
  
@@@ -542,7 -585,7 +585,7 @@@ out
  static irqreturn_t mx25_camera_irq(int irq_csi, void *data)
  {
        struct mx2_camera_dev *pcdev = data;
-       u32 status = readl(pcdev->base_csi + CSISR);
+       u32 status = readl(pcdev->base_csi + pcdev->reg_csisr);
  
        if (status & CSISR_DMA_TSF_FB1_INT)
                mx25_camera_frame_done(pcdev, 1, MX2_STATE_DONE);
  
        /* FIXME: handle CSISR_RFF_OR_INT */
  
-       writel(status, pcdev->base_csi + CSISR);
+       writel(status, pcdev->base_csi + pcdev->reg_csisr);
  
        return IRQ_HANDLED;
  }
@@@ -636,7 -679,7 +679,7 @@@ static void mx2_videobuf_queue(struct v
        buf->state = MX2_STATE_QUEUED;
        list_add_tail(&buf->internal.queue, &pcdev->capture);
  
-       if (cpu_is_mx25()) {
+       if (is_imx25_camera(pcdev)) {
                u32 csicr3, dma_inten = 0;
  
                if (pcdev->fb1_active == NULL) {
                        list_del(&buf->internal.queue);
                        buf->state = MX2_STATE_ACTIVE;
  
-                       csicr3 = readl(pcdev->base_csi + CSICR3);
+                       csicr3 = readl(pcdev->base_csi + pcdev->reg_csicr3);
  
                        /* Reflash DMA */
                        writel(csicr3 | CSICR3_DMA_REFLASH_RFF,
-                                       pcdev->base_csi + CSICR3);
+                                       pcdev->base_csi + pcdev->reg_csicr3);
  
                        /* clear & enable interrupts */
-                       writel(dma_inten, pcdev->base_csi + CSISR);
+                       writel(dma_inten, pcdev->base_csi + pcdev->reg_csisr);
                        pcdev->csicr1 |= dma_inten;
                        writel(pcdev->csicr1, pcdev->base_csi + CSICR1);
  
                        /* enable DMA */
                        csicr3 |= CSICR3_DMA_REQ_EN_RFF | CSICR3_RXFF_LEVEL(1);
-                       writel(csicr3, pcdev->base_csi + CSICR3);
+                       writel(csicr3, pcdev->base_csi + pcdev->reg_csicr3);
                }
        }
  
@@@ -712,7 -755,7 +755,7 @@@ static void mx2_videobuf_release(struc
         */
  
        spin_lock_irqsave(&pcdev->lock, flags);
-       if (cpu_is_mx25() && buf->state == MX2_STATE_ACTIVE) {
+       if (is_imx25_camera(pcdev) && buf->state == MX2_STATE_ACTIVE) {
                if (pcdev->fb1_active == buf) {
                        pcdev->csicr1 &= ~CSICR1_FB1_DMA_INTEN;
                        writel(0, pcdev->base_csi + CSIDMASA_FB1);
@@@ -835,7 -878,7 +878,7 @@@ static int mx2_start_streaming(struct v
        unsigned long phys;
        int bytesperline;
  
-       if (cpu_is_mx27()) {
+       if (is_imx27_camera(pcdev)) {
                unsigned long flags;
                if (count < 2)
                        return -EINVAL;
                pcdev->discard_size = icd->user_height * bytesperline;
                pcdev->discard_buffer = dma_alloc_coherent(ici->v4l2_dev.dev,
                                pcdev->discard_size, &pcdev->discard_buffer_dma,
 -                              GFP_KERNEL);
 +                              GFP_ATOMIC);
                if (!pcdev->discard_buffer) {
                        spin_unlock_irqrestore(&pcdev->lock, flags);
                        return -ENOMEM;
@@@ -934,7 -977,7 +977,7 @@@ static int mx2_stop_streaming(struct vb
        void *b;
        u32 cntl;
  
-       if (cpu_is_mx27()) {
+       if (is_imx27_camera(pcdev)) {
                spin_lock_irqsave(&pcdev->lock, flags);
  
                cntl = readl(pcdev->base_emma + PRP_CNTL);
@@@ -1086,11 -1129,11 +1129,11 @@@ static int mx2_camera_set_bus_param(str
        if (bytesperline < 0)
                return bytesperline;
  
-       if (cpu_is_mx27()) {
+       if (is_imx27_camera(pcdev)) {
                ret = mx27_camera_emma_prp_reset(pcdev);
                if (ret)
                        return ret;
-       } else if (cpu_is_mx25()) {
+       } else if (is_imx25_camera(pcdev)) {
                writel((bytesperline * icd->user_height) >> 2,
                                pcdev->base_csi + CSIRXCNT);
                writel((bytesperline << 16) | icd->user_height,
@@@ -1394,8 -1437,10 +1437,8 @@@ static int mx2_camera_try_fmt(struct so
                return -EINVAL;
        }
  
 -      /* FIXME: implement MX27 limits */
 -
        /* limit to MX25 hardware capabilities */
-       if (cpu_is_mx25()) {
+       if (is_imx25_camera(pcdev)) {
                if (xlate->host_fmt->bits_per_sample <= 8)
                        width_limit = 0xffff * 4;
                else
                        pix->sizeimage = soc_mbus_image_size(xlate->host_fmt,
                                                pix->bytesperline, pix->height);
                }
 +      } else {
 +              /*
 +               * Width must be a multiple of 8 as requested by the CSI.
 +               * (Table 39-2 in the i.MX27 Reference Manual).
 +               */
 +              pix->width &= ~0x7;
        }
  
        /* limit to sensor capabilities */
@@@ -1561,7 -1600,7 +1604,7 @@@ static void mx27_camera_frame_done_emma
                                vb2_get_plane_payload(vb, 0));
  
                list_del_init(&buf->internal.queue);
 -              do_gettimeofday(&vb->v4l2_buf.timestamp);
 +              v4l2_get_timestamp(&vb->v4l2_buf.timestamp);
                vb->v4l2_buf.sequence = pcdev->frame_count;
                if (err)
                        vb2_buffer_done(vb, VB2_BUF_STATE_ERROR);
@@@ -1735,10 -1774,31 +1778,31 @@@ static int __devinit mx2_camera_probe(s
                goto exit;
        }
  
-       pcdev->clk_csi = devm_clk_get(&pdev->dev, "ahb");
-       if (IS_ERR(pcdev->clk_csi)) {
-               dev_err(&pdev->dev, "Could not get csi clock\n");
-               err = PTR_ERR(pcdev->clk_csi);
+       pcdev->devtype = pdev->id_entry->driver_data;
+       switch (pcdev->devtype) {
+       case IMX25_CAMERA:
+               pcdev->reg_csisr = CSISR_IMX25;
+               pcdev->reg_csicr3 = CSICR3_IMX25;
+               break;
+       case IMX27_CAMERA:
+               pcdev->reg_csisr = CSISR_IMX27;
+               pcdev->reg_csicr3 = CSICR3_IMX27;
+               break;
+       default:
+               break;
+       }
+       pcdev->clk_csi_ahb = devm_clk_get(&pdev->dev, "ahb");
+       if (IS_ERR(pcdev->clk_csi_ahb)) {
+               dev_err(&pdev->dev, "Could not get csi ahb clock\n");
+               err = PTR_ERR(pcdev->clk_csi_ahb);
+               goto exit;
+       }
+       pcdev->clk_csi_per = devm_clk_get(&pdev->dev, "per");
+       if (IS_ERR(pcdev->clk_csi_per)) {
+               dev_err(&pdev->dev, "Could not get csi per clock\n");
+               err = PTR_ERR(pcdev->clk_csi_per);
                goto exit;
        }
  
  
                pcdev->platform_flags = pcdev->pdata->flags;
  
-               rate = clk_round_rate(pcdev->clk_csi, pcdev->pdata->clk * 2);
+               rate = clk_round_rate(pcdev->clk_csi_per,
+                                               pcdev->pdata->clk * 2);
                if (rate <= 0) {
                        err = -ENODEV;
                        goto exit;
                }
-               err = clk_set_rate(pcdev->clk_csi, rate);
+               err = clk_set_rate(pcdev->clk_csi_per, rate);
                if (err < 0)
                        goto exit;
        }
        pcdev->dev = &pdev->dev;
        platform_set_drvdata(pdev, pcdev);
  
-       if (cpu_is_mx25()) {
+       if (is_imx25_camera(pcdev)) {
                err = devm_request_irq(&pdev->dev, irq_csi, mx25_camera_irq, 0,
                                       MX2_CAM_DRV_NAME, pcdev);
                if (err) {
                }
        }
  
-       if (cpu_is_mx27()) {
+       if (is_imx27_camera(pcdev)) {
                err = mx27_camera_emma_init(pdev);
                if (err)
                        goto exit;
        pcdev->soc_host.priv            = pcdev;
        pcdev->soc_host.v4l2_dev.dev    = &pdev->dev;
        pcdev->soc_host.nr              = pdev->id;
-       if (cpu_is_mx25())
+       if (is_imx25_camera(pcdev))
                pcdev->soc_host.capabilities = SOCAM_HOST_CAP_STRIDE;
  
        pcdev->alloc_ctx = vb2_dma_contig_init_ctx(&pdev->dev);
                goto exit_free_emma;
  
        dev_info(&pdev->dev, "MX2 Camera (CSI) driver probed, clock frequency: %ld\n",
-                       clk_get_rate(pcdev->clk_csi));
+                       clk_get_rate(pcdev->clk_csi_per));
  
        return 0;
  
  exit_free_emma:
        vb2_dma_contig_cleanup_ctx(pcdev->alloc_ctx);
  eallocctx:
-       if (cpu_is_mx27()) {
+       if (is_imx27_camera(pcdev)) {
                clk_disable_unprepare(pcdev->clk_emma_ipg);
                clk_disable_unprepare(pcdev->clk_emma_ahb);
        }
@@@ -1836,7 -1897,7 +1901,7 @@@ static int __devexit mx2_camera_remove(
  
        vb2_dma_contig_cleanup_ctx(pcdev->alloc_ctx);
  
-       if (cpu_is_mx27()) {
+       if (is_imx27_camera(pcdev)) {
                clk_disable_unprepare(pcdev->clk_emma_ipg);
                clk_disable_unprepare(pcdev->clk_emma_ahb);
        }
@@@ -1850,6 -1911,7 +1915,7 @@@ static struct platform_driver mx2_camer
        .driver         = {
                .name   = MX2_CAM_DRV_NAME,
        },
+       .id_table       = mx2_camera_devtype,
        .remove         = __devexit_p(mx2_camera_remove),
  };
  
index e6bc06bca496e232dc8a2864e3bb745e294c38cd,06d16de763773b54f11941a73e2806fcbad30dab..574d12522f956469e485b36f3640eac25b7ec9ef
@@@ -17,6 -17,7 +17,7 @@@
  #include <linux/vmalloc.h>
  #include <linux/interrupt.h>
  #include <linux/sched.h>
+ #include <linux/dma/ipu-dma.h>
  
  #include <media/v4l2-common.h>
  #include <media/v4l2-dev.h>
@@@ -24,7 -25,6 +25,6 @@@
  #include <media/soc_camera.h>
  #include <media/soc_mediabus.h>
  
- #include <mach/ipu.h>
  #include <linux/platform_data/camera-mx3.h>
  #include <linux/platform_data/dma-imx.h>
  
@@@ -156,7 -156,7 +156,7 @@@ static void mx3_cam_dma_done(void *arg
                struct mx3_camera_buffer *buf = to_mx3_vb(vb);
  
                list_del_init(&buf->queue);
 -              do_gettimeofday(&vb->v4l2_buf.timestamp);
 +              v4l2_get_timestamp(&vb->v4l2_buf.timestamp);
                vb->v4l2_buf.field = mx3_cam->field;
                vb->v4l2_buf.sequence = mx3_cam->sequence++;
                vb2_buffer_done(vb, VB2_BUF_STATE_DONE);
index b573bd5899de3d8f6243e8d419fcbb78ca06c8cb,39a77f0b886066daa82aad7be5e3bf968d6309bf..8f9c1f44544c21d2628ee58ff3bf3dc6781896d2
  #include <media/videobuf-dma-contig.h>
  #include <media/videobuf-dma-sg.h>
  
- #include <plat/dma.h>
+ #include <linux/omap-dma.h>
  
  
  #define DRIVER_NAME           "omap1-camera"
  #define DRIVER_VERSION                "0.0.2"
  
+ #define OMAP_DMA_CAMERA_IF_RX         20
  
  /*
   * ---------------------------------------------------------------------------
@@@ -591,7 -592,7 +592,7 @@@ static void videobuf_done(struct omap1_
                        suspend_capture(pcdev);
                }
                vb->state = result;
 -              do_gettimeofday(&vb->ts);
 +              v4l2_get_timestamp(&vb->ts);
                if (result != VIDEOBUF_ERROR)
                        vb->field_count++;
                wake_up(&vb->done);
index 0af8917ebc57385352c9699dcc92903d6950bca0,479c643da2f61c9382709161f9064747239df569..e33b7f55d84e2a9aa8232c28463e622b0785c53c
@@@ -720,7 -720,7 +720,7 @@@ static const struct v4l2_ioctl_ops dt31
  */
  };
  
- static int __devinit
+ static int
  dt3155_init_board(struct pci_dev *pdev)
  {
        struct dt3155_priv *pd = pci_get_drvdata(pdev);
        }
        write_i2c_reg(pd->regs, CONFIG, pd->config); /*  ACQ_MODE_EVEN  */
  
 -      /* select chanel 1 for input and set sync level */
 +      /* select channel 1 for input and set sync level */
        write_i2c_reg(pd->regs, AD_ADDR, AD_CMD_REG);
        write_i2c_reg(pd->regs, AD_CMD, VIDEO_CNL_1 | SYNC_CNL_1 | SYNC_LVL_3);
  
@@@ -838,7 -838,7 +838,7 @@@ struct dma_coherent_mem 
        unsigned long   *bitmap;
  };
  
- static int __devinit
+ static int
  dt3155_alloc_coherent(struct device *dev, size_t size, int flags)
  {
        struct dma_coherent_mem *mem;
@@@ -879,7 -879,7 +879,7 @@@ out
        return 0;
  }
  
- static void __devexit
+ static void
  dt3155_free_coherent(struct device *dev)
  {
        struct dma_coherent_mem *mem = dev->dma_mem;
        kfree(mem);
  }
  
- static int __devinit
+ static int
  dt3155_probe(struct pci_dev *pdev, const struct pci_device_id *id)
  {
        int err;
@@@ -958,7 -958,7 +958,7 @@@ err_video_device_alloc
        return err;
  }
  
- static void __devexit
+ static void
  dt3155_remove(struct pci_dev *pdev)
  {
        struct dt3155_priv *pd = pci_get_drvdata(pdev);
@@@ -985,7 -985,7 +985,7 @@@ static struct pci_driver pci_driver = 
        .name = DT3155_NAME,
        .id_table = pci_ids,
        .probe = dt3155_probe,
-       .remove = __devexit_p(dt3155_remove),
+       .remove = dt3155_remove,
  };
  
  module_pci_driver(pci_driver);
index 139920c290caf03d5b6f750700eebd908a16b1e6,ec14bc81851b38838de4abca6e83b9e8bd7aa4ee..41d110f8bc02e2775236315342d0b06a79a9bd35
@@@ -22,8 -22,6 +22,8 @@@
   *
   */
  
 +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 +
  /*** Includes ***/
  
  #include <linux/module.h>
@@@ -117,7 -115,8 +117,7 @@@ static void out(int offset, int value
                parport_write_control(pport, value);
                break;
        case LIRC_LP_STATUS:
 -              printk(KERN_INFO "%s: attempt to write to status register\n",
 -                     LIRC_DRIVER_NAME);
 +              pr_info("attempt to write to status register\n");
                break;
        }
  }
@@@ -167,23 -166,27 +167,23 @@@ static unsigned int init_lirc_timer(voi
                if (default_timer == 0) {
                        /* autodetect timer */
                        newtimer = (1000000*count)/timeelapsed;
 -                      printk(KERN_INFO "%s: %u Hz timer detected\n",
 -                             LIRC_DRIVER_NAME, newtimer);
 +                      pr_info("%u Hz timer detected\n", newtimer);
                        return newtimer;
                }  else {
                        newtimer = (1000000*count)/timeelapsed;
                        if (abs(newtimer - default_timer) > default_timer/10) {
                                /* bad timer */
 -                              printk(KERN_NOTICE "%s: bad timer: %u Hz\n",
 -                                     LIRC_DRIVER_NAME, newtimer);
 -                              printk(KERN_NOTICE "%s: using default timer: "
 -                                     "%u Hz\n",
 -                                     LIRC_DRIVER_NAME, default_timer);
 +                              pr_notice("bad timer: %u Hz\n", newtimer);
 +                              pr_notice("using default timer: %u Hz\n",
 +                                        default_timer);
                                return default_timer;
                        } else {
 -                              printk(KERN_INFO "%s: %u Hz timer detected\n",
 -                                     LIRC_DRIVER_NAME, newtimer);
 +                              pr_info("%u Hz timer detected\n", newtimer);
                                return newtimer; /* use detected value */
                        }
                }
        } else {
 -              printk(KERN_NOTICE "%s: no timer detected\n", LIRC_DRIVER_NAME);
 +              pr_notice("no timer detected\n");
                return 0;
        }
  }
  static int lirc_claim(void)
  {
        if (parport_claim(ppdevice) != 0) {
 -              printk(KERN_WARNING "%s: could not claim port\n",
 -                     LIRC_DRIVER_NAME);
 -              printk(KERN_WARNING "%s: waiting for port becoming available"
 -                     "\n", LIRC_DRIVER_NAME);
 +              pr_warn("could not claim port\n");
 +              pr_warn("waiting for port becoming available\n");
                if (parport_claim_or_block(ppdevice) < 0) {
 -                      printk(KERN_NOTICE "%s: could not claim port, giving"
 -                             " up\n", LIRC_DRIVER_NAME);
 +                      pr_notice("could not claim port, giving up\n");
                        return 0;
                }
        }
@@@ -213,7 -219,7 +213,7 @@@ static void rbuf_write(int signal
        if (nwptr == rptr) {
                /* no new signals will be accepted */
                lost_irqs++;
 -              printk(KERN_NOTICE "%s: buffer overrun\n", LIRC_DRIVER_NAME);
 +              pr_notice("buffer overrun\n");
                return;
        }
        rbuf[wptr] = signal;
@@@ -284,7 -290,7 +284,7 @@@ static void irq_handler(void *blah
                if (signal > timeout
                    || (check_pselecd && (in(1) & LP_PSELECD))) {
                        signal = 0;
 -                      printk(KERN_NOTICE "%s: timeout\n", LIRC_DRIVER_NAME);
 +                      pr_notice("timeout\n");
                        break;
                }
        } while (lirc_get_signal());
@@@ -577,12 -583,12 +577,12 @@@ static struct lirc_driver driver = 
  
  static struct platform_device *lirc_parallel_dev;
  
- static int __devinit lirc_parallel_probe(struct platform_device *dev)
+ static int lirc_parallel_probe(struct platform_device *dev)
  {
        return 0;
  }
  
- static int __devexit lirc_parallel_remove(struct platform_device *dev)
+ static int lirc_parallel_remove(struct platform_device *dev)
  {
        return 0;
  }
@@@ -600,7 -606,7 +600,7 @@@ static int lirc_parallel_resume(struct 
  
  static struct platform_driver lirc_parallel_driver = {
        .probe  = lirc_parallel_probe,
-       .remove = __devexit_p(lirc_parallel_remove),
+       .remove = lirc_parallel_remove,
        .suspend        = lirc_parallel_suspend,
        .resume = lirc_parallel_resume,
        .driver = {
@@@ -638,7 -644,8 +638,7 @@@ static int __init lirc_parallel_init(vo
  
        result = platform_driver_register(&lirc_parallel_driver);
        if (result) {
 -              printk(KERN_NOTICE "platform_driver_register"
 -                                      " returned %d\n", result);
 +              pr_notice("platform_driver_register returned %d\n", result);
                return result;
        }
  
  
        pport = parport_find_base(io);
        if (pport == NULL) {
 -              printk(KERN_NOTICE "%s: no port at %x found\n",
 -                     LIRC_DRIVER_NAME, io);
 +              pr_notice("no port at %x found\n", io);
                result = -ENXIO;
                goto exit_device_put;
        }
                                           pf, kf, irq_handler, 0, NULL);
        parport_put_port(pport);
        if (ppdevice == NULL) {
 -              printk(KERN_NOTICE "%s: parport_register_device() failed\n",
 -                     LIRC_DRIVER_NAME);
 +              pr_notice("parport_register_device() failed\n");
                result = -ENXIO;
                goto exit_device_put;
        }
        driver.dev = &lirc_parallel_dev->dev;
        driver.minor = lirc_register_driver(&driver);
        if (driver.minor < 0) {
 -              printk(KERN_NOTICE "%s: register_chrdev() failed\n",
 -                     LIRC_DRIVER_NAME);
 +              pr_notice("register_chrdev() failed\n");
                parport_unregister_device(ppdevice);
                result = -EIO;
                goto exit_device_put;
        }
 -      printk(KERN_INFO "%s: installed using port 0x%04x irq %d\n",
 -             LIRC_DRIVER_NAME, io, irq);
 +      pr_info("installed using port 0x%04x irq %d\n", io, irq);
        return 0;
  
  exit_device_put:
index 513b75ef51798bbe13f92a14e5804b3dc991ebe7,b5d0088f3102a4fb52062a5a4d528634b77eaa7b..af08e677b60fd31cf94c687d85845838e7682e6a
@@@ -48,8 -48,6 +48,8 @@@
   * Steve Davies <steve@daviesfam.org>  July 2001
   */
  
 +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 +
  #include <linux/module.h>
  #include <linux/errno.h>
  #include <linux/signal.h>
@@@ -669,7 -667,8 +669,7 @@@ static irqreturn_t irq_handler(int i, v
                counter++;
                status = sinp(UART_MSR);
                if (counter > RS_ISR_PASS_LIMIT) {
 -                      printk(KERN_WARNING LIRC_DRIVER_NAME ": AIEEEE: "
 -                             "We're caught!\n");
 +                      pr_warn("AIEEEE: We're caught!\n");
                        break;
                }
                if ((status & hardware[type].signal_pin_change)
                        dcd = (status & hardware[type].signal_pin) ? 1 : 0;
  
                        if (dcd == last_dcd) {
 -                              printk(KERN_WARNING LIRC_DRIVER_NAME
 -                              ": ignoring spike: %d %d %lx %lx %lx %lx\n",
 -                              dcd, sense,
 -                              tv.tv_sec, lasttv.tv_sec,
 -                              tv.tv_usec, lasttv.tv_usec);
 +                              pr_warn("ignoring spike: %d %d %lx %lx %lx %lx\n",
 +                                      dcd, sense,
 +                                      tv.tv_sec, lasttv.tv_sec,
 +                                      tv.tv_usec, lasttv.tv_usec);
                                continue;
                        }
  
                        if (tv.tv_sec < lasttv.tv_sec ||
                            (tv.tv_sec == lasttv.tv_sec &&
                             tv.tv_usec < lasttv.tv_usec)) {
 -                              printk(KERN_WARNING LIRC_DRIVER_NAME
 -                                     ": AIEEEE: your clock just jumped "
 -                                     "backwards\n");
 -                              printk(KERN_WARNING LIRC_DRIVER_NAME
 -                                     ": %d %d %lx %lx %lx %lx\n",
 -                                     dcd, sense,
 -                                     tv.tv_sec, lasttv.tv_sec,
 -                                     tv.tv_usec, lasttv.tv_usec);
 +                              pr_warn("AIEEEE: your clock just jumped backwards\n");
 +                              pr_warn("%d %d %lx %lx %lx %lx\n",
 +                                      dcd, sense,
 +                                      tv.tv_sec, lasttv.tv_sec,
 +                                      tv.tv_usec, lasttv.tv_usec);
                                data = PULSE_MASK;
                        } else if (deltv > 15) {
                                data = PULSE_MASK; /* really long time */
                                if (!(dcd^sense)) {
                                        /* sanity check */
 -                                      printk(KERN_WARNING LIRC_DRIVER_NAME
 -                                             ": AIEEEE: "
 -                                             "%d %d %lx %lx %lx %lx\n",
 -                                             dcd, sense,
 -                                             tv.tv_sec, lasttv.tv_sec,
 -                                             tv.tv_usec, lasttv.tv_usec);
 +                                      pr_warn("AIEEEE: %d %d %lx %lx %lx %lx\n",
 +                                              dcd, sense,
 +                                              tv.tv_sec, lasttv.tv_sec,
 +                                              tv.tv_usec, lasttv.tv_usec);
                                        /*
                                         * detecting pulse while this
                                         * MUST be a space!
@@@ -771,7 -776,8 +771,7 @@@ static int hardware_init_port(void
        soutp(UART_IER, scratch);
        if (scratch2 != 0 || scratch3 != 0x0f) {
                /* we fail, there's nothing here */
 -              printk(KERN_ERR LIRC_DRIVER_NAME ": port existence test "
 -                     "failed, cannot continue\n");
 +              pr_err("port existence test failed, cannot continue\n");
                return -ENODEV;
        }
  
        return 0;
  }
  
- static int __devinit lirc_serial_probe(struct platform_device *dev)
+ static int lirc_serial_probe(struct platform_device *dev)
  {
        int i, nlow, nhigh, result;
  
                             LIRC_DRIVER_NAME, (void *)&hardware);
        if (result < 0) {
                if (result == -EBUSY)
 -                      printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n",
 -                             irq);
 +                      dev_err(&dev->dev, "IRQ %d busy\n", irq);
                else if (result == -EINVAL)
 -                      printk(KERN_ERR LIRC_DRIVER_NAME
 -                             ": Bad irq number or handler\n");
 +                      dev_err(&dev->dev, "Bad irq number or handler\n");
                return result;
        }
  
                                    LIRC_DRIVER_NAME) == NULL))
           || ((iommap == 0)
               && (request_region(io, 8, LIRC_DRIVER_NAME) == NULL))) {
 -              printk(KERN_ERR  LIRC_DRIVER_NAME
 -                     ": port %04x already in use\n", io);
 -              printk(KERN_WARNING LIRC_DRIVER_NAME
 -                     ": use 'setserial /dev/ttySX uart none'\n");
 -              printk(KERN_WARNING LIRC_DRIVER_NAME
 -                     ": or compile the serial port driver as module and\n");
 -              printk(KERN_WARNING LIRC_DRIVER_NAME
 -                     ": make sure this module is loaded first\n");
 +              dev_err(&dev->dev, "port %04x already in use\n", io);
 +              dev_warn(&dev->dev, "use 'setserial /dev/ttySX uart none'\n");
 +              dev_warn(&dev->dev,
 +                       "or compile the serial port driver as module and\n");
 +              dev_warn(&dev->dev, "make sure this module is loaded first\n");
                result = -EBUSY;
                goto exit_free_irq;
        }
                        msleep(40);
                }
                sense = (nlow >= nhigh ? 1 : 0);
 -              printk(KERN_INFO LIRC_DRIVER_NAME  ": auto-detected active "
 -                     "%s receiver\n", sense ? "low" : "high");
 +              dev_info(&dev->dev, "auto-detected active %s receiver\n",
 +                       sense ? "low" : "high");
        } else
 -              printk(KERN_INFO LIRC_DRIVER_NAME  ": Manually using active "
 -                     "%s receiver\n", sense ? "low" : "high");
 +              dev_info(&dev->dev, "Manually using active %s receiver\n",
 +                       sense ? "low" : "high");
  
        dprintk("Interrupt %d, port %04x obtained\n", irq, io);
        return 0;
@@@ -916,7 -927,7 +916,7 @@@ exit_free_irq
        return result;
  }
  
- static int __devexit lirc_serial_remove(struct platform_device *dev)
+ static int lirc_serial_remove(struct platform_device *dev)
  {
        free_irq(irq, (void *)&hardware);
  
@@@ -1137,7 -1148,7 +1137,7 @@@ static int lirc_serial_resume(struct pl
  
  static struct platform_driver lirc_serial_driver = {
        .probe          = lirc_serial_probe,
-       .remove         = __devexit_p(lirc_serial_remove),
+       .remove         = lirc_serial_remove,
        .suspend        = lirc_serial_suspend,
        .resume         = lirc_serial_resume,
        .driver         = {
@@@ -1240,7 -1251,8 +1240,7 @@@ static int __init lirc_serial_init_modu
        driver.dev = &lirc_serial_dev->dev;
        driver.minor = lirc_register_driver(&driver);
        if (driver.minor < 0) {
 -              printk(KERN_ERR  LIRC_DRIVER_NAME
 -                     ": register_chrdev failed!\n");
 +              pr_err("register_chrdev failed!\n");
                lirc_serial_exit();
                return driver.minor;
        }
index 9a88f057c0bda1d94ade25cf89610f5cd6978ee6,a45799874a21cf7ded13745c508ec99410b09f25..63a554c36f751034d053a45a60262163c5500b23
@@@ -33,8 -33,6 +33,8 @@@
   *   parts cut'n'pasted from sa1100_ir.c (C) 2000 Russell King
   */
  
 +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 +
  #include <linux/module.h>
  #include <linux/sched.h>
  #include <linux/errno.h>
@@@ -497,7 -495,7 +497,7 @@@ static int init_chrdev(void
        driver.dev = &lirc_sir_dev->dev;
        driver.minor = lirc_register_driver(&driver);
        if (driver.minor < 0) {
 -              printk(KERN_ERR LIRC_DRIVER_NAME ": init_chrdev() failed.\n");
 +              pr_err("init_chrdev() failed.\n");
                return -EIO;
        }
        return 0;
@@@ -606,7 -604,7 +606,7 @@@ static irqreturn_t sir_interrupt(int ir
        }
  
        if (status & UTSR0_TFS)
 -              printk(KERN_ERR "transmit fifo not full, shouldn't happen\n");
 +              pr_err("transmit fifo not full, shouldn't happen\n");
  
        /* We must clear certain bits. */
        status &= (UTSR0_RID | UTSR0_RBB | UTSR0_REB);
@@@ -789,7 -787,7 +789,7 @@@ static int init_hardware(void
  #ifdef LIRC_ON_SA1100
  #ifdef CONFIG_SA1100_BITSY
        if (machine_is_bitsy()) {
 -              printk(KERN_INFO "Power on IR module\n");
 +              pr_info("Power on IR module\n");
                set_bitsy_egpio(EGPIO_BITSY_IR_ON);
        }
  #endif
        udelay(1500);
  
        /* read previous control byte */
 -      printk(KERN_INFO LIRC_DRIVER_NAME
 -             ": 0x%02x\n", sinp(UART_RX));
 +      pr_info("0x%02x\n", sinp(UART_RX));
  
        /* Set DLAB 1. */
        soutp(UART_LCR, sinp(UART_LCR) | UART_LCR_DLAB);
@@@ -965,7 -964,8 +965,7 @@@ static int init_port(void
        /* get I/O port access and IRQ line */
  #ifndef LIRC_ON_SA1100
        if (request_region(io, 8, LIRC_DRIVER_NAME) == NULL) {
 -              printk(KERN_ERR LIRC_DRIVER_NAME
 -                     ": i/o port 0x%.4x already in use.\n", io);
 +              pr_err("i/o port 0x%.4x already in use.\n", io);
                return -EBUSY;
        }
  #endif
  #               ifndef LIRC_ON_SA1100
                release_region(io, 8);
  #               endif
 -              printk(KERN_ERR LIRC_DRIVER_NAME
 -                      ": IRQ %d already in use.\n",
 -                      irq);
 +              pr_err("IRQ %d already in use.\n", irq);
                return retval;
        }
  #ifndef LIRC_ON_SA1100
 -      printk(KERN_INFO LIRC_DRIVER_NAME
 -              ": I/O port 0x%.4x, IRQ %d.\n",
 -              io, irq);
 +      pr_info("I/O port 0x%.4x, IRQ %d.\n", io, irq);
  #endif
  
        init_timer(&timerlist);
@@@ -1209,23 -1213,24 +1209,23 @@@ static int init_lirc_sir(void
        if (retval < 0)
                return retval;
        init_hardware();
 -      printk(KERN_INFO LIRC_DRIVER_NAME
 -              ": Installed.\n");
 +      pr_info("Installed.\n");
        return 0;
  }
  
- static int __devinit lirc_sir_probe(struct platform_device *dev)
+ static int lirc_sir_probe(struct platform_device *dev)
  {
        return 0;
  }
  
- static int __devexit lirc_sir_remove(struct platform_device *dev)
+ static int lirc_sir_remove(struct platform_device *dev)
  {
        return 0;
  }
  
  static struct platform_driver lirc_sir_driver = {
        .probe          = lirc_sir_probe,
-       .remove         = __devexit_p(lirc_sir_remove),
+       .remove         = lirc_sir_remove,
        .driver         = {
                .name   = "lirc_sir",
                .owner  = THIS_MODULE,
@@@ -1238,20 -1243,23 +1238,20 @@@ static int __init lirc_sir_init(void
  
        retval = platform_driver_register(&lirc_sir_driver);
        if (retval) {
 -              printk(KERN_ERR LIRC_DRIVER_NAME ": Platform driver register "
 -                     "failed!\n");
 +              pr_err("Platform driver register failed!\n");
                return -ENODEV;
        }
  
        lirc_sir_dev = platform_device_alloc("lirc_dev", 0);
        if (!lirc_sir_dev) {
 -              printk(KERN_ERR LIRC_DRIVER_NAME ": Platform device alloc "
 -                     "failed!\n");
 +              pr_err("Platform device alloc failed!\n");
                retval = -ENOMEM;
                goto pdev_alloc_fail;
        }
  
        retval = platform_device_add(lirc_sir_dev);
        if (retval) {
 -              printk(KERN_ERR LIRC_DRIVER_NAME ": Platform device add "
 -                     "failed!\n");
 +              pr_err("Platform device add failed!\n");
                retval = -ENODEV;
                goto pdev_add_fail;
        }
@@@ -1284,7 -1292,7 +1284,7 @@@ static void __exit lirc_sir_exit(void
        drop_port();
        platform_device_unregister(lirc_sir_dev);
        platform_driver_unregister(&lirc_sir_driver);
 -      printk(KERN_INFO LIRC_DRIVER_NAME ": Uninstalled.\n");
 +      pr_info("Uninstalled.\n");
  }
  
  module_init(lirc_sir_init);