Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
authorLinus Torvalds <torvalds@g5.osdl.org>
Sat, 30 Sep 2006 16:39:15 +0000 (09:39 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 30 Sep 2006 16:39:15 +0000 (09:39 -0700)
* master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (180 commits)
  V4L/DVB (4641): Trivial: use lowercase letters in hex subsystem ids
  V4L/DVB (4639): Cx88: add autodetection for alternate revision of Leadtek PVR
  V4L/DVB (4638): Basic DVB-T and analog TV support for the HVR1300.
  V4L/DVB (4637): Add a default method for VIDIOC_G_PARM
  V4L/DVB (4635): Extend bttv and saa7134 to check for both AGP and PCI PCI failure case
  V4L/DVB (4634): Zr36120: implement pcipci checks
  V4L/DVB (4632): Zoran: Implement pcipci failure check
  V4L/DVB (4631): Av7110: remove V4L2_CAP_VBI_CAPTURE flag
  V4L/DVB (4630): Av7110: FW_LOADER depemdency fixed
  V4L/DVB (4629): Saa7134: add card support for Proteus Pro 2309
  V4L/DVB (4628): Fix VIDIOC_ENUMSTD ioctl in videodev.c
  V4L/DVB (4627): Vivi crashes with mplayer
  V4L/DVB (4626): On saa7111/7113, LUMA_CTRL need a different value
  V4L/DVB (4624): Tvaudio: Replaced kernel_thread() with kthread_run()
  V4L/DVB (4622): Copy-paste bug in videodev.c
  V4L/DVB (4620): Fix AGC configuration for MOD3000P-based boards
  V4L/DVB (4619): Fixes some I2C dependencies on V4L devices
  V4L/DVB (4617): Problem with dibusb-mb.c USB IDs
  V4L/DVB (4616): [PATCH] Nebula DigiTV USB RC support
  V4L/DVB (4614): Export symbol saa7134_tvaudio_setmute from saa7134 for saa7134-alsa
  ...

1  2 
Documentation/feature-removal-schedule.txt
drivers/media/dvb/ttusb-dec/ttusb_dec.c
drivers/media/video/bt8xx/bttv-i2c.c
drivers/media/video/cx88/cx88-i2c.c
drivers/media/video/zoran_card.c
include/media/v4l2-dev.h

@@@ -6,21 -6,6 +6,21 @@@ be removed from this file
  
  ---------------------------
  
 +What: /sys/devices/.../power/state
 +      dev->power.power_state
 +      dpm_runtime_{suspend,resume)()
 +When: July 2007
 +Why:  Broken design for runtime control over driver power states, confusing
 +      driver-internal runtime power management with:  mechanisms to support
 +      system-wide sleep state transitions; event codes that distinguish
 +      different phases of swsusp "sleep" transitions; and userspace policy
 +      inputs.  This framework was never widely used, and most attempts to
 +      use it were broken.  Drivers should instead be exposing domain-specific
 +      interfaces either to kernel or to userspace.
 +Who:  Pavel Machek <pavel@suse.cz>
 +
 +---------------------------
 +
  What: RAW driver (CONFIG_RAW_DRIVER)
  When: December 2005
  Why:  declared obsolete since kernel 2.6.3
@@@ -46,8 -31,17 +46,8 @@@ Who: Jody McIntyre <scjody@modernduck.c
  
  ---------------------------
  
 -What: sbp2: module parameter "force_inquiry_hack"
 -When: July 2006
 -Why:  Superceded by parameter "workarounds". Both parameters are meant to be
 -      used ad-hoc and for single devices only, i.e. not in modprobe.conf,
 -      therefore the impact of this feature replacement should be low.
 -Who:  Stefan Richter <stefanr@s5r6.in-berlin.de>
 -
 ----------------------------
 -
  What: Video4Linux API 1 ioctls and video_decoder.h from Video devices.
- When: July 2006
+ When: December 2006
  Why:  V4L1 AP1 was replaced by V4L2 API. during migration from 2.4 to 2.6
        series. The old API have lots of drawbacks and don't provide enough
        means to work with all video and audio standards. The newer API is
@@@ -61,18 -55,6 +61,18 @@@ Who:        Mauro Carvalho Chehab <mchehab@brt
  
  ---------------------------
  
 +What: sys_sysctl
 +When: January 2007
 +Why:  The same information is available through /proc/sys and that is the
 +      interface user space prefers to use. And there do not appear to be
 +      any existing user in user space of sys_sysctl.  The additional
 +      maintenance overhead of keeping a set of binary names gets
 +      in the way of doing a good job of maintaining this interface.
 +
 +Who:  Eric Biederman <ebiederm@xmission.com>
 +
 +---------------------------
 +
  What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
  When: November 2005
  Files:        drivers/pcmcia/: pcmcia_ioctl.c
@@@ -220,6 -202,14 +220,6 @@@ Who:      Nick Piggin <npiggin@suse.de
  
  ---------------------------
  
 -What: Support for the MIPS EV96100 evaluation board
 -When: September 2006
 -Why:  Does no longer build since at least November 15, 2003, apparently
 -      no userbase left.
 -Who:  Ralf Baechle <ralf@linux-mips.org>
 -
 ----------------------------
 -
  What: Support for the Momentum / PMC-Sierra Jaguar ATX evaluation board
  When: September 2006
  Why:  Does no longer build since quite some time, and was never popular,
@@@ -304,24 -294,3 +304,24 @@@ Why:     The frame diverter is included in 
        It is not clear if anyone is still using it.
  Who:  Stephen Hemminger <shemminger@osdl.org>
  
 +---------------------------
 +
 +
 +What: PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment
 +When: Oktober 2008
 +Why:  The stacking of class devices makes these values misleading and
 +      inconsistent.
 +      Class devices should not carry any of these properties, and bus
 +      devices have SUBSYTEM and DRIVER as a replacement.
 +Who:  Kay Sievers <kay.sievers@suse.de>
 +
 +---------------------------
 +
 +What: i2c-isa
 +When: December 2006
 +Why:  i2c-isa is a non-sense and doesn't fit in the device driver
 +      model. Drivers relying on it are better implemented as platform
 +      drivers.
 +Who:  Jean Delvare <khali@linux-fr.org>
 +
 +---------------------------
@@@ -215,7 -215,7 +215,7 @@@ static void ttusb_dec_handle_irq( struc
                case -ECONNRESET:
                case -ENOENT:
                case -ESHUTDOWN:
 -              case -ETIMEDOUT:
 +              case -ETIME:
                        /* this urb is dead, cleanup */
                        dprintk("%s:urb shutting down with status: %d\n",
                                        __FUNCTION__, urb->status);
@@@ -1512,7 -1512,11 +1512,11 @@@ static void ttusb_dec_exit_dvb(struct t
        dec->demux.dmx.remove_frontend(&dec->demux.dmx, &dec->frontend);
        dvb_dmxdev_release(&dec->dmxdev);
        dvb_dmx_release(&dec->demux);
-       if (dec->fe) dvb_unregister_frontend(dec->fe);
+       if (dec->fe) {
+               dvb_unregister_frontend(dec->fe);
+               if (dec->fe->ops.release)
+                       dec->fe->ops.release(dec->fe);
+       }
        dvb_unregister_adapter(&dec->adapter);
  }
  
@@@ -8,6 -8,9 +8,9 @@@
                           & Marcus Metzler (mocm@thp.uni-koeln.de)
      (c) 1999-2003 Gerd Knorr <kraxel@bytesex.org>
  
+     (c) 2005 Mauro Carvalho Chehab <mchehab@infradead.org>
+       - Multituner support and i2c address binding
      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation; either version 2 of the License, or
@@@ -45,10 -48,18 +48,18 @@@ static int i2c_debug
  static int i2c_hw;
  static int i2c_scan;
  module_param(i2c_debug, int, 0644);
+ MODULE_PARM_DESC(i2c_hw,"configure i2c debug level");
  module_param(i2c_hw,    int, 0444);
+ MODULE_PARM_DESC(i2c_hw,"force use of hardware i2c support, "
+                       "instead of software bitbang");
  module_param(i2c_scan,  int, 0444);
  MODULE_PARM_DESC(i2c_scan,"scan i2c bus at insmod time");
  
+ static unsigned int i2c_udelay = 5;
+ module_param(i2c_udelay, int, 0444);
+ MODULE_PARM_DESC(i2c_udelay,"soft i2c delay at insmod time, in usecs "
+               "(should be 5 or higher). Lower value means higher bus speed.");
  /* ----------------------------------------------------------------------- */
  /* I2C functions - bitbanging adapter (software i2c)                       */
  
@@@ -100,6 -111,7 +111,6 @@@ static struct i2c_algo_bit_data bttv_i2
        .getsda  = bttv_bit_getsda,
        .getscl  = bttv_bit_getscl,
        .udelay  = 16,
 -      .mdelay  = 10,
        .timeout = 200,
  };
  
@@@ -425,6 -437,11 +436,11 @@@ int __devinit init_bttv_i2c(struct btt
                       sizeof(bttv_i2c_adap_hw_template));
        } else {
                /* bt848 */
+       /* Prevents usage of invalid delay values */
+               if (i2c_udelay<5)
+                       i2c_udelay=5;
+               bttv_i2c_algo_bit_template.udelay=i2c_udelay;
                memcpy(&btv->c.i2c_adap, &bttv_i2c_adap_sw_template,
                       sizeof(bttv_i2c_adap_sw_template));
                memcpy(&btv->i2c_algo, &bttv_i2c_algo_bit_template,
@@@ -7,6 -7,9 +7,9 @@@
      (c) 2002 Yurij Sysoev <yurij@naturesoft.net>
      (c) 1999-2003 Gerd Knorr <kraxel@bytesex.org>
  
+     (c) 2005 Mauro Carvalho Chehab <mchehab@infradead.org>
+       - Multituner support and i2c address binding
      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation; either version 2 of the License, or
@@@ -40,6 -43,11 +43,11 @@@ static unsigned int i2c_scan = 0
  module_param(i2c_scan, int, 0444);
  MODULE_PARM_DESC(i2c_scan,"scan i2c bus at insmod time");
  
+ static unsigned int i2c_udelay = 5;
+ module_param(i2c_udelay, int, 0644);
+ MODULE_PARM_DESC(i2c_udelay,"i2c delay at insmod time, in usecs "
+               "(should be 5 or higher). Lower value means higher bus speed.");
  #define dprintk(level,fmt, arg...)    if (i2c_debug >= level) \
        printk(KERN_DEBUG "%s: " fmt, core->name , ## arg)
  
@@@ -155,6 -163,7 +163,6 @@@ static struct i2c_algo_bit_data cx8800_
        .getsda  = cx8800_bit_getsda,
        .getscl  = cx8800_bit_getscl,
        .udelay  = 16,
 -      .mdelay  = 10,
        .timeout = 200,
  };
  
@@@ -198,6 -207,11 +206,11 @@@ static void do_i2c_scan(char *name, str
  /* init + register i2c algo-bit adapter */
  int cx88_i2c_init(struct cx88_core *core, struct pci_dev *pci)
  {
+       /* Prevents usage of invalid delay values */
+       if (i2c_udelay<5)
+               i2c_udelay=5;
+       cx8800_i2c_algo_template.udelay=i2c_udelay;
        memcpy(&core->i2c_adap, &cx8800_i2c_adap_template,
               sizeof(core->i2c_adap));
        memcpy(&core->i2c_algo, &cx8800_i2c_algo_template,
@@@ -820,6 -820,7 +820,6 @@@ static struct i2c_algo_bit_data zoran_i
        .getsda = zoran_i2c_getsda,
        .getscl = zoran_i2c_getscl,
        .udelay = 10,
 -      .mdelay = 0,
        .timeout = 100,
  };
  
@@@ -1620,10 -1621,10 +1620,10 @@@ init_dc10_cards (void
        dprintk(5, KERN_DEBUG "Jotti is een held!\n");
  
        /* some mainboards might not do PCI-PCI data transfer well */
-       if (pci_pci_problems & PCIPCI_FAIL) {
+       if (pci_pci_problems & (PCIPCI_FAIL|PCIAGP_FAIL|PCIPCI_ALIMAGIK)) {
                dprintk(1,
                        KERN_WARNING
-                       "%s: chipset may not support reliable PCI-PCI DMA\n",
+                       "%s: chipset does not support reliable PCI-PCI DMA\n",
                        ZORAN_NAME);
        }
  
        for (i = 0; i < zoran_num; i++) {
                struct zoran *zr = &zoran[i];
  
-               if (pci_pci_problems & PCIPCI_NATOMA && zr->revision <= 1) {
+               if ((pci_pci_problems & PCIPCI_NATOMA) && zr->revision <= 1) {
                        zr->jpg_buffers.need_contiguous = 1;
                        dprintk(1,
                                KERN_INFO
diff --combined include/media/v4l2-dev.h
@@@ -9,7 -9,8 +9,8 @@@
  #ifndef _V4L2_DEV_H
  #define _V4L2_DEV_H
  
- #define OBSOLETE_OWNER 1 /* to be removed soon */
+ #define OBSOLETE_OWNER   1 /* to be removed soon */
+ #define OBSOLETE_DEVDATA 1 /* to be removed soon */
  
  #include <linux/poll.h>
  #include <linux/fs.h>
@@@ -338,10 -339,8 +339,8 @@@ extern int video_usercopy(struct inode 
  #ifdef CONFIG_VIDEO_V4L1_COMPAT
  #include <linux/mm.h>
  
- extern struct video_device* video_devdata(struct file*);
  #define to_video_device(cd) container_of(cd, struct video_device, class_dev)
 -static inline int
 +static inline int __must_check
  video_device_create_file(struct video_device *vfd,
                         struct class_device_attribute *attr)
  {
@@@ -370,9 -369,14 +369,14 @@@ static inline void video_set_drvdata(st
  {
        dev->priv = data;
  }
  #endif
  
+ #ifdef OBSOLETE_DEVDATA /* to be removed soon */
+ /* Obsolete stuff - Still needed for radio devices and obsolete drivers */
+ extern struct video_device* video_devdata(struct file*);
  extern int video_exclusive_open(struct inode *inode, struct file *file);
  extern int video_exclusive_release(struct inode *inode, struct file *file);
+ #endif
  
  #endif /* _V4L2_DEV_H */