Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 7 Jan 2011 02:32:12 +0000 (18:32 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 7 Jan 2011 02:32:12 +0000 (18:32 -0800)
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (255 commits)
  [media] radio-aimslab.c: Fix gcc 4.5+ bug
  [media] cx25821: Fix compilation breakage due to BKL dependency
  [media] v4l2-compat-ioctl32: fix compile warning
  [media] zoran: fix compiler warning
  [media] tda18218: fix compile warning
  [media] ngene: fix compile warning
  [media] DVB: IR support for TechnoTrend CT-3650
  [media] cx23885, cimax2.c: Fix case of two CAM insertion irq
  [media] ir-nec-decoder: fix repeat key issue
  [media] staging: se401 depends on USB
  [media] staging: usbvideo/vicam depends on USB
  [media] soc_camera: Add the ability to bind regulators to soc_camedra devices
  [media] V4L2: Add a v4l2-subdev (soc-camera) driver for OmniVision OV2640 sensor
  [media] v4l: soc-camera: switch to .unlocked_ioctl
  [media] v4l: ov772x: simplify pointer dereference
  [media] ov9640: fix OmniVision OV9640 sensor driver's priv data retrieving
  [media] ov9640: use macro to request OmniVision OV9640 sensor private data
  [media] ivtv-i2c: Fix two warnings
  [media] staging/lirc: Update lirc TODO files
  [media] cx88: Remove the obsolete i2c_adapter.id field
  ...

1  2 
MAINTAINERS
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-video.c
drivers/media/video/em28xx/em28xx-video.c
drivers/mfd/Kconfig
drivers/mfd/Makefile
drivers/staging/Kconfig
drivers/staging/Makefile

diff --combined MAINTAINERS
@@@ -166,8 -166,9 +166,8 @@@ F: drivers/serial/8250
  F:    include/linux/serial_8250.h
  
  8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.]
 -M:    Paul Gortmaker <p_gortmaker@yahoo.com>
  L:    netdev@vger.kernel.org
 -S:    Maintained
 +S:    Orphan / Obsolete
  F:    drivers/net/*8390*
  F:    drivers/net/ax88796.c
  
@@@ -791,14 -792,11 +791,14 @@@ S:      Maintaine
  
  ARM/NOMADIK ARCHITECTURE
  M:    Alessandro Rubini <rubini@unipv.it>
 +M:    Linus Walleij <linus.walleij@stericsson.com>
  M:    STEricsson <STEricsson_nomadik_linux@list.st.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-nomadik/
  F:    arch/arm/plat-nomadik/
 +F:    drivers/i2c/busses/i2c-nomadik.c
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git
  
  ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
  M:    Nelson Castillo <arhuaco@freaks-unidos.net>
@@@ -1000,24 -998,12 +1000,24 @@@ F:    drivers/i2c/busses/i2c-stu300.
  F:    drivers/rtc/rtc-coh901331.c
  F:    drivers/watchdog/coh901327_wdt.c
  F:    drivers/dma/coh901318*
 +F:    drivers/mfd/ab3100*
 +F:    drivers/rtc/rtc-ab3100.c
 +F:    drivers/rtc/rtc-coh901331.c
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git
  
 -ARM/U8500 ARM ARCHITECTURE
 +ARM/Ux500 ARM ARCHITECTURE
  M:    Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
 +M:    Linus Walleij <linus.walleij@stericsson.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-ux500/
 +F:    drivers/dma/ste_dma40*
 +F:    drivers/mfd/ab3550*
 +F:    drivers/mfd/abx500*
 +F:    drivers/mfd/ab8500*
 +F:    drivers/mfd/stmpe*
 +F:    drivers/rtc/rtc-ab8500.c
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git
  
  ARM/VFP SUPPORT
  M:    Russell King <linux@arm.linux.org.uk>
@@@ -1094,12 -1080,6 +1094,12 @@@ S:    Supporte
  F:    Documentation/aoe/
  F:    drivers/block/aoe/
  
 +ATHEROS ATH GENERIC UTILITIES
 +M:    "Luis R. Rodriguez" <lrodriguez@atheros.com>
 +L:    linux-wireless@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/wireless/ath/*
 +
  ATHEROS ATH5K WIRELESS DRIVER
  M:    Jiri Slaby <jirislaby@gmail.com>
  M:    Nick Kossifidis <mickflemm@gmail.com>
@@@ -1278,15 -1258,6 +1278,15 @@@ S:    Maintaine
  F:    drivers/video/backlight/
  F:    include/linux/backlight.h
  
 +BATMAN ADVANCED
 +M:    Marek Lindner <lindner_marek@yahoo.de>
 +M:    Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
 +M:    Sven Eckelmann <sven@narfation.org>
 +L:    b.a.t.m.a.n@lists.open-mesh.org
 +W:    http://www.open-mesh.org/
 +S:    Maintained
 +F:    net/batman-adv/
 +
  BAYCOM/HDLCDRV DRIVERS FOR AX.25
  M:    Thomas Sailer <t.sailer@alumni.ethz.ch>
  L:    linux-hams@vger.kernel.org
@@@ -2826,10 -2797,6 +2826,10 @@@ M:    Thomas Gleixner <tglx@linutronix.de
  S:    Maintained
  F:    Documentation/timers/
  F:    kernel/hrtimer.c
 +F:    kernel/time/clockevents.c
 +F:    kernel/time/tick*.*
 +F:    kernel/time/timer_*.c
 +F     include/linux/clockevents.h
  F:    include/linux/hrtimer.h
  
  HIGH-SPEED SCC DRIVER FOR AX.25
@@@ -3153,8 -3120,6 +3153,8 @@@ M:      Alex Duyck <alexander.h.duyck@intel.
  M:    John Ronciak <john.ronciak@intel.com>
  L:    e1000-devel@lists.sourceforge.net
  W:    http://e1000.sourceforge.net/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-2.6.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next-2.6.git
  S:    Supported
  F:    Documentation/networking/e100.txt
  F:    Documentation/networking/e1000.txt
@@@ -4647,7 -4612,7 +4647,7 @@@ PERFORMANCE EVENTS SUBSYSTE
  M:    Peter Zijlstra <a.p.zijlstra@chello.nl>
  M:    Paul Mackerras <paulus@samba.org>
  M:    Ingo Molnar <mingo@elte.hu>
 -M:    Arnaldo Carvalho de Melo <acme@redhat.com>
 +M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
  S:    Supported
  F:    kernel/perf_event*.c
  F:    include/linux/perf_event.h
@@@ -5072,7 -5037,7 +5072,7 @@@ L:      linux-wireless@vger.kernel.or
  W:    http://linuxwireless.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
  S:    Maintained
 -F:    drivers/net/wireless/rtl818x/rtl8180*
 +F:    drivers/net/wireless/rtl818x/rtl8180/
  
  RTL8187 WIRELESS DRIVER
  M:    Herton Ronaldo Krzesinski <herton@mandriva.com.br>
@@@ -5082,17 -5047,7 +5082,17 @@@ L:    linux-wireless@vger.kernel.or
  W:    http://linuxwireless.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
  S:    Maintained
 -F:    drivers/net/wireless/rtl818x/rtl8187*
 +F:    drivers/net/wireless/rtl818x/rtl8187/
 +
 +RTL8192CE WIRELESS DRIVER
 +M:    Larry Finger <Larry.Finger@lwfinger.net>
 +M:    Chaoming Li <chaoming_li@realsil.com.cn>
 +L:    linux-wireless@vger.kernel.org
 +W:    http://linuxwireless.org/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
 +S:    Maintained
 +F:    drivers/net/wireless/rtlwifi/
 +F:    drivers/net/wireless/rtlwifi/rtl8192ce/
  
  S3 SAVAGE FRAMEBUFFER DRIVER
  M:    Antonino Daplas <adaplas@gmail.com>
@@@ -5172,18 -5127,6 +5172,18 @@@ L:    alsa-devel@alsa-project.org (moderat
  S:    Supported
  F:    sound/soc/s3c24xx
  
 +TIMEKEEPING, NTP
 +M:    John Stultz <johnstul@us.ibm.com>
 +M:    Thomas Gleixner <tglx@linutronix.de>
 +S:    Supported
 +F:    include/linux/clocksource.h
 +F:    include/linux/time.h
 +F:    include/linux/timex.h
 +F:    include/linux/timekeeping.h
 +F:    kernel/time/clocksource.c
 +F:    kernel/time/time*.c
 +F:    kernel/time/ntp.c
 +
  TLG2300 VIDEO4LINUX-2 DRIVER
  M:    Huang Shijie <shijie8@gmail.com>
  M:    Kang Yong <kangyong@telegent.com>
@@@ -5754,12 -5697,6 +5754,6 @@@ M:     Ion Badulescu <ionut@badula.org
  S:    Odd Fixes
  F:    drivers/net/starfire*
  
- STRADIS MPEG-2 DECODER DRIVER
- M:    Nathan Laredo <laredo@gnu.org>
- W:    http://www.stradis.com/
- S:    Maintained
- F:    drivers/media/video/stradis.c
  SUN3/3X
  M:    Sam Creasey <sammy@sammy.net>
  W:    http://sammy.net/sun3/
@@@ -47,7 -47,7 +47,7 @@@ MODULE_PARM_DESC(latency,"pci latency t
  
  static int disable_ir;
  module_param(disable_ir, int, 0444);
- MODULE_PARM_DESC(latency, "Disable IR support");
+ MODULE_PARM_DESC(disable_ir, "Disable IR support");
  
  #define info_printk(core, fmt, arg...) \
        printk(KERN_INFO "%s: " fmt, core->name , ## arg)
@@@ -1007,22 -1007,15 +1007,22 @@@ static const struct cx88_board cx88_boa
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
 +              .audio_chip = V4L2_IDENT_WM8775,
                .input          = {{
                        .type   = CX88_VMUX_DVB,
                        .vmux   = 0,
 +                      /* 2: Line-In */
 +                      .audioroute = 2,
                },{
                        .type   = CX88_VMUX_COMPOSITE1,
                        .vmux   = 1,
 +                      /* 2: Line-In */
 +                      .audioroute = 2,
                },{
                        .type   = CX88_VMUX_SVIDEO,
                        .vmux   = 2,
 +                      /* 2: Line-In */
 +                      .audioroute = 2,
                }},
                .mpeg           = CX88_MPEG_DVB,
        },
@@@ -40,6 -40,7 +40,6 @@@
  #include "cx88.h"
  #include <media/v4l2-common.h>
  #include <media/v4l2-ioctl.h>
 -#include <media/wm8775.h>
  
  MODULE_DESCRIPTION("v4l2 driver module for cx2388x based TV cards");
  MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]");
@@@ -976,6 -977,7 +976,6 @@@ int cx88_set_control(struct cx88_core *
        const struct cx88_ctrl *c = NULL;
        u32 value,mask;
        int i;
 -      struct v4l2_control client_ctl;
  
        for (i = 0; i < CX8800_CTLS; i++) {
                if (cx8800_ctls[i].v.id == ctl->id) {
                ctl->value = c->v.minimum;
        if (ctl->value > c->v.maximum)
                ctl->value = c->v.maximum;
 -
 -      /* Pass changes onto any WM8775 */
 -      client_ctl.id = ctl->id;
 -      switch (ctl->id) {
 -      case V4L2_CID_AUDIO_MUTE:
 -              client_ctl.value = ctl->value;
 -              break;
 -      case V4L2_CID_AUDIO_VOLUME:
 -              client_ctl.value = (ctl->value) ?
 -                      (0x90 + ctl->value) << 8 : 0;
 -              break;
 -      case V4L2_CID_AUDIO_BALANCE:
 -              client_ctl.value = ctl->value << 9;
 -              break;
 -      default:
 -              client_ctl.id = 0;
 -              break;
 -      }
 -      if (client_ctl.id)
 -              call_hw(core, WM8775_GID, core, s_ctrl, &client_ctl);
 -
        mask=c->mask;
        switch (ctl->id) {
        case V4L2_CID_AUDIO_BALANCE:
@@@ -1156,15 -1179,6 +1156,6 @@@ static int vidioc_enum_fmt_vid_cap (str
        return 0;
  }
  
- #ifdef CONFIG_VIDEO_V4L1_COMPAT
- static int vidiocgmbuf (struct file *file, void *priv, struct video_mbuf *mbuf)
- {
-       struct cx8800_fh           *fh  = priv;
-       return videobuf_cgmbuf (get_queue(fh), mbuf, 8);
- }
- #endif
  static int vidioc_reqbufs (struct file *file, void *priv, struct v4l2_requestbuffers *p)
  {
        struct cx8800_fh  *fh   = priv;
@@@ -1535,7 -1549,9 +1526,7 @@@ static int radio_queryctrl (struct fil
        if (c->id <  V4L2_CID_BASE ||
                c->id >= V4L2_CID_LASTP1)
                return -EINVAL;
 -      if (c->id == V4L2_CID_AUDIO_MUTE ||
 -              c->id == V4L2_CID_AUDIO_VOLUME ||
 -              c->id == V4L2_CID_AUDIO_BALANCE) {
 +      if (c->id == V4L2_CID_AUDIO_MUTE) {
                for (i = 0; i < CX8800_CTLS; i++) {
                        if (cx8800_ctls[i].v.id == c->id)
                                break;
@@@ -1706,9 -1722,6 +1697,6 @@@ static const struct v4l2_ioctl_ops vide
        .vidioc_s_ctrl        = vidioc_s_ctrl,
        .vidioc_streamon      = vidioc_streamon,
        .vidioc_streamoff     = vidioc_streamoff,
- #ifdef CONFIG_VIDEO_V4L1_COMPAT
-       .vidiocgmbuf          = vidiocgmbuf,
- #endif
        .vidioc_g_tuner       = vidioc_g_tuner,
        .vidioc_s_tuner       = vidioc_s_tuner,
        .vidioc_g_frequency   = vidioc_g_frequency,
@@@ -1434,7 -1434,7 +1434,7 @@@ static int vidioc_s_ctrl(struct file *f
  
        /* It isn't an AC97 control. Sends it to the v4l2 dev interface */
        if (rc == 1) {
-               v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_ctrl, ctrl);
+               rc = v4l2_device_call_until_err(&dev->v4l2_dev, 0, core, s_ctrl, ctrl);
  
                /*
                 * In the case of non-AC97 volume controls, we still need
@@@ -1708,11 -1708,15 +1708,15 @@@ static int vidioc_streamoff(struct fil
                        fh, type, fh->resources, dev->resources);
  
        if (fh->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) {
-               videobuf_streamoff(&fh->vb_vidq);
-               res_free(fh, EM28XX_RESOURCE_VIDEO);
+               if (res_check(fh, EM28XX_RESOURCE_VIDEO)) {
+                       videobuf_streamoff(&fh->vb_vidq);
+                       res_free(fh, EM28XX_RESOURCE_VIDEO);
+               }
        } else if (fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) {
-               videobuf_streamoff(&fh->vb_vbiq);
-               res_free(fh, EM28XX_RESOURCE_VBI);
+               if (res_check(fh, EM28XX_RESOURCE_VBI)) {
+                       videobuf_streamoff(&fh->vb_vbiq);
+                       res_free(fh, EM28XX_RESOURCE_VBI);
+               }
        }
  
        return 0;
@@@ -1934,19 -1938,6 +1938,6 @@@ static int vidioc_dqbuf(struct file *fi
                                      O_NONBLOCK);
  }
  
- #ifdef CONFIG_VIDEO_V4L1_COMPAT
- static int vidiocgmbuf(struct file *file, void *priv, struct video_mbuf *mbuf)
- {
-       struct em28xx_fh  *fh = priv;
-       if (fh->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
-               return videobuf_cgmbuf(&fh->vb_vidq, mbuf, 8);
-       else
-               return videobuf_cgmbuf(&fh->vb_vbiq, mbuf, 8);
- }
- #endif
  /* ----------------------------------------------------------- */
  /* RADIO ESPECIFIC IOCTLS                                      */
  /* ----------------------------------------------------------- */
@@@ -2359,9 -2350,6 +2350,6 @@@ static const struct v4l2_ioctl_ops vide
        .vidioc_s_register          = vidioc_s_register,
        .vidioc_g_chip_ident        = vidioc_g_chip_ident,
  #endif
- #ifdef CONFIG_VIDEO_V4L1_COMPAT
-       .vidiocgmbuf                = vidiocgmbuf,
- #endif
  };
  
  static const struct video_device em28xx_video_template = {
@@@ -2377,7 -2365,7 +2365,7 @@@ static const struct v4l2_file_operation
        .owner         = THIS_MODULE,
        .open          = em28xx_v4l2_open,
        .release       = em28xx_v4l2_close,
 -      .ioctl         = video_ioctl2,
 +      .unlocked_ioctl = video_ioctl2,
  };
  
  static const struct v4l2_ioctl_ops radio_ioctl_ops = {
diff --combined drivers/mfd/Kconfig
@@@ -218,12 -218,12 +218,12 @@@ config MFD_STMP
                Keypad: stmpe-keypad
                Touchscreen: stmpe-ts
  
 -config MFD_TC35892
 -      bool "Support Toshiba TC35892"
 +config MFD_TC3589X
 +      bool "Support Toshiba TC35892 and variants"
        depends on I2C=y && GENERIC_HARDIRQS
        select MFD_CORE
        help
 -        Support for the Toshiba TC35892 I/O Expander.
 +        Support for the Toshiba TC35892 and variants I/O Expander.
  
          This driver provides common support for accessing the device,
          additional drivers must be enabled in order to use the
@@@ -606,6 -606,16 +606,16 @@@ config MFD_VX85
          VIA VX855/VX875 south bridge. You will need to enable the vx855_spi
          and/or vx855_gpio drivers for this to do anything useful.
  
+ config MFD_WL1273_CORE
+       tristate
+       depends on I2C
+       select MFD_CORE
+       default n
+       help
+         This is the core driver for the TI WL1273 FM radio. This MFD
+         driver connects the radio-wl1273 V4L2 module and the wl1273
+         audio codec.
  endif # MFD_SUPPORT
  
  menu "Multimedia Capabilities Port drivers"
diff --combined drivers/mfd/Makefile
@@@ -16,7 -16,7 +16,7 @@@ obj-$(CONFIG_MFD_DAVINCI_VOICECODEC)  +
  obj-$(CONFIG_MFD_DM355EVM_MSP)        += dm355evm_msp.o
  
  obj-$(CONFIG_MFD_STMPE)               += stmpe.o
 -obj-$(CONFIG_MFD_TC35892)     += tc35892.o
 +obj-$(CONFIG_MFD_TC3589X)     += tc3589x.o
  obj-$(CONFIG_MFD_T7L66XB)     += t7l66xb.o tmio_core.o
  obj-$(CONFIG_MFD_TC6387XB)    += tc6387xb.o tmio_core.o
  obj-$(CONFIG_MFD_TC6393XB)    += tc6393xb.o tmio_core.o
@@@ -81,3 -81,4 +81,4 @@@ obj-$(CONFIG_MFD_JANZ_CMODIO) += janz-c
  obj-$(CONFIG_MFD_JZ4740_ADC)  += jz4740-adc.o
  obj-$(CONFIG_MFD_TPS6586X)    += tps6586x.o
  obj-$(CONFIG_MFD_VX855)               += vx855.o
+ obj-$(CONFIG_MFD_WL1273_CORE) += wl1273-core.o
diff --combined drivers/staging/Kconfig
@@@ -51,9 -51,11 +51,11 @@@ source "drivers/staging/cx25821/Kconfig
  
  source "drivers/staging/tm6000/Kconfig"
  
- source "drivers/staging/cpia/Kconfig"
+ source "drivers/staging/dabusb/Kconfig"
  
- source "drivers/staging/stradis/Kconfig"
+ source "drivers/staging/se401/Kconfig"
+ source "drivers/staging/usbvideo/Kconfig"
  
  source "drivers/staging/usbip/Kconfig"
  
@@@ -111,6 -113,8 +113,6 @@@ source "drivers/staging/vt6655/Kconfig
  
  source "drivers/staging/vt6656/Kconfig"
  
 -source "drivers/staging/udlfb/Kconfig"
 -
  source "drivers/staging/hv/Kconfig"
  
  source "drivers/staging/vme/Kconfig"
diff --combined drivers/staging/Makefile
@@@ -8,8 -8,9 +8,9 @@@ obj-$(CONFIG_SLICOSS)            += slicoss
  obj-$(CONFIG_VIDEO_GO7007)    += go7007/
  obj-$(CONFIG_VIDEO_CX25821)   += cx25821/
  obj-$(CONFIG_VIDEO_TM6000)    += tm6000/
- obj-$(CONFIG_VIDEO_CPIA)      += cpia/
- obj-$(CONFIG_VIDEO_STRADIS)   += stradis/
+ obj-$(CONFIG_USB_DABUSB)        += dabusb/
+ obj-$(CONFIG_USB_VICAM)         += usbvideo/
+ obj-$(CONFIG_USB_SE401)         += se401/
  obj-$(CONFIG_LIRC_STAGING)    += lirc/
  obj-$(CONFIG_USB_IP_COMMON)   += usbip/
  obj-$(CONFIG_W35UND)          += winbond/
@@@ -38,6 -39,7 +39,6 @@@ obj-$(CONFIG_USB_SERIAL_QUATECH_USB2) +
  obj-$(CONFIG_OCTEON_ETHERNET) += octeon/
  obj-$(CONFIG_VT6655)          += vt6655/
  obj-$(CONFIG_VT6656)          += vt6656/
 -obj-$(CONFIG_FB_UDL)          += udlfb/
  obj-$(CONFIG_HYPERV)          += hv/
  obj-$(CONFIG_VME_BUS)         += vme/
  obj-$(CONFIG_MRST_RAR_HANDLER)        += memrar/