Merge branch 'origin'
authorLinus Torvalds <torvalds@g5.osdl.org>
Tue, 21 Mar 2006 16:52:18 +0000 (08:52 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 21 Mar 2006 16:52:18 +0000 (08:52 -0800)
Conflicts:
Documentation/video4linux/CARDLIST.cx88
drivers/media/video/cx88/Kconfig
drivers/media/video/em28xx/em28xx-video.c
drivers/media/video/saa7134/saa7134-dvb.c

Resolved as in the original merge by Mauro Carvalho Chehab

1  2 
drivers/media/dvb/dvb-usb/vp7045.c
drivers/media/video/cx88/Kconfig
drivers/media/video/mxb.c
include/linux/dvb/video.h
include/linux/videodev2.h

@@@ -38,7 -38,7 +38,7 @@@ int vp7045_usb_op(struct dvb_usb_devic
        deb_xfer("out buffer: ");
        debug_dump(outbuf,outlen+1,deb_xfer);
  
 -      if ((ret = down_interruptible(&d->usb_sem)))
 +      if ((ret = mutex_lock_interruptible(&d->usb_mutex)))
                return ret;
  
        if (usb_control_msg(d->udev,
@@@ -68,7 -68,7 +68,7 @@@
                memcpy(in,&inbuf[1],inlen);
  
  unlock:
 -      up(&d->usb_sem);
 +      mutex_unlock(&d->usb_mutex);
  
        return ret;
  }
@@@ -247,7 -247,7 +247,7 @@@ static struct dvb_usb_properties vp7045
                  .cold_ids = { &vp7045_usb_table[2], NULL },
                  .warm_ids = { &vp7045_usb_table[3], NULL },
                },
-               { 0 },
+               { NULL },
        }
  };
  
@@@ -15,20 -15,6 +15,6 @@@ config VIDEO_CX8
          To compile this driver as a module, choose M here: the
          module will be called cx8800
  
- config VIDEO_CX88_DVB
-       tristate "DVB/ATSC Support for cx2388x based TV cards"
-       depends on VIDEO_CX88 && DVB_CORE
-       select VIDEO_BUF_DVB
-       ---help---
-         This adds support for DVB/ATSC cards based on the
-         Connexant 2388x chip.
-         To compile this driver as a module, choose M here: the
-         module will be called cx88-dvb.
-         You must also select one or more DVB/ATSC demodulators.
-         If you are unsure which you need, choose all of them.
  config VIDEO_CX88_ALSA
        tristate "ALSA DMA audio support"
        depends on VIDEO_CX88 && SND && EXPERIMENTAL
          To compile this driver as a module, choose M here: the
          module will be called cx88-alsa.
  
+ config VIDEO_CX88_DVB
+       tristate "DVB/ATSC Support for cx2388x based TV cards"
+       depends on VIDEO_CX88 && DVB_CORE
+       select VIDEO_BUF_DVB
+       ---help---
+         This adds support for DVB/ATSC cards based on the
+         Connexant 2388x chip.
+         To compile this driver as a module, choose M here: the
+         module will be called cx88-dvb.
+         You must also select one or more DVB/ATSC demodulators.
+         If you are unsure which you need, choose all of them.
  config VIDEO_CX88_DVB_ALL_FRONTENDS
        bool "Build all supported frontends for cx2388x based TV cards"
        default y
        depends on VIDEO_CX88_DVB
        select DVB_MT352
        select VIDEO_CX88_VP3054
 +      select DVB_ZL10353
        select DVB_OR51132
        select DVB_CX22702
        select DVB_LGDT330X
@@@ -82,16 -81,6 +82,16 @@@ config VIDEO_CX88_VP305
          which also require support for the VP-3054
          Secondary I2C bus, such at DNTV Live! DVB-T Pro.
  
 +config VIDEO_CX88_DVB_ZL10353
 +      bool "Zarlink ZL10353 DVB-T Support"
 +      default y
 +      depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS
 +      select DVB_ZL10353
 +      ---help---
 +        This adds DVB-T support for cards based on the
 +        Connexant 2388x chip and the ZL10353 demodulator,
 +        successor to the Zarlink MT352.
 +
  config VIDEO_CX88_DVB_OR51132
        bool "OR51132 ATSC Support"
        default y
@@@ -1,7 -1,7 +1,7 @@@
  /*
      mxb - v4l2 driver for the Multimedia eXtension Board
      
-     Copyright (C) 1998-2003 Michael Hunold <michael@mihu.de>
+     Copyright (C) 1998-2006 Michael Hunold <michael@mihu.de>
  
      Visit http://www.mihu.de/linux/saa7146/mxb/
      for further details about this card.
@@@ -327,6 -327,7 +327,7 @@@ static int mxb_init_done(struct saa7146
        struct video_decoder_init init;
        struct i2c_msg msg;
        struct tuner_setup tun_setup;
+       v4l2_std_id std = V4L2_STD_PAL_BG;
  
        int i = 0, err = 0;
        struct  tea6415c_multiplex vm;  
        mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_FREQUENCY,
                                        &mxb->cur_freq);
  
+       /* set a default video standard */
+       mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std);
        /* mute audio on tea6420s */
        mxb->tea6420_1->driver->command(mxb->tea6420_1,TEA6420_SWITCH, &TEA6420_line[6][0]);
        mxb->tea6420_2->driver->command(mxb->tea6420_2,TEA6420_SWITCH, &TEA6420_line[6][1]);
@@@ -625,9 -629,9 +629,9 @@@ static int mxb_ioctl(struct saa7146_fh 
                }
                
                /* fixme: locke das setzen des inputs mit hilfe des mutexes
 -              down(&dev->lock);
 +              mutex_lock(&dev->lock);
                video_mux(dev,*i);
 -              up(&dev->lock);
 +              mutex_unlock(&dev->lock);
                */
                                
                /* fixme: check if streaming capture
@@@ -921,17 -925,21 +925,21 @@@ static int std_callback(struct saa7146_
        int one = 1;
  
        if(V4L2_STD_PAL_I == std->id ) {
+               v4l2_std_id std = V4L2_STD_PAL_I;
                DEB_D(("VIDIOC_S_STD: setting mxb for PAL_I.\n"));
                /* set the 7146 gpio register -- I don't know what this does exactly */
                        saa7146_write(dev, GPIO_CTRL, 0x00404050);
                /* unset the 7111 gpio register -- I don't know what this does exactly */
                mxb->saa7111a->driver->command(mxb->saa7111a,DECODER_SET_GPIO, &zero);
+               mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std);
        } else {
+               v4l2_std_id std = V4L2_STD_PAL_BG;
                DEB_D(("VIDIOC_S_STD: setting mxb for PAL/NTSC/SECAM.\n"));
                /* set the 7146 gpio register -- I don't know what this does exactly */
                        saa7146_write(dev, GPIO_CTRL, 0x00404050);
                /* set the 7111 gpio register -- I don't know what this does exactly */
                mxb->saa7111a->driver->command(mxb->saa7111a,DECODER_SET_GPIO, &one);
+               mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std);
        }
        return 0;
  }
@@@ -135,7 -135,7 +135,7 @@@ typedef struct video_spu 
  
  typedef struct video_spu_palette {      /* SPU Palette information */
        int length;
-       uint8_t *palette;
+       uint8_t __user *palette;
  } video_spu_palette_t;
  
  
@@@ -200,17 -200,4 +200,17 @@@ typedef uint16_t video_attributes_t
  #define VIDEO_GET_SIZE             _IOR('o', 55, video_size_t)
  #define VIDEO_GET_FRAME_RATE       _IOR('o', 56, unsigned int)
  
 +/**
 + * VIDEO_GET_PTS
 + *
 + * Read the 33 bit presentation time stamp as defined
 + * in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
 + *
 + * The PTS should belong to the currently played
 + * frame if possible, but may also be a value close to it
 + * like the PTS of the last decoded frame or the last PTS
 + * extracted by the PES parser.
 + */
 +#define VIDEO_GET_PTS              _IOR('o', 57, __u64)
 +
  #endif /*_DVBVIDEO_H_*/
  #include <linux/time.h> /* need struct timeval */
  #include <linux/poll.h>
  #include <linux/device.h>
 +#include <linux/mutex.h>
  #endif
  #include <linux/compiler.h> /* need __user */
  
  
 -#define OBSOLETE_OWNER 1 /* It will be removed for 2.6.15 */
 +#define OBSOLETE_OWNER 1 /* It will be removed for 2.6.17 */
  #define HAVE_V4L2 1
  
  /*
  
  #ifdef __KERNEL__
  
 +/* Minor device allocation */
 +#define MINOR_VFL_TYPE_GRABBER_MIN   0
 +#define MINOR_VFL_TYPE_GRABBER_MAX  63
 +#define MINOR_VFL_TYPE_RADIO_MIN    64
 +#define MINOR_VFL_TYPE_RADIO_MAX   127
 +#define MINOR_VFL_TYPE_VTX_MIN     192
 +#define MINOR_VFL_TYPE_VTX_MAX     223
 +#define MINOR_VFL_TYPE_VBI_MIN     224
 +#define MINOR_VFL_TYPE_VBI_MAX     255
 +
  #define VFL_TYPE_GRABBER      0
  #define VFL_TYPE_VBI          1
  #define VFL_TYPE_RADIO                2
@@@ -91,7 -80,7 +91,7 @@@ struct video_devic
  
        /* for videodev.c intenal usage -- please don't touch */
        int users;                     /* video_exclusive_{open|close} ... */
 -      struct semaphore lock;         /* ... helper function uses these   */
 +      struct mutex lock;             /* ... helper function uses these   */
        char devfs_name[64];           /* devfs */
        struct class_device class_dev; /* sysfs */
  };
@@@ -560,7 -549,7 +560,7 @@@ struct v4l2_framebuffe
  struct v4l2_clip
  {
        struct v4l2_rect        c;
-       struct v4l2_clip        *next;
+       struct v4l2_clip        __user *next;
  };
  
  struct v4l2_window
@@@ -963,68 -952,13 +963,68 @@@ struct v4l2_sliced_vbi_forma
        __u32   reserved[2];            /* must be zero */
  };
  
 -#define V4L2_SLICED_TELETEXT_B          (0x0001)
 -#define V4L2_SLICED_VPS                 (0x0400)
 -#define V4L2_SLICED_CAPTION_525         (0x1000)
 -#define V4L2_SLICED_WSS_625             (0x4000)
 -
 -#define V4L2_SLICED_VBI_525             (V4L2_SLICED_CAPTION_525)
 -#define V4L2_SLICED_VBI_625             (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625)
 +/* Teletext World System Teletext
 +   (WST), defined on ITU-R BT.653-2 */
 +#define V4L2_SLICED_TELETEXT_PAL_B      (0x000001)
 +#define V4L2_SLICED_TELETEXT_PAL_C      (0x000002)
 +#define V4L2_SLICED_TELETEXT_NTSC_B     (0x000010)
 +#define V4L2_SLICED_TELETEXT_SECAM      (0x000020)
 +
 +/* Teletext North American Broadcast Teletext Specification
 +   (NABTS), defined on ITU-R BT.653-2 */
 +#define V4L2_SLICED_TELETEXT_NTSC_C     (0x000040)
 +#define V4L2_SLICED_TELETEXT_NTSC_D     (0x000080)
 +
 +/* Video Program System, defined on ETS 300 231*/
 +#define V4L2_SLICED_VPS                 (0x000400)
 +
 +/* Closed Caption, defined on EIA-608 */
 +#define V4L2_SLICED_CAPTION_525         (0x001000)
 +#define V4L2_SLICED_CAPTION_625         (0x002000)
 +
 +/* Wide Screen System, defined on ITU-R BT1119.1 */
 +#define V4L2_SLICED_WSS_625             (0x004000)
 +
 +/* Wide Screen System, defined on IEC 61880 */
 +#define V4L2_SLICED_WSS_525             (0x008000)
 +
 +/* Vertical Interval Timecode (VITC), defined on SMPTE 12M */
 +#define V4l2_SLICED_VITC_625          (0x010000)
 +#define V4l2_SLICED_VITC_525          (0x020000)
 +
 +#define V4L2_SLICED_TELETEXT_B                (V4L2_SLICED_TELETEXT_PAL_B  |\
 +                                       V4L2_SLICED_TELETEXT_NTSC_B)
 +
 +#define V4L2_SLICED_TELETEXT          (V4L2_SLICED_TELETEXT_PAL_B  |\
 +                                       V4L2_SLICED_TELETEXT_PAL_C  |\
 +                                       V4L2_SLICED_TELETEXT_SECAM  |\
 +                                       V4L2_SLICED_TELETEXT_NTSC_B |\
 +                                       V4L2_SLICED_TELETEXT_NTSC_C |\
 +                                       V4L2_SLICED_TELETEXT_NTSC_D)
 +
 +#define V4L2_SLICED_CAPTION           (V4L2_SLICED_CAPTION_525     |\
 +                                       V4L2_SLICED_CAPTION_625)
 +
 +#define V4L2_SLICED_WSS                       (V4L2_SLICED_WSS_525         |\
 +                                       V4L2_SLICED_WSS_625)
 +
 +#define V4L2_SLICED_VITC              (V4L2_SLICED_VITC_525        |\
 +                                       V4L2_SLICED_VITC_625)
 +
 +#define V4L2_SLICED_VBI_525             (V4L2_SLICED_TELETEXT_NTSC_B |\
 +                                       V4L2_SLICED_TELETEXT_NTSC_C |\
 +                                       V4L2_SLICED_TELETEXT_NTSC_D |\
 +                                       V4L2_SLICED_CAPTION_525     |\
 +                                       V4L2_SLICED_WSS_525         |\
 +                                       V4l2_SLICED_VITC_525)
 +
 +#define V4L2_SLICED_VBI_625             (V4L2_SLICED_TELETEXT_PAL_B  |\
 +                                       V4L2_SLICED_TELETEXT_PAL_C  |\
 +                                       V4L2_SLICED_TELETEXT_SECAM  |\
 +                                       V4L2_SLICED_VPS             |\
 +                                       V4L2_SLICED_CAPTION_625     |\
 +                                       V4L2_SLICED_WSS_625         |\
 +                                       V4l2_SLICED_VITC_625)
  
  struct v4l2_sliced_vbi_cap
  {