linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 6/6] [media] omap_vout: Remove an obsolete comment
       [not found] <cover.1293449547.git.mchehab@redhat.com>
@ 2010-12-27 11:38 ` Mauro Carvalho Chehab
  2010-12-27 11:38 ` [PATCH 5/6] [media] Remove the old V4L1 v4lgrab.c file Mauro Carvalho Chehab
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2010-12-27 11:38 UTC (permalink / raw)
  Cc: Linux Media Mailing List

This comment mentions a field that doesn't exist, and talks about
videodev.h that got removed. So, it doesn't make any sense to keep
it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

diff --git a/drivers/media/video/omap/omap_vout.c b/drivers/media/video/omap/omap_vout.c
index 15f8793..83de97a 100644
--- a/drivers/media/video/omap/omap_vout.c
+++ b/drivers/media/video/omap/omap_vout.c
@@ -2230,7 +2230,6 @@ static int __init omap_vout_setup_video_data(struct omap_vout_device *vout)
 
 	strlcpy(vfd->name, VOUT_NAME, sizeof(vfd->name));
 
-	/* need to register for a VID_HARDWARE_* ID in videodev.h */
 	vfd->fops = &omap_vout_fops;
 	vfd->v4l2_dev = &vout->vid_dev->v4l2_dev;
 	mutex_init(&vout->lock);
-- 
1.7.3.4


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5/6] [media] Remove the old V4L1 v4lgrab.c file
       [not found] <cover.1293449547.git.mchehab@redhat.com>
  2010-12-27 11:38 ` [PATCH 6/6] [media] omap_vout: Remove an obsolete comment Mauro Carvalho Chehab
@ 2010-12-27 11:38 ` Mauro Carvalho Chehab
  2010-12-27 11:38 ` [PATCH 4/6] [media] Fix videodev.h references at the V4L DocBook Mauro Carvalho Chehab
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2010-12-27 11:38 UTC (permalink / raw)
  Cc: Linux Media Mailing List

This example file uses the old V4L1 API. It also doesn't use libv4l.
So, it is completely obsolete. A good example already exists at
v4l-utils (v4l2grab.c):
	http://git.linuxtv.org/v4l-utils.git

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

 delete mode 100644 Documentation/video4linux/v4lgrab.c

diff --git a/Documentation/video4linux/v4lgrab.c b/Documentation/video4linux/v4lgrab.c
deleted file mode 100644
index c8ded17..0000000
--- a/Documentation/video4linux/v4lgrab.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Simple Video4Linux image grabber. */
-/*
- *	Video4Linux Driver Test/Example Framegrabbing Program
- *
- *	Compile with:
- *		gcc -s -Wall -Wstrict-prototypes v4lgrab.c -o v4lgrab
- *	Use as:
- *		v4lgrab >image.ppm
- *
- *	Copyright (C) 1998-05-03, Phil Blundell <philb@gnu.org>
- *	Copied from http://www.tazenda.demon.co.uk/phil/vgrabber.c
- *	with minor modifications (Dave Forrest, drf5n@virginia.edu).
- *
- *
- *	For some cameras you may need to pre-load libv4l to perform
- *	the necessary decompression, e.g.:
- *
- *	export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
- *	./v4lgrab >image.ppm
- *
- *	see http://hansdegoede.livejournal.com/3636.html for details.
- *
- */
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <sys/ioctl.h>
-#include <stdlib.h>
-
-#include <linux/types.h>
-#include <linux/videodev.h>
-
-#define VIDEO_DEV "/dev/video0"
-
-/* Stole this from tvset.c */
-
-#define READ_VIDEO_PIXEL(buf, format, depth, r, g, b)                   \
-{                                                                       \
-	switch (format)                                                 \
-	{                                                               \
-		case VIDEO_PALETTE_GREY:                                \
-			switch (depth)                                  \
-			{                                               \
-				case 4:                                 \
-				case 6:                                 \
-				case 8:                                 \
-					(r) = (g) = (b) = (*buf++ << 8);\
-					break;                          \
-									\
-				case 16:                                \
-					(r) = (g) = (b) =               \
-						*((unsigned short *) buf);      \
-					buf += 2;                       \
-					break;                          \
-			}                                               \
-			break;                                          \
-									\
-									\
-		case VIDEO_PALETTE_RGB565:                              \
-		{                                                       \
-			unsigned short tmp = *(unsigned short *)buf;    \
-			(r) = tmp&0xF800;                               \
-			(g) = (tmp<<5)&0xFC00;                          \
-			(b) = (tmp<<11)&0xF800;                         \
-			buf += 2;                                       \
-		}                                                       \
-		break;                                                  \
-									\
-		case VIDEO_PALETTE_RGB555:                              \
-			(r) = (buf[0]&0xF8)<<8;                         \
-			(g) = ((buf[0] << 5 | buf[1] >> 3)&0xF8)<<8;    \
-			(b) = ((buf[1] << 2 ) & 0xF8)<<8;               \
-			buf += 2;                                       \
-			break;                                          \
-									\
-		case VIDEO_PALETTE_RGB24:                               \
-			(r) = buf[0] << 8; (g) = buf[1] << 8;           \
-			(b) = buf[2] << 8;                              \
-			buf += 3;                                       \
-			break;                                          \
-									\
-		default:                                                \
-			fprintf(stderr,                                 \
-				"Format %d not yet supported\n",        \
-				format);                                \
-	}                                                               \
-}
-
-static int get_brightness_adj(unsigned char *image, long size, int *brightness) {
-  long i, tot = 0;
-  for (i=0;i<size*3;i++)
-    tot += image[i];
-  *brightness = (128 - tot/(size*3))/3;
-  return !((tot/(size*3)) >= 126 && (tot/(size*3)) <= 130);
-}
-
-int main(int argc, char ** argv)
-{
-  int fd = open(VIDEO_DEV, O_RDONLY), f;
-  struct video_capability cap;
-  struct video_window win;
-  struct video_picture vpic;
-
-  unsigned char *buffer, *src;
-  int bpp = 24, r = 0, g = 0, b = 0;
-  unsigned int i, src_depth = 16;
-
-  if (fd < 0) {
-    perror(VIDEO_DEV);
-    exit(1);
-  }
-
-  if (ioctl(fd, VIDIOCGCAP, &cap) < 0) {
-    perror("VIDIOGCAP");
-    fprintf(stderr, "(" VIDEO_DEV " not a video4linux device?)\n");
-    close(fd);
-    exit(1);
-  }
-
-  if (ioctl(fd, VIDIOCGWIN, &win) < 0) {
-    perror("VIDIOCGWIN");
-    close(fd);
-    exit(1);
-  }
-
-  if (ioctl(fd, VIDIOCGPICT, &vpic) < 0) {
-    perror("VIDIOCGPICT");
-    close(fd);
-    exit(1);
-  }
-
-  if (cap.type & VID_TYPE_MONOCHROME) {
-    vpic.depth=8;
-    vpic.palette=VIDEO_PALETTE_GREY;    /* 8bit grey */
-    if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
-      vpic.depth=6;
-      if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
-	vpic.depth=4;
-	if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
-	  fprintf(stderr, "Unable to find a supported capture format.\n");
-	  close(fd);
-	  exit(1);
-	}
-      }
-    }
-  } else {
-    vpic.depth=24;
-    vpic.palette=VIDEO_PALETTE_RGB24;
-
-    if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
-      vpic.palette=VIDEO_PALETTE_RGB565;
-      vpic.depth=16;
-
-      if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
-	vpic.palette=VIDEO_PALETTE_RGB555;
-	vpic.depth=15;
-
-	if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
-	  fprintf(stderr, "Unable to find a supported capture format.\n");
-	  return -1;
-	}
-      }
-    }
-  }
-
-  buffer = malloc(win.width * win.height * bpp);
-  if (!buffer) {
-    fprintf(stderr, "Out of memory.\n");
-    exit(1);
-  }
-
-  do {
-    int newbright;
-    read(fd, buffer, win.width * win.height * bpp);
-    f = get_brightness_adj(buffer, win.width * win.height, &newbright);
-    if (f) {
-      vpic.brightness += (newbright << 8);
-      if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
-	perror("VIDIOSPICT");
-	break;
-      }
-    }
-  } while (f);
-
-  fprintf(stdout, "P6\n%d %d 255\n", win.width, win.height);
-
-  src = buffer;
-
-  for (i = 0; i < win.width * win.height; i++) {
-    READ_VIDEO_PIXEL(src, vpic.palette, src_depth, r, g, b);
-    fputc(r>>8, stdout);
-    fputc(g>>8, stdout);
-    fputc(b>>8, stdout);
-  }
-
-  close(fd);
-  return 0;
-}
-- 
1.7.3.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 4/6] [media] Fix videodev.h references at the V4L DocBook
       [not found] <cover.1293449547.git.mchehab@redhat.com>
  2010-12-27 11:38 ` [PATCH 6/6] [media] omap_vout: Remove an obsolete comment Mauro Carvalho Chehab
  2010-12-27 11:38 ` [PATCH 5/6] [media] Remove the old V4L1 v4lgrab.c file Mauro Carvalho Chehab
@ 2010-12-27 11:38 ` Mauro Carvalho Chehab
  2010-12-27 11:38 ` [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges Mauro Carvalho Chehab
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2010-12-27 11:38 UTC (permalink / raw)
  Cc: Linux Media Mailing List

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

diff --git a/Documentation/DocBook/v4l/func-ioctl.xml b/Documentation/DocBook/v4l/func-ioctl.xml
index 00f9690..b60fd37 100644
--- a/Documentation/DocBook/v4l/func-ioctl.xml
+++ b/Documentation/DocBook/v4l/func-ioctl.xml
@@ -34,8 +34,7 @@
       <varlistentry>
 	<term><parameter>request</parameter></term>
 	<listitem>
-	  <para>V4L2 ioctl request code as defined in the <link
-linkend="videodev">videodev.h</link> header file, for example
+	  <para>V4L2 ioctl request code as defined in the <filename>videodev2.h</filename> header file, for example
 VIDIOC_QUERYCAP.</para>
 	</listitem>
       </varlistentry>
@@ -57,7 +56,7 @@ file descriptor. An ioctl <parameter>request</parameter> has encoded
 in it whether the argument is an input, output or read/write
 parameter, and the size of the argument <parameter>argp</parameter> in
 bytes. Macros and defines specifying V4L2 ioctl requests are located
-in the <link linkend="videodev">videodev.h</link> header file.
+in the <filename>videodev2.h</filename> header file.
 Applications should use their own copy, not include the version in the
 kernel sources on the system they compile on. All V4L2 ioctl requests,
 their respective function and parameters are specified in <xref
diff --git a/Documentation/DocBook/v4l/pixfmt.xml b/Documentation/DocBook/v4l/pixfmt.xml
index d7c4671..cfffc88 100644
--- a/Documentation/DocBook/v4l/pixfmt.xml
+++ b/Documentation/DocBook/v4l/pixfmt.xml
@@ -142,8 +142,8 @@ leftmost pixel of the second row from the top, and so on. The last row
 has just as many pad bytes after it as the other rows.</para>
 
     <para>In V4L2 each format has an identifier which looks like
-<constant>PIX_FMT_XXX</constant>, defined in the <link
-linkend="videodev">videodev.h</link> header file. These identifiers
+<constant>PIX_FMT_XXX</constant>, defined in the <filename>videodev2.h</filename>
+header file. These identifiers
 represent <link linkend="v4l2-fourcc">four character codes</link>
 which are also listed below, however they are not the same as those
 used in the Windows world.</para>
-- 
1.7.3.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges
       [not found] <cover.1293449547.git.mchehab@redhat.com>
                   ` (2 preceding siblings ...)
  2010-12-27 11:38 ` [PATCH 4/6] [media] Fix videodev.h references at the V4L DocBook Mauro Carvalho Chehab
@ 2010-12-27 11:38 ` Mauro Carvalho Chehab
  2010-12-27 12:01   ` Hans Verkuil
  2010-12-27 11:38 ` [PATCH 2/6] [media] V4L1 removal: Remove linux/videodev.h Mauro Carvalho Chehab
  2010-12-27 11:38 ` [PATCH 1/6] [media] Remove VIDEO_V4L1 Kconfig option Mauro Carvalho Chehab
  5 siblings, 1 reply; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2010-12-27 11:38 UTC (permalink / raw)
  Cc: Linux Media Mailing List

The V4L1 removal patches removed a few ioctls. Update it at the docspace.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
index 63ffd78..49d7f00 100644
--- a/Documentation/ioctl/ioctl-number.txt
+++ b/Documentation/ioctl/ioctl-number.txt
@@ -260,14 +260,11 @@ Code  Seq#(hex)	Include File		Comments
 't'	80-8F	linux/isdn_ppp.h
 't'	90	linux/toshiba.h
 'u'	00-1F	linux/smb_fs.h		gone
-'v'	all	linux/videodev.h	conflict!
 'v'	00-1F	linux/ext2_fs.h		conflict!
 'v'	00-1F	linux/fs.h		conflict!
 'v'	00-0F	linux/sonypi.h		conflict!
-'v'	C0-CF	drivers/media/video/ov511.h	conflict!
 'v'	C0-DF	media/pwc-ioctl.h	conflict!
 'v'	C0-FF	linux/meye.h		conflict!
-'v'	C0-CF	drivers/media/video/zoran/zoran.h	conflict!
 'v'	D0-DF	drivers/media/video/cpia2/cpia2dev.h	conflict!
 'w'	all				CERN SCI driver
 'y'	00-1F				packet based user level communications
-- 
1.7.3.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/6] [media] V4L1 removal: Remove linux/videodev.h
       [not found] <cover.1293449547.git.mchehab@redhat.com>
                   ` (3 preceding siblings ...)
  2010-12-27 11:38 ` [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges Mauro Carvalho Chehab
@ 2010-12-27 11:38 ` Mauro Carvalho Chehab
  2010-12-27 11:38 ` [PATCH 1/6] [media] Remove VIDEO_V4L1 Kconfig option Mauro Carvalho Chehab
  5 siblings, 0 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2010-12-27 11:38 UTC (permalink / raw)
  Cc: Linux Media Mailing List

There's no sense on keeping it on 2.6.38, as nobody is using it
anymore, at the kernel tree, and installing it at the userspace
API.

As two deprecated drivers still need it, move it to their internal
directories.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

 create mode 100644 drivers/staging/se401/videodev.h
 create mode 100644 drivers/staging/usbvideo/videodev.h
 delete mode 100644 include/linux/videodev.h
 delete mode 100644 include/media/ovcamchip.h

diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index d66ed2b..e348b7e 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -97,23 +97,6 @@ Who:	Pavel Machek <pavel@ucw.cz>
 
 ---------------------------
 
-What:	Video4Linux API 1 ioctls and from Video devices.
-When:	kernel 2.6.39
-Files:	include/linux/videodev.h
-Check:	include/linux/videodev.h
-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
-	already available on the main drivers and should be used instead.
-
-	The userspace libv4l1 library can convert V4L1 calls to V4L2. This
-	replaces the kernel V4L1 compatibility module which was removed in
-	2.6.38. The last V4L1 drivers will either be converted to V4L2 or
-	removed for 2.6.39 at which point the V4L1 API will cease to exist.
-Who:	Mauro Carvalho Chehab <mchehab@infradead.org>
-
----------------------------
-
 What:	Video4Linux obsolete drivers using V4L1 API
 When:	kernel 2.6.39
 Files:	drivers/staging/se401/* drivers/staging/usbvideo/*
diff --git a/drivers/media/video/v4l2-compat-ioctl32.c b/drivers/media/video/v4l2-compat-ioctl32.c
index 8ac89ad..38c4b3c 100644
--- a/drivers/media/video/v4l2-compat-ioctl32.c
+++ b/drivers/media/video/v4l2-compat-ioctl32.c
@@ -15,7 +15,6 @@
 
 #include <linux/compat.h>
 #define __OLD_VIDIOC_ /* To allow fixing old calls*/
-#include <linux/videodev.h>
 #include <linux/videodev2.h>
 #include <linux/module.h>
 #include <linux/smp_lock.h>
diff --git a/drivers/staging/se401/se401.h b/drivers/staging/se401/se401.h
index bf7d2e9..2758f47 100644
--- a/drivers/staging/se401/se401.h
+++ b/drivers/staging/se401/se401.h
@@ -3,7 +3,7 @@
 #define __LINUX_se401_H
 
 #include <linux/uaccess.h>
-#include <linux/videodev.h>
+#include "videodev.h"
 #include <media/v4l2-common.h>
 #include <media/v4l2-ioctl.h>
 #include <linux/mutex.h>
diff --git a/drivers/staging/se401/videodev.h b/drivers/staging/se401/videodev.h
new file mode 100644
index 0000000..f11efbe
--- /dev/null
+++ b/drivers/staging/se401/videodev.h
@@ -0,0 +1,318 @@
+/*
+ *	Video for Linux version 1 - OBSOLETE
+ *
+ *	Header file for v4l1 drivers and applications, for
+ *	Linux kernels 2.2.x or 2.4.x.
+ *
+ *	Provides header for legacy drivers and applications
+ *
+ *	See http://linuxtv.org for more info
+ *
+ */
+#ifndef __LINUX_VIDEODEV_H
+#define __LINUX_VIDEODEV_H
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+#include <linux/videodev2.h>
+
+#define VID_TYPE_CAPTURE	1	/* Can capture */
+#define VID_TYPE_TUNER		2	/* Can tune */
+#define VID_TYPE_TELETEXT	4	/* Does teletext */
+#define VID_TYPE_OVERLAY	8	/* Overlay onto frame buffer */
+#define VID_TYPE_CHROMAKEY	16	/* Overlay by chromakey */
+#define VID_TYPE_CLIPPING	32	/* Can clip */
+#define VID_TYPE_FRAMERAM	64	/* Uses the frame buffer memory */
+#define VID_TYPE_SCALES		128	/* Scalable */
+#define VID_TYPE_MONOCHROME	256	/* Monochrome only */
+#define VID_TYPE_SUBCAPTURE	512	/* Can capture subareas of the image */
+#define VID_TYPE_MPEG_DECODER	1024	/* Can decode MPEG streams */
+#define VID_TYPE_MPEG_ENCODER	2048	/* Can encode MPEG streams */
+#define VID_TYPE_MJPEG_DECODER	4096	/* Can decode MJPEG streams */
+#define VID_TYPE_MJPEG_ENCODER	8192	/* Can encode MJPEG streams */
+
+struct video_capability
+{
+	char name[32];
+	int type;
+	int channels;	/* Num channels */
+	int audios;	/* Num audio devices */
+	int maxwidth;	/* Supported width */
+	int maxheight;	/* And height */
+	int minwidth;	/* Supported width */
+	int minheight;	/* And height */
+};
+
+
+struct video_channel
+{
+	int channel;
+	char name[32];
+	int tuners;
+	__u32  flags;
+#define VIDEO_VC_TUNER		1	/* Channel has a tuner */
+#define VIDEO_VC_AUDIO		2	/* Channel has audio */
+	__u16  type;
+#define VIDEO_TYPE_TV		1
+#define VIDEO_TYPE_CAMERA	2
+	__u16 norm;			/* Norm set by channel */
+};
+
+struct video_tuner
+{
+	int tuner;
+	char name[32];
+	unsigned long rangelow, rangehigh;	/* Tuner range */
+	__u32 flags;
+#define VIDEO_TUNER_PAL		1
+#define VIDEO_TUNER_NTSC	2
+#define VIDEO_TUNER_SECAM	4
+#define VIDEO_TUNER_LOW		8	/* Uses KHz not MHz */
+#define VIDEO_TUNER_NORM	16	/* Tuner can set norm */
+#define VIDEO_TUNER_STEREO_ON	128	/* Tuner is seeing stereo */
+#define VIDEO_TUNER_RDS_ON      256     /* Tuner is seeing an RDS datastream */
+#define VIDEO_TUNER_MBS_ON      512     /* Tuner is seeing an MBS datastream */
+	__u16 mode;			/* PAL/NTSC/SECAM/OTHER */
+#define VIDEO_MODE_PAL		0
+#define VIDEO_MODE_NTSC		1
+#define VIDEO_MODE_SECAM	2
+#define VIDEO_MODE_AUTO		3
+	__u16 signal;			/* Signal strength 16bit scale */
+};
+
+struct video_picture
+{
+	__u16	brightness;
+	__u16	hue;
+	__u16	colour;
+	__u16	contrast;
+	__u16	whiteness;	/* Black and white only */
+	__u16	depth;		/* Capture depth */
+	__u16   palette;	/* Palette in use */
+#define VIDEO_PALETTE_GREY	1	/* Linear greyscale */
+#define VIDEO_PALETTE_HI240	2	/* High 240 cube (BT848) */
+#define VIDEO_PALETTE_RGB565	3	/* 565 16 bit RGB */
+#define VIDEO_PALETTE_RGB24	4	/* 24bit RGB */
+#define VIDEO_PALETTE_RGB32	5	/* 32bit RGB */
+#define VIDEO_PALETTE_RGB555	6	/* 555 15bit RGB */
+#define VIDEO_PALETTE_YUV422	7	/* YUV422 capture */
+#define VIDEO_PALETTE_YUYV	8
+#define VIDEO_PALETTE_UYVY	9	/* The great thing about standards is ... */
+#define VIDEO_PALETTE_YUV420	10
+#define VIDEO_PALETTE_YUV411	11	/* YUV411 capture */
+#define VIDEO_PALETTE_RAW	12	/* RAW capture (BT848) */
+#define VIDEO_PALETTE_YUV422P	13	/* YUV 4:2:2 Planar */
+#define VIDEO_PALETTE_YUV411P	14	/* YUV 4:1:1 Planar */
+#define VIDEO_PALETTE_YUV420P	15	/* YUV 4:2:0 Planar */
+#define VIDEO_PALETTE_YUV410P	16	/* YUV 4:1:0 Planar */
+#define VIDEO_PALETTE_PLANAR	13	/* start of planar entries */
+#define VIDEO_PALETTE_COMPONENT 7	/* start of component entries */
+};
+
+struct video_audio
+{
+	int	audio;		/* Audio channel */
+	__u16	volume;		/* If settable */
+	__u16	bass, treble;
+	__u32	flags;
+#define VIDEO_AUDIO_MUTE	1
+#define VIDEO_AUDIO_MUTABLE	2
+#define VIDEO_AUDIO_VOLUME	4
+#define VIDEO_AUDIO_BASS	8
+#define VIDEO_AUDIO_TREBLE	16
+#define VIDEO_AUDIO_BALANCE	32
+	char    name[16];
+#define VIDEO_SOUND_MONO	1
+#define VIDEO_SOUND_STEREO	2
+#define VIDEO_SOUND_LANG1	4
+#define VIDEO_SOUND_LANG2	8
+	__u16   mode;
+	__u16	balance;	/* Stereo balance */
+	__u16	step;		/* Step actual volume uses */
+};
+
+struct video_clip
+{
+	__s32	x,y;
+	__s32	width, height;
+	struct	video_clip *next;	/* For user use/driver use only */
+};
+
+struct video_window
+{
+	__u32	x,y;			/* Position of window */
+	__u32	width,height;		/* Its size */
+	__u32	chromakey;
+	__u32	flags;
+	struct	video_clip __user *clips;	/* Set only */
+	int	clipcount;
+#define VIDEO_WINDOW_INTERLACE	1
+#define VIDEO_WINDOW_CHROMAKEY	16	/* Overlay by chromakey */
+#define VIDEO_CLIP_BITMAP	-1
+/* bitmap is 1024x625, a '1' bit represents a clipped pixel */
+#define VIDEO_CLIPMAP_SIZE	(128 * 625)
+};
+
+struct video_capture
+{
+	__u32 	x,y;			/* Offsets into image */
+	__u32	width, height;		/* Area to capture */
+	__u16	decimation;		/* Decimation divider */
+	__u16	flags;			/* Flags for capture */
+#define VIDEO_CAPTURE_ODD		0	/* Temporal */
+#define VIDEO_CAPTURE_EVEN		1
+};
+
+struct video_buffer
+{
+	void	*base;
+	int	height,width;
+	int	depth;
+	int	bytesperline;
+};
+
+struct video_mmap
+{
+	unsigned	int frame;		/* Frame (0 - n) for double buffer */
+	int		height,width;
+	unsigned	int format;		/* should be VIDEO_PALETTE_* */
+};
+
+struct video_key
+{
+	__u8	key[8];
+	__u32	flags;
+};
+
+struct video_mbuf
+{
+	int	size;		/* Total memory to map */
+	int	frames;		/* Frames */
+	int	offsets[VIDEO_MAX_FRAME];
+};
+
+#define 	VIDEO_NO_UNIT	(-1)
+
+struct video_unit
+{
+	int 	video;		/* Video minor */
+	int	vbi;		/* VBI minor */
+	int	radio;		/* Radio minor */
+	int	audio;		/* Audio minor */
+	int	teletext;	/* Teletext minor */
+};
+
+struct vbi_format {
+	__u32	sampling_rate;	/* in Hz */
+	__u32	samples_per_line;
+	__u32	sample_format;	/* VIDEO_PALETTE_RAW only (1 byte) */
+	__s32	start[2];	/* starting line for each frame */
+	__u32	count[2];	/* count of lines for each frame */
+	__u32	flags;
+#define	VBI_UNSYNC	1	/* can distingues between top/bottom field */
+#define	VBI_INTERLACED	2	/* lines are interlaced */
+};
+
+/* video_info is biased towards hardware mpeg encode/decode */
+/* but it could apply generically to any hardware compressor/decompressor */
+struct video_info
+{
+	__u32	frame_count;	/* frames output since decode/encode began */
+	__u32	h_size;		/* current unscaled horizontal size */
+	__u32	v_size;		/* current unscaled veritcal size */
+	__u32	smpte_timecode;	/* current SMPTE timecode (for current GOP) */
+	__u32	picture_type;	/* current picture type */
+	__u32	temporal_reference;	/* current temporal reference */
+	__u8	user_data[256];	/* user data last found in compressed stream */
+	/* user_data[0] contains user data flags, user_data[1] has count */
+};
+
+/* generic structure for setting playback modes */
+struct video_play_mode
+{
+	int	mode;
+	int	p1;
+	int	p2;
+};
+
+/* for loading microcode / fpga programming */
+struct video_code
+{
+	char	loadwhat[16];	/* name or tag of file being passed */
+	int	datasize;
+	__u8	*data;
+};
+
+#define VIDIOCGCAP		_IOR('v',1,struct video_capability)	/* Get capabilities */
+#define VIDIOCGCHAN		_IOWR('v',2,struct video_channel)	/* Get channel info (sources) */
+#define VIDIOCSCHAN		_IOW('v',3,struct video_channel)	/* Set channel 	*/
+#define VIDIOCGTUNER		_IOWR('v',4,struct video_tuner)		/* Get tuner abilities */
+#define VIDIOCSTUNER		_IOW('v',5,struct video_tuner)		/* Tune the tuner for the current channel */
+#define VIDIOCGPICT		_IOR('v',6,struct video_picture)	/* Get picture properties */
+#define VIDIOCSPICT		_IOW('v',7,struct video_picture)	/* Set picture properties */
+#define VIDIOCCAPTURE		_IOW('v',8,int)				/* Start, end capture */
+#define VIDIOCGWIN		_IOR('v',9, struct video_window)	/* Get the video overlay window */
+#define VIDIOCSWIN		_IOW('v',10, struct video_window)	/* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */
+#define VIDIOCGFBUF		_IOR('v',11, struct video_buffer)	/* Get frame buffer */
+#define VIDIOCSFBUF		_IOW('v',12, struct video_buffer)	/* Set frame buffer - root only */
+#define VIDIOCKEY		_IOR('v',13, struct video_key)		/* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */
+#define VIDIOCGFREQ		_IOR('v',14, unsigned long)		/* Set tuner */
+#define VIDIOCSFREQ		_IOW('v',15, unsigned long)		/* Set tuner */
+#define VIDIOCGAUDIO		_IOR('v',16, struct video_audio)	/* Get audio info */
+#define VIDIOCSAUDIO		_IOW('v',17, struct video_audio)	/* Audio source, mute etc */
+#define VIDIOCSYNC		_IOW('v',18, int)			/* Sync with mmap grabbing */
+#define VIDIOCMCAPTURE		_IOW('v',19, struct video_mmap)		/* Grab frames */
+#define VIDIOCGMBUF		_IOR('v',20, struct video_mbuf)		/* Memory map buffer info */
+#define VIDIOCGUNIT		_IOR('v',21, struct video_unit)		/* Get attached units */
+#define VIDIOCGCAPTURE		_IOR('v',22, struct video_capture)	/* Get subcapture */
+#define VIDIOCSCAPTURE		_IOW('v',23, struct video_capture)	/* Set subcapture */
+#define VIDIOCSPLAYMODE		_IOW('v',24, struct video_play_mode)	/* Set output video mode/feature */
+#define VIDIOCSWRITEMODE	_IOW('v',25, int)			/* Set write mode */
+#define VIDIOCGPLAYINFO		_IOR('v',26, struct video_info)		/* Get current playback info from hardware */
+#define VIDIOCSMICROCODE	_IOW('v',27, struct video_code)		/* Load microcode into hardware */
+#define	VIDIOCGVBIFMT		_IOR('v',28, struct vbi_format)		/* Get VBI information */
+#define	VIDIOCSVBIFMT		_IOW('v',29, struct vbi_format)		/* Set VBI information */
+
+
+#define BASE_VIDIOCPRIVATE	192		/* 192-255 are private */
+
+/* VIDIOCSWRITEMODE */
+#define VID_WRITE_MPEG_AUD		0
+#define VID_WRITE_MPEG_VID		1
+#define VID_WRITE_OSD			2
+#define VID_WRITE_TTX			3
+#define VID_WRITE_CC			4
+#define VID_WRITE_MJPEG			5
+
+/* VIDIOCSPLAYMODE */
+#define VID_PLAY_VID_OUT_MODE		0
+	/* p1: = VIDEO_MODE_PAL, VIDEO_MODE_NTSC, etc ... */
+#define VID_PLAY_GENLOCK		1
+	/* p1: 0 = OFF, 1 = ON */
+	/* p2: GENLOCK FINE DELAY value */
+#define VID_PLAY_NORMAL			2
+#define VID_PLAY_PAUSE			3
+#define VID_PLAY_SINGLE_FRAME		4
+#define VID_PLAY_FAST_FORWARD		5
+#define VID_PLAY_SLOW_MOTION		6
+#define VID_PLAY_IMMEDIATE_NORMAL	7
+#define VID_PLAY_SWITCH_CHANNELS	8
+#define VID_PLAY_FREEZE_FRAME		9
+#define VID_PLAY_STILL_MODE		10
+#define VID_PLAY_MASTER_MODE		11
+	/* p1: see below */
+#define		VID_PLAY_MASTER_NONE	1
+#define		VID_PLAY_MASTER_VIDEO	2
+#define		VID_PLAY_MASTER_AUDIO	3
+#define VID_PLAY_ACTIVE_SCANLINES	12
+	/* p1 = first active; p2 = last active */
+#define VID_PLAY_RESET			13
+#define VID_PLAY_END_MARK		14
+
+#endif /* __LINUX_VIDEODEV_H */
+
+/*
+ * Local variables:
+ * c-basic-offset: 8
+ * End:
+ */
diff --git a/drivers/staging/usbvideo/usbvideo.h b/drivers/staging/usbvideo/usbvideo.h
index c66985b..95638a0 100644
--- a/drivers/staging/usbvideo/usbvideo.h
+++ b/drivers/staging/usbvideo/usbvideo.h
@@ -16,7 +16,7 @@
 #ifndef usbvideo_h
 #define	usbvideo_h
 
-#include <linux/videodev.h>
+#include "videodev.h"
 #include <media/v4l2-common.h>
 #include <media/v4l2-ioctl.h>
 #include <linux/usb.h>
diff --git a/drivers/staging/usbvideo/vicam.c b/drivers/staging/usbvideo/vicam.c
index dc17cce..ecdb121 100644
--- a/drivers/staging/usbvideo/vicam.c
+++ b/drivers/staging/usbvideo/vicam.c
@@ -38,7 +38,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
-#include <linux/videodev.h>
+#include "videodev.h"
 #include <linux/usb.h>
 #include <linux/vmalloc.h>
 #include <linux/mm.h>
diff --git a/drivers/staging/usbvideo/videodev.h b/drivers/staging/usbvideo/videodev.h
new file mode 100644
index 0000000..f11efbe
--- /dev/null
+++ b/drivers/staging/usbvideo/videodev.h
@@ -0,0 +1,318 @@
+/*
+ *	Video for Linux version 1 - OBSOLETE
+ *
+ *	Header file for v4l1 drivers and applications, for
+ *	Linux kernels 2.2.x or 2.4.x.
+ *
+ *	Provides header for legacy drivers and applications
+ *
+ *	See http://linuxtv.org for more info
+ *
+ */
+#ifndef __LINUX_VIDEODEV_H
+#define __LINUX_VIDEODEV_H
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+#include <linux/videodev2.h>
+
+#define VID_TYPE_CAPTURE	1	/* Can capture */
+#define VID_TYPE_TUNER		2	/* Can tune */
+#define VID_TYPE_TELETEXT	4	/* Does teletext */
+#define VID_TYPE_OVERLAY	8	/* Overlay onto frame buffer */
+#define VID_TYPE_CHROMAKEY	16	/* Overlay by chromakey */
+#define VID_TYPE_CLIPPING	32	/* Can clip */
+#define VID_TYPE_FRAMERAM	64	/* Uses the frame buffer memory */
+#define VID_TYPE_SCALES		128	/* Scalable */
+#define VID_TYPE_MONOCHROME	256	/* Monochrome only */
+#define VID_TYPE_SUBCAPTURE	512	/* Can capture subareas of the image */
+#define VID_TYPE_MPEG_DECODER	1024	/* Can decode MPEG streams */
+#define VID_TYPE_MPEG_ENCODER	2048	/* Can encode MPEG streams */
+#define VID_TYPE_MJPEG_DECODER	4096	/* Can decode MJPEG streams */
+#define VID_TYPE_MJPEG_ENCODER	8192	/* Can encode MJPEG streams */
+
+struct video_capability
+{
+	char name[32];
+	int type;
+	int channels;	/* Num channels */
+	int audios;	/* Num audio devices */
+	int maxwidth;	/* Supported width */
+	int maxheight;	/* And height */
+	int minwidth;	/* Supported width */
+	int minheight;	/* And height */
+};
+
+
+struct video_channel
+{
+	int channel;
+	char name[32];
+	int tuners;
+	__u32  flags;
+#define VIDEO_VC_TUNER		1	/* Channel has a tuner */
+#define VIDEO_VC_AUDIO		2	/* Channel has audio */
+	__u16  type;
+#define VIDEO_TYPE_TV		1
+#define VIDEO_TYPE_CAMERA	2
+	__u16 norm;			/* Norm set by channel */
+};
+
+struct video_tuner
+{
+	int tuner;
+	char name[32];
+	unsigned long rangelow, rangehigh;	/* Tuner range */
+	__u32 flags;
+#define VIDEO_TUNER_PAL		1
+#define VIDEO_TUNER_NTSC	2
+#define VIDEO_TUNER_SECAM	4
+#define VIDEO_TUNER_LOW		8	/* Uses KHz not MHz */
+#define VIDEO_TUNER_NORM	16	/* Tuner can set norm */
+#define VIDEO_TUNER_STEREO_ON	128	/* Tuner is seeing stereo */
+#define VIDEO_TUNER_RDS_ON      256     /* Tuner is seeing an RDS datastream */
+#define VIDEO_TUNER_MBS_ON      512     /* Tuner is seeing an MBS datastream */
+	__u16 mode;			/* PAL/NTSC/SECAM/OTHER */
+#define VIDEO_MODE_PAL		0
+#define VIDEO_MODE_NTSC		1
+#define VIDEO_MODE_SECAM	2
+#define VIDEO_MODE_AUTO		3
+	__u16 signal;			/* Signal strength 16bit scale */
+};
+
+struct video_picture
+{
+	__u16	brightness;
+	__u16	hue;
+	__u16	colour;
+	__u16	contrast;
+	__u16	whiteness;	/* Black and white only */
+	__u16	depth;		/* Capture depth */
+	__u16   palette;	/* Palette in use */
+#define VIDEO_PALETTE_GREY	1	/* Linear greyscale */
+#define VIDEO_PALETTE_HI240	2	/* High 240 cube (BT848) */
+#define VIDEO_PALETTE_RGB565	3	/* 565 16 bit RGB */
+#define VIDEO_PALETTE_RGB24	4	/* 24bit RGB */
+#define VIDEO_PALETTE_RGB32	5	/* 32bit RGB */
+#define VIDEO_PALETTE_RGB555	6	/* 555 15bit RGB */
+#define VIDEO_PALETTE_YUV422	7	/* YUV422 capture */
+#define VIDEO_PALETTE_YUYV	8
+#define VIDEO_PALETTE_UYVY	9	/* The great thing about standards is ... */
+#define VIDEO_PALETTE_YUV420	10
+#define VIDEO_PALETTE_YUV411	11	/* YUV411 capture */
+#define VIDEO_PALETTE_RAW	12	/* RAW capture (BT848) */
+#define VIDEO_PALETTE_YUV422P	13	/* YUV 4:2:2 Planar */
+#define VIDEO_PALETTE_YUV411P	14	/* YUV 4:1:1 Planar */
+#define VIDEO_PALETTE_YUV420P	15	/* YUV 4:2:0 Planar */
+#define VIDEO_PALETTE_YUV410P	16	/* YUV 4:1:0 Planar */
+#define VIDEO_PALETTE_PLANAR	13	/* start of planar entries */
+#define VIDEO_PALETTE_COMPONENT 7	/* start of component entries */
+};
+
+struct video_audio
+{
+	int	audio;		/* Audio channel */
+	__u16	volume;		/* If settable */
+	__u16	bass, treble;
+	__u32	flags;
+#define VIDEO_AUDIO_MUTE	1
+#define VIDEO_AUDIO_MUTABLE	2
+#define VIDEO_AUDIO_VOLUME	4
+#define VIDEO_AUDIO_BASS	8
+#define VIDEO_AUDIO_TREBLE	16
+#define VIDEO_AUDIO_BALANCE	32
+	char    name[16];
+#define VIDEO_SOUND_MONO	1
+#define VIDEO_SOUND_STEREO	2
+#define VIDEO_SOUND_LANG1	4
+#define VIDEO_SOUND_LANG2	8
+	__u16   mode;
+	__u16	balance;	/* Stereo balance */
+	__u16	step;		/* Step actual volume uses */
+};
+
+struct video_clip
+{
+	__s32	x,y;
+	__s32	width, height;
+	struct	video_clip *next;	/* For user use/driver use only */
+};
+
+struct video_window
+{
+	__u32	x,y;			/* Position of window */
+	__u32	width,height;		/* Its size */
+	__u32	chromakey;
+	__u32	flags;
+	struct	video_clip __user *clips;	/* Set only */
+	int	clipcount;
+#define VIDEO_WINDOW_INTERLACE	1
+#define VIDEO_WINDOW_CHROMAKEY	16	/* Overlay by chromakey */
+#define VIDEO_CLIP_BITMAP	-1
+/* bitmap is 1024x625, a '1' bit represents a clipped pixel */
+#define VIDEO_CLIPMAP_SIZE	(128 * 625)
+};
+
+struct video_capture
+{
+	__u32 	x,y;			/* Offsets into image */
+	__u32	width, height;		/* Area to capture */
+	__u16	decimation;		/* Decimation divider */
+	__u16	flags;			/* Flags for capture */
+#define VIDEO_CAPTURE_ODD		0	/* Temporal */
+#define VIDEO_CAPTURE_EVEN		1
+};
+
+struct video_buffer
+{
+	void	*base;
+	int	height,width;
+	int	depth;
+	int	bytesperline;
+};
+
+struct video_mmap
+{
+	unsigned	int frame;		/* Frame (0 - n) for double buffer */
+	int		height,width;
+	unsigned	int format;		/* should be VIDEO_PALETTE_* */
+};
+
+struct video_key
+{
+	__u8	key[8];
+	__u32	flags;
+};
+
+struct video_mbuf
+{
+	int	size;		/* Total memory to map */
+	int	frames;		/* Frames */
+	int	offsets[VIDEO_MAX_FRAME];
+};
+
+#define 	VIDEO_NO_UNIT	(-1)
+
+struct video_unit
+{
+	int 	video;		/* Video minor */
+	int	vbi;		/* VBI minor */
+	int	radio;		/* Radio minor */
+	int	audio;		/* Audio minor */
+	int	teletext;	/* Teletext minor */
+};
+
+struct vbi_format {
+	__u32	sampling_rate;	/* in Hz */
+	__u32	samples_per_line;
+	__u32	sample_format;	/* VIDEO_PALETTE_RAW only (1 byte) */
+	__s32	start[2];	/* starting line for each frame */
+	__u32	count[2];	/* count of lines for each frame */
+	__u32	flags;
+#define	VBI_UNSYNC	1	/* can distingues between top/bottom field */
+#define	VBI_INTERLACED	2	/* lines are interlaced */
+};
+
+/* video_info is biased towards hardware mpeg encode/decode */
+/* but it could apply generically to any hardware compressor/decompressor */
+struct video_info
+{
+	__u32	frame_count;	/* frames output since decode/encode began */
+	__u32	h_size;		/* current unscaled horizontal size */
+	__u32	v_size;		/* current unscaled veritcal size */
+	__u32	smpte_timecode;	/* current SMPTE timecode (for current GOP) */
+	__u32	picture_type;	/* current picture type */
+	__u32	temporal_reference;	/* current temporal reference */
+	__u8	user_data[256];	/* user data last found in compressed stream */
+	/* user_data[0] contains user data flags, user_data[1] has count */
+};
+
+/* generic structure for setting playback modes */
+struct video_play_mode
+{
+	int	mode;
+	int	p1;
+	int	p2;
+};
+
+/* for loading microcode / fpga programming */
+struct video_code
+{
+	char	loadwhat[16];	/* name or tag of file being passed */
+	int	datasize;
+	__u8	*data;
+};
+
+#define VIDIOCGCAP		_IOR('v',1,struct video_capability)	/* Get capabilities */
+#define VIDIOCGCHAN		_IOWR('v',2,struct video_channel)	/* Get channel info (sources) */
+#define VIDIOCSCHAN		_IOW('v',3,struct video_channel)	/* Set channel 	*/
+#define VIDIOCGTUNER		_IOWR('v',4,struct video_tuner)		/* Get tuner abilities */
+#define VIDIOCSTUNER		_IOW('v',5,struct video_tuner)		/* Tune the tuner for the current channel */
+#define VIDIOCGPICT		_IOR('v',6,struct video_picture)	/* Get picture properties */
+#define VIDIOCSPICT		_IOW('v',7,struct video_picture)	/* Set picture properties */
+#define VIDIOCCAPTURE		_IOW('v',8,int)				/* Start, end capture */
+#define VIDIOCGWIN		_IOR('v',9, struct video_window)	/* Get the video overlay window */
+#define VIDIOCSWIN		_IOW('v',10, struct video_window)	/* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */
+#define VIDIOCGFBUF		_IOR('v',11, struct video_buffer)	/* Get frame buffer */
+#define VIDIOCSFBUF		_IOW('v',12, struct video_buffer)	/* Set frame buffer - root only */
+#define VIDIOCKEY		_IOR('v',13, struct video_key)		/* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */
+#define VIDIOCGFREQ		_IOR('v',14, unsigned long)		/* Set tuner */
+#define VIDIOCSFREQ		_IOW('v',15, unsigned long)		/* Set tuner */
+#define VIDIOCGAUDIO		_IOR('v',16, struct video_audio)	/* Get audio info */
+#define VIDIOCSAUDIO		_IOW('v',17, struct video_audio)	/* Audio source, mute etc */
+#define VIDIOCSYNC		_IOW('v',18, int)			/* Sync with mmap grabbing */
+#define VIDIOCMCAPTURE		_IOW('v',19, struct video_mmap)		/* Grab frames */
+#define VIDIOCGMBUF		_IOR('v',20, struct video_mbuf)		/* Memory map buffer info */
+#define VIDIOCGUNIT		_IOR('v',21, struct video_unit)		/* Get attached units */
+#define VIDIOCGCAPTURE		_IOR('v',22, struct video_capture)	/* Get subcapture */
+#define VIDIOCSCAPTURE		_IOW('v',23, struct video_capture)	/* Set subcapture */
+#define VIDIOCSPLAYMODE		_IOW('v',24, struct video_play_mode)	/* Set output video mode/feature */
+#define VIDIOCSWRITEMODE	_IOW('v',25, int)			/* Set write mode */
+#define VIDIOCGPLAYINFO		_IOR('v',26, struct video_info)		/* Get current playback info from hardware */
+#define VIDIOCSMICROCODE	_IOW('v',27, struct video_code)		/* Load microcode into hardware */
+#define	VIDIOCGVBIFMT		_IOR('v',28, struct vbi_format)		/* Get VBI information */
+#define	VIDIOCSVBIFMT		_IOW('v',29, struct vbi_format)		/* Set VBI information */
+
+
+#define BASE_VIDIOCPRIVATE	192		/* 192-255 are private */
+
+/* VIDIOCSWRITEMODE */
+#define VID_WRITE_MPEG_AUD		0
+#define VID_WRITE_MPEG_VID		1
+#define VID_WRITE_OSD			2
+#define VID_WRITE_TTX			3
+#define VID_WRITE_CC			4
+#define VID_WRITE_MJPEG			5
+
+/* VIDIOCSPLAYMODE */
+#define VID_PLAY_VID_OUT_MODE		0
+	/* p1: = VIDEO_MODE_PAL, VIDEO_MODE_NTSC, etc ... */
+#define VID_PLAY_GENLOCK		1
+	/* p1: 0 = OFF, 1 = ON */
+	/* p2: GENLOCK FINE DELAY value */
+#define VID_PLAY_NORMAL			2
+#define VID_PLAY_PAUSE			3
+#define VID_PLAY_SINGLE_FRAME		4
+#define VID_PLAY_FAST_FORWARD		5
+#define VID_PLAY_SLOW_MOTION		6
+#define VID_PLAY_IMMEDIATE_NORMAL	7
+#define VID_PLAY_SWITCH_CHANNELS	8
+#define VID_PLAY_FREEZE_FRAME		9
+#define VID_PLAY_STILL_MODE		10
+#define VID_PLAY_MASTER_MODE		11
+	/* p1: see below */
+#define		VID_PLAY_MASTER_NONE	1
+#define		VID_PLAY_MASTER_VIDEO	2
+#define		VID_PLAY_MASTER_AUDIO	3
+#define VID_PLAY_ACTIVE_SCANLINES	12
+	/* p1 = first active; p2 = last active */
+#define VID_PLAY_RESET			13
+#define VID_PLAY_END_MARK		14
+
+#endif /* __LINUX_VIDEODEV_H */
+
+/*
+ * Local variables:
+ * c-basic-offset: 8
+ * End:
+ */
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index 410ed18..3af13c2 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -43,7 +43,7 @@
 #include <linux/tty.h>
 #include <linux/vt_kern.h>
 #include <linux/fb.h>
-#include <linux/videodev.h>
+#include <linux/videodev2.h>
 #include <linux/netdevice.h>
 #include <linux/raw.h>
 #include <linux/blkdev.h>
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 97319a8..a354c19 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -367,7 +367,6 @@ header-y += utime.h
 header-y += utsname.h
 header-y += veth.h
 header-y += vhost.h
-header-y += videodev.h
 header-y += videodev2.h
 header-y += virtio_9p.h
 header-y += virtio_balloon.h
diff --git a/include/linux/videodev.h b/include/linux/videodev.h
deleted file mode 100644
index f11efbe..0000000
--- a/include/linux/videodev.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- *	Video for Linux version 1 - OBSOLETE
- *
- *	Header file for v4l1 drivers and applications, for
- *	Linux kernels 2.2.x or 2.4.x.
- *
- *	Provides header for legacy drivers and applications
- *
- *	See http://linuxtv.org for more info
- *
- */
-#ifndef __LINUX_VIDEODEV_H
-#define __LINUX_VIDEODEV_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#include <linux/videodev2.h>
-
-#define VID_TYPE_CAPTURE	1	/* Can capture */
-#define VID_TYPE_TUNER		2	/* Can tune */
-#define VID_TYPE_TELETEXT	4	/* Does teletext */
-#define VID_TYPE_OVERLAY	8	/* Overlay onto frame buffer */
-#define VID_TYPE_CHROMAKEY	16	/* Overlay by chromakey */
-#define VID_TYPE_CLIPPING	32	/* Can clip */
-#define VID_TYPE_FRAMERAM	64	/* Uses the frame buffer memory */
-#define VID_TYPE_SCALES		128	/* Scalable */
-#define VID_TYPE_MONOCHROME	256	/* Monochrome only */
-#define VID_TYPE_SUBCAPTURE	512	/* Can capture subareas of the image */
-#define VID_TYPE_MPEG_DECODER	1024	/* Can decode MPEG streams */
-#define VID_TYPE_MPEG_ENCODER	2048	/* Can encode MPEG streams */
-#define VID_TYPE_MJPEG_DECODER	4096	/* Can decode MJPEG streams */
-#define VID_TYPE_MJPEG_ENCODER	8192	/* Can encode MJPEG streams */
-
-struct video_capability
-{
-	char name[32];
-	int type;
-	int channels;	/* Num channels */
-	int audios;	/* Num audio devices */
-	int maxwidth;	/* Supported width */
-	int maxheight;	/* And height */
-	int minwidth;	/* Supported width */
-	int minheight;	/* And height */
-};
-
-
-struct video_channel
-{
-	int channel;
-	char name[32];
-	int tuners;
-	__u32  flags;
-#define VIDEO_VC_TUNER		1	/* Channel has a tuner */
-#define VIDEO_VC_AUDIO		2	/* Channel has audio */
-	__u16  type;
-#define VIDEO_TYPE_TV		1
-#define VIDEO_TYPE_CAMERA	2
-	__u16 norm;			/* Norm set by channel */
-};
-
-struct video_tuner
-{
-	int tuner;
-	char name[32];
-	unsigned long rangelow, rangehigh;	/* Tuner range */
-	__u32 flags;
-#define VIDEO_TUNER_PAL		1
-#define VIDEO_TUNER_NTSC	2
-#define VIDEO_TUNER_SECAM	4
-#define VIDEO_TUNER_LOW		8	/* Uses KHz not MHz */
-#define VIDEO_TUNER_NORM	16	/* Tuner can set norm */
-#define VIDEO_TUNER_STEREO_ON	128	/* Tuner is seeing stereo */
-#define VIDEO_TUNER_RDS_ON      256     /* Tuner is seeing an RDS datastream */
-#define VIDEO_TUNER_MBS_ON      512     /* Tuner is seeing an MBS datastream */
-	__u16 mode;			/* PAL/NTSC/SECAM/OTHER */
-#define VIDEO_MODE_PAL		0
-#define VIDEO_MODE_NTSC		1
-#define VIDEO_MODE_SECAM	2
-#define VIDEO_MODE_AUTO		3
-	__u16 signal;			/* Signal strength 16bit scale */
-};
-
-struct video_picture
-{
-	__u16	brightness;
-	__u16	hue;
-	__u16	colour;
-	__u16	contrast;
-	__u16	whiteness;	/* Black and white only */
-	__u16	depth;		/* Capture depth */
-	__u16   palette;	/* Palette in use */
-#define VIDEO_PALETTE_GREY	1	/* Linear greyscale */
-#define VIDEO_PALETTE_HI240	2	/* High 240 cube (BT848) */
-#define VIDEO_PALETTE_RGB565	3	/* 565 16 bit RGB */
-#define VIDEO_PALETTE_RGB24	4	/* 24bit RGB */
-#define VIDEO_PALETTE_RGB32	5	/* 32bit RGB */
-#define VIDEO_PALETTE_RGB555	6	/* 555 15bit RGB */
-#define VIDEO_PALETTE_YUV422	7	/* YUV422 capture */
-#define VIDEO_PALETTE_YUYV	8
-#define VIDEO_PALETTE_UYVY	9	/* The great thing about standards is ... */
-#define VIDEO_PALETTE_YUV420	10
-#define VIDEO_PALETTE_YUV411	11	/* YUV411 capture */
-#define VIDEO_PALETTE_RAW	12	/* RAW capture (BT848) */
-#define VIDEO_PALETTE_YUV422P	13	/* YUV 4:2:2 Planar */
-#define VIDEO_PALETTE_YUV411P	14	/* YUV 4:1:1 Planar */
-#define VIDEO_PALETTE_YUV420P	15	/* YUV 4:2:0 Planar */
-#define VIDEO_PALETTE_YUV410P	16	/* YUV 4:1:0 Planar */
-#define VIDEO_PALETTE_PLANAR	13	/* start of planar entries */
-#define VIDEO_PALETTE_COMPONENT 7	/* start of component entries */
-};
-
-struct video_audio
-{
-	int	audio;		/* Audio channel */
-	__u16	volume;		/* If settable */
-	__u16	bass, treble;
-	__u32	flags;
-#define VIDEO_AUDIO_MUTE	1
-#define VIDEO_AUDIO_MUTABLE	2
-#define VIDEO_AUDIO_VOLUME	4
-#define VIDEO_AUDIO_BASS	8
-#define VIDEO_AUDIO_TREBLE	16
-#define VIDEO_AUDIO_BALANCE	32
-	char    name[16];
-#define VIDEO_SOUND_MONO	1
-#define VIDEO_SOUND_STEREO	2
-#define VIDEO_SOUND_LANG1	4
-#define VIDEO_SOUND_LANG2	8
-	__u16   mode;
-	__u16	balance;	/* Stereo balance */
-	__u16	step;		/* Step actual volume uses */
-};
-
-struct video_clip
-{
-	__s32	x,y;
-	__s32	width, height;
-	struct	video_clip *next;	/* For user use/driver use only */
-};
-
-struct video_window
-{
-	__u32	x,y;			/* Position of window */
-	__u32	width,height;		/* Its size */
-	__u32	chromakey;
-	__u32	flags;
-	struct	video_clip __user *clips;	/* Set only */
-	int	clipcount;
-#define VIDEO_WINDOW_INTERLACE	1
-#define VIDEO_WINDOW_CHROMAKEY	16	/* Overlay by chromakey */
-#define VIDEO_CLIP_BITMAP	-1
-/* bitmap is 1024x625, a '1' bit represents a clipped pixel */
-#define VIDEO_CLIPMAP_SIZE	(128 * 625)
-};
-
-struct video_capture
-{
-	__u32 	x,y;			/* Offsets into image */
-	__u32	width, height;		/* Area to capture */
-	__u16	decimation;		/* Decimation divider */
-	__u16	flags;			/* Flags for capture */
-#define VIDEO_CAPTURE_ODD		0	/* Temporal */
-#define VIDEO_CAPTURE_EVEN		1
-};
-
-struct video_buffer
-{
-	void	*base;
-	int	height,width;
-	int	depth;
-	int	bytesperline;
-};
-
-struct video_mmap
-{
-	unsigned	int frame;		/* Frame (0 - n) for double buffer */
-	int		height,width;
-	unsigned	int format;		/* should be VIDEO_PALETTE_* */
-};
-
-struct video_key
-{
-	__u8	key[8];
-	__u32	flags;
-};
-
-struct video_mbuf
-{
-	int	size;		/* Total memory to map */
-	int	frames;		/* Frames */
-	int	offsets[VIDEO_MAX_FRAME];
-};
-
-#define 	VIDEO_NO_UNIT	(-1)
-
-struct video_unit
-{
-	int 	video;		/* Video minor */
-	int	vbi;		/* VBI minor */
-	int	radio;		/* Radio minor */
-	int	audio;		/* Audio minor */
-	int	teletext;	/* Teletext minor */
-};
-
-struct vbi_format {
-	__u32	sampling_rate;	/* in Hz */
-	__u32	samples_per_line;
-	__u32	sample_format;	/* VIDEO_PALETTE_RAW only (1 byte) */
-	__s32	start[2];	/* starting line for each frame */
-	__u32	count[2];	/* count of lines for each frame */
-	__u32	flags;
-#define	VBI_UNSYNC	1	/* can distingues between top/bottom field */
-#define	VBI_INTERLACED	2	/* lines are interlaced */
-};
-
-/* video_info is biased towards hardware mpeg encode/decode */
-/* but it could apply generically to any hardware compressor/decompressor */
-struct video_info
-{
-	__u32	frame_count;	/* frames output since decode/encode began */
-	__u32	h_size;		/* current unscaled horizontal size */
-	__u32	v_size;		/* current unscaled veritcal size */
-	__u32	smpte_timecode;	/* current SMPTE timecode (for current GOP) */
-	__u32	picture_type;	/* current picture type */
-	__u32	temporal_reference;	/* current temporal reference */
-	__u8	user_data[256];	/* user data last found in compressed stream */
-	/* user_data[0] contains user data flags, user_data[1] has count */
-};
-
-/* generic structure for setting playback modes */
-struct video_play_mode
-{
-	int	mode;
-	int	p1;
-	int	p2;
-};
-
-/* for loading microcode / fpga programming */
-struct video_code
-{
-	char	loadwhat[16];	/* name or tag of file being passed */
-	int	datasize;
-	__u8	*data;
-};
-
-#define VIDIOCGCAP		_IOR('v',1,struct video_capability)	/* Get capabilities */
-#define VIDIOCGCHAN		_IOWR('v',2,struct video_channel)	/* Get channel info (sources) */
-#define VIDIOCSCHAN		_IOW('v',3,struct video_channel)	/* Set channel 	*/
-#define VIDIOCGTUNER		_IOWR('v',4,struct video_tuner)		/* Get tuner abilities */
-#define VIDIOCSTUNER		_IOW('v',5,struct video_tuner)		/* Tune the tuner for the current channel */
-#define VIDIOCGPICT		_IOR('v',6,struct video_picture)	/* Get picture properties */
-#define VIDIOCSPICT		_IOW('v',7,struct video_picture)	/* Set picture properties */
-#define VIDIOCCAPTURE		_IOW('v',8,int)				/* Start, end capture */
-#define VIDIOCGWIN		_IOR('v',9, struct video_window)	/* Get the video overlay window */
-#define VIDIOCSWIN		_IOW('v',10, struct video_window)	/* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */
-#define VIDIOCGFBUF		_IOR('v',11, struct video_buffer)	/* Get frame buffer */
-#define VIDIOCSFBUF		_IOW('v',12, struct video_buffer)	/* Set frame buffer - root only */
-#define VIDIOCKEY		_IOR('v',13, struct video_key)		/* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */
-#define VIDIOCGFREQ		_IOR('v',14, unsigned long)		/* Set tuner */
-#define VIDIOCSFREQ		_IOW('v',15, unsigned long)		/* Set tuner */
-#define VIDIOCGAUDIO		_IOR('v',16, struct video_audio)	/* Get audio info */
-#define VIDIOCSAUDIO		_IOW('v',17, struct video_audio)	/* Audio source, mute etc */
-#define VIDIOCSYNC		_IOW('v',18, int)			/* Sync with mmap grabbing */
-#define VIDIOCMCAPTURE		_IOW('v',19, struct video_mmap)		/* Grab frames */
-#define VIDIOCGMBUF		_IOR('v',20, struct video_mbuf)		/* Memory map buffer info */
-#define VIDIOCGUNIT		_IOR('v',21, struct video_unit)		/* Get attached units */
-#define VIDIOCGCAPTURE		_IOR('v',22, struct video_capture)	/* Get subcapture */
-#define VIDIOCSCAPTURE		_IOW('v',23, struct video_capture)	/* Set subcapture */
-#define VIDIOCSPLAYMODE		_IOW('v',24, struct video_play_mode)	/* Set output video mode/feature */
-#define VIDIOCSWRITEMODE	_IOW('v',25, int)			/* Set write mode */
-#define VIDIOCGPLAYINFO		_IOR('v',26, struct video_info)		/* Get current playback info from hardware */
-#define VIDIOCSMICROCODE	_IOW('v',27, struct video_code)		/* Load microcode into hardware */
-#define	VIDIOCGVBIFMT		_IOR('v',28, struct vbi_format)		/* Get VBI information */
-#define	VIDIOCSVBIFMT		_IOW('v',29, struct vbi_format)		/* Set VBI information */
-
-
-#define BASE_VIDIOCPRIVATE	192		/* 192-255 are private */
-
-/* VIDIOCSWRITEMODE */
-#define VID_WRITE_MPEG_AUD		0
-#define VID_WRITE_MPEG_VID		1
-#define VID_WRITE_OSD			2
-#define VID_WRITE_TTX			3
-#define VID_WRITE_CC			4
-#define VID_WRITE_MJPEG			5
-
-/* VIDIOCSPLAYMODE */
-#define VID_PLAY_VID_OUT_MODE		0
-	/* p1: = VIDEO_MODE_PAL, VIDEO_MODE_NTSC, etc ... */
-#define VID_PLAY_GENLOCK		1
-	/* p1: 0 = OFF, 1 = ON */
-	/* p2: GENLOCK FINE DELAY value */
-#define VID_PLAY_NORMAL			2
-#define VID_PLAY_PAUSE			3
-#define VID_PLAY_SINGLE_FRAME		4
-#define VID_PLAY_FAST_FORWARD		5
-#define VID_PLAY_SLOW_MOTION		6
-#define VID_PLAY_IMMEDIATE_NORMAL	7
-#define VID_PLAY_SWITCH_CHANNELS	8
-#define VID_PLAY_FREEZE_FRAME		9
-#define VID_PLAY_STILL_MODE		10
-#define VID_PLAY_MASTER_MODE		11
-	/* p1: see below */
-#define		VID_PLAY_MASTER_NONE	1
-#define		VID_PLAY_MASTER_VIDEO	2
-#define		VID_PLAY_MASTER_AUDIO	3
-#define VID_PLAY_ACTIVE_SCANLINES	12
-	/* p1 = first active; p2 = last active */
-#define VID_PLAY_RESET			13
-#define VID_PLAY_END_MARK		14
-
-#endif /* __LINUX_VIDEODEV_H */
-
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- */
diff --git a/include/media/ovcamchip.h b/include/media/ovcamchip.h
deleted file mode 100644
index 05b9569..0000000
--- a/include/media/ovcamchip.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* OmniVision* camera chip driver API
- *
- * Copyright (c) 1999-2004 Mark McClelland
- *
- * 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 (at your
- * option) any later version. NO WARRANTY OF ANY KIND is expressed or implied.
- *
- * * OmniVision is a trademark of OmniVision Technologies, Inc. This driver
- * is not sponsored or developed by them.
- */
-
-#ifndef __LINUX_OVCAMCHIP_H
-#define __LINUX_OVCAMCHIP_H
-
-#include <linux/videodev.h>
-#include <media/v4l2-common.h>
-
-/* --------------------------------- */
-/*           ENUMERATIONS            */
-/* --------------------------------- */
-
-/* Controls */
-enum {
-	OVCAMCHIP_CID_CONT,		/* Contrast */
-	OVCAMCHIP_CID_BRIGHT,		/* Brightness */
-	OVCAMCHIP_CID_SAT,		/* Saturation */
-	OVCAMCHIP_CID_HUE,		/* Hue */
-	OVCAMCHIP_CID_EXP,		/* Exposure */
-	OVCAMCHIP_CID_FREQ,		/* Light frequency */
-	OVCAMCHIP_CID_BANDFILT,		/* Banding filter */
-	OVCAMCHIP_CID_AUTOBRIGHT,	/* Auto brightness */
-	OVCAMCHIP_CID_AUTOEXP,		/* Auto exposure */
-	OVCAMCHIP_CID_BACKLIGHT,	/* Back light compensation */
-	OVCAMCHIP_CID_MIRROR,		/* Mirror horizontally */
-};
-
-/* Chip types */
-#define NUM_CC_TYPES	9
-enum {
-	CC_UNKNOWN,
-	CC_OV76BE,
-	CC_OV7610,
-	CC_OV7620,
-	CC_OV7620AE,
-	CC_OV6620,
-	CC_OV6630,
-	CC_OV6630AE,
-	CC_OV6630AF,
-};
-
-/* --------------------------------- */
-/*           I2C ADDRESSES           */
-/* --------------------------------- */
-
-#define OV7xx0_SID   (0x42 >> 1)
-#define OV6xx0_SID   (0xC0 >> 1)
-
-/* --------------------------------- */
-/*                API                */
-/* --------------------------------- */
-
-struct ovcamchip_control {
-	__u32 id;
-	__s32 value;
-};
-
-struct ovcamchip_window {
-	int x;
-	int y;
-	int width;
-	int height;
-	int format;
-	int quarter;		/* Scale width and height down 2x */
-
-	/* This stuff will be removed eventually */
-	int clockdiv;		/* Clock divisor setting */
-};
-
-/* Commands */
-#define OVCAMCHIP_CMD_Q_SUBTYPE     _IOR  (0x88, 0x00, int)
-#define OVCAMCHIP_CMD_INITIALIZE    _IOW  (0x88, 0x01, int)
-/* You must call OVCAMCHIP_CMD_INITIALIZE before any of commands below! */
-#define OVCAMCHIP_CMD_S_CTRL        _IOW  (0x88, 0x02, struct ovcamchip_control)
-#define OVCAMCHIP_CMD_G_CTRL        _IOWR (0x88, 0x03, struct ovcamchip_control)
-#define OVCAMCHIP_CMD_S_MODE        _IOW  (0x88, 0x04, struct ovcamchip_window)
-#define OVCAMCHIP_MAX_CMD           _IO   (0x88, 0x3f)
-
-#endif
-- 
1.7.3.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 1/6] [media] Remove VIDEO_V4L1 Kconfig option
       [not found] <cover.1293449547.git.mchehab@redhat.com>
                   ` (4 preceding siblings ...)
  2010-12-27 11:38 ` [PATCH 2/6] [media] V4L1 removal: Remove linux/videodev.h Mauro Carvalho Chehab
@ 2010-12-27 11:38 ` Mauro Carvalho Chehab
  5 siblings, 0 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2010-12-27 11:38 UTC (permalink / raw)
  Cc: Linux Media Mailing List

There's no sense on keeping VIDEO_V4L1 Kconfig option just because of
two deprecated drivers moved to staging scheduled to die on 2.6.39.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 9ea1a6d..147c92b 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -40,20 +40,6 @@ config VIDEO_V4L2_COMMON
 	depends on (I2C || I2C=n) && VIDEO_DEV
 	default (I2C || I2C=n) && VIDEO_DEV
 
-config VIDEO_ALLOW_V4L1
-	bool "Enable Video For Linux API 1 (DEPRECATED)"
-	depends on VIDEO_DEV && VIDEO_V4L2_COMMON
-	default VIDEO_DEV && VIDEO_V4L2_COMMON
-	---help---
-	  Enables drivers based on the legacy V4L1 API.
-
-	  This api were developed to be used at Kernel 2.2 and 2.4, but
-	  lacks support for several video standards. There are several
-	  drivers at kernel that still depends on it.
-
-	  If you are unsure as to whether this is required, answer Y.
-
-
 #
 # DVB Core
 #
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index b7b7b59..5116b4d 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -7,11 +7,6 @@ config VIDEO_V4L2
 	depends on VIDEO_DEV && VIDEO_V4L2_COMMON
 	default VIDEO_DEV && VIDEO_V4L2_COMMON
 
-config VIDEO_V4L1
-	tristate
-	depends on VIDEO_DEV && VIDEO_V4L2_COMMON && VIDEO_ALLOW_V4L1
-	default VIDEO_DEV && VIDEO_V4L2_COMMON && VIDEO_ALLOW_V4L1
-
 config VIDEOBUF_GEN
 	tristate
 
diff --git a/drivers/staging/se401/Kconfig b/drivers/staging/se401/Kconfig
index 586fc04..ee7313e 100644
--- a/drivers/staging/se401/Kconfig
+++ b/drivers/staging/se401/Kconfig
@@ -1,6 +1,6 @@
 config USB_SE401
 	tristate "USB SE401 Camera support (DEPRECATED)"
-	depends on VIDEO_V4L1
+	depends on VIDEO_DEV && VIDEO_V4L2_COMMON
 	---help---
 	  Say Y here if you want to connect this type of camera to your
 	  computer's USB port. See <file:Documentation/video4linux/se401.txt>
diff --git a/drivers/staging/usbvideo/Kconfig b/drivers/staging/usbvideo/Kconfig
index aae863e..d9fc867 100644
--- a/drivers/staging/usbvideo/Kconfig
+++ b/drivers/staging/usbvideo/Kconfig
@@ -3,7 +3,7 @@ config VIDEO_USBVIDEO
 
 config USB_VICAM
 	tristate "USB 3com HomeConnect (aka vicam) support (DEPRECATED)"
-	depends on VIDEO_V4L1 && EXPERIMENTAL
+	depends on VIDEO_DEV && VIDEO_V4L2_COMMON
 	select VIDEO_USBVIDEO
 	---help---
 	  Say Y here if you have 3com homeconnect camera (vicam).
diff --git a/include/linux/videodev.h b/include/linux/videodev.h
index 8a7aead..f11efbe 100644
--- a/include/linux/videodev.h
+++ b/include/linux/videodev.h
@@ -16,8 +16,6 @@
 #include <linux/ioctl.h>
 #include <linux/videodev2.h>
 
-#if defined(CONFIG_VIDEO_V4L1) || defined(CONFIG_VIDEO_V4L1_MODULE) || !defined(__KERNEL__)
-
 #define VID_TYPE_CAPTURE	1	/* Can capture */
 #define VID_TYPE_TUNER		2	/* Can tune */
 #define VID_TYPE_TELETEXT	4	/* Does teletext */
@@ -311,8 +309,6 @@ struct video_code
 #define VID_PLAY_RESET			13
 #define VID_PLAY_END_MARK		14
 
-#endif /* CONFIG_VIDEO_V4L1 */
-
 #endif /* __LINUX_VIDEODEV_H */
 
 /*
-- 
1.7.3.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges
  2010-12-27 11:38 ` [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges Mauro Carvalho Chehab
@ 2010-12-27 12:01   ` Hans Verkuil
  2010-12-27 13:03     ` Mauro Carvalho Chehab
  2010-12-27 13:10     ` Mauro Carvalho Chehab
  0 siblings, 2 replies; 13+ messages in thread
From: Hans Verkuil @ 2010-12-27 12:01 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Linux Media Mailing List

On Monday, December 27, 2010 12:38:39 Mauro Carvalho Chehab wrote:
> The V4L1 removal patches removed a few ioctls. Update it at the docspace.
> 
> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
> 
> diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
> index 63ffd78..49d7f00 100644
> --- a/Documentation/ioctl/ioctl-number.txt
> +++ b/Documentation/ioctl/ioctl-number.txt
> @@ -260,14 +260,11 @@ Code  Seq#(hex)	Include File		Comments
>  't'	80-8F	linux/isdn_ppp.h
>  't'	90	linux/toshiba.h
>  'u'	00-1F	linux/smb_fs.h		gone
> -'v'	all	linux/videodev.h	conflict!
>  'v'	00-1F	linux/ext2_fs.h		conflict!
>  'v'	00-1F	linux/fs.h		conflict!
>  'v'	00-0F	linux/sonypi.h		conflict!
> -'v'	C0-CF	drivers/media/video/ov511.h	conflict!
>  'v'	C0-DF	media/pwc-ioctl.h	conflict!
>  'v'	C0-FF	linux/meye.h		conflict!
> -'v'	C0-CF	drivers/media/video/zoran/zoran.h	conflict!
>  'v'	D0-DF	drivers/media/video/cpia2/cpia2dev.h	conflict!
>  'w'	all				CERN SCI driver
>  'y'	00-1F				packet based user level communications
> 

There is also a line for media/ovcamchip.h in this file that can be removed.
The media/rds.h line can also be removed (this is kernel internal only).
Ditto for media/bt819.h.

All other patches in this series:

Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl>

BTW, it is probably also a good idea to move the dabusb driver to staging and
mark it for removal in 2.6.39.

Regards,

	Hans

-- 
Hans Verkuil - video4linux developer - sponsored by Cisco

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges
  2010-12-27 12:01   ` Hans Verkuil
@ 2010-12-27 13:03     ` Mauro Carvalho Chehab
  2010-12-27 13:23       ` Hans Verkuil
  2010-12-27 13:10     ` Mauro Carvalho Chehab
  1 sibling, 1 reply; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2010-12-27 13:03 UTC (permalink / raw)
  To: Hans Verkuil; +Cc: Linux Media Mailing List

Em 27-12-2010 10:01, Hans Verkuil escreveu:
> On Monday, December 27, 2010 12:38:39 Mauro Carvalho Chehab wrote:
>> The V4L1 removal patches removed a few ioctls. Update it at the docspace.
>>
>> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
>>
>> diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
>> index 63ffd78..49d7f00 100644
>> --- a/Documentation/ioctl/ioctl-number.txt
>> +++ b/Documentation/ioctl/ioctl-number.txt
>> @@ -260,14 +260,11 @@ Code  Seq#(hex)	Include File		Comments
>>  't'	80-8F	linux/isdn_ppp.h
>>  't'	90	linux/toshiba.h
>>  'u'	00-1F	linux/smb_fs.h		gone
>> -'v'	all	linux/videodev.h	conflict!
>>  'v'	00-1F	linux/ext2_fs.h		conflict!
>>  'v'	00-1F	linux/fs.h		conflict!
>>  'v'	00-0F	linux/sonypi.h		conflict!
>> -'v'	C0-CF	drivers/media/video/ov511.h	conflict!
>>  'v'	C0-DF	media/pwc-ioctl.h	conflict!
>>  'v'	C0-FF	linux/meye.h		conflict!
>> -'v'	C0-CF	drivers/media/video/zoran/zoran.h	conflict!
>>  'v'	D0-DF	drivers/media/video/cpia2/cpia2dev.h	conflict!
>>  'w'	all				CERN SCI driver
>>  'y'	00-1F				packet based user level communications
>>
> 
> There is also a line for media/ovcamchip.h in this file that can be removed.

Ok, I'll do that.

> The media/rds.h line can also be removed (this is kernel internal only).

There are two rds.h, related to V4L:
./include/linux/rds.h
./include/media/rds.h

One of them is at the public api:

include/linux/Kbuild:header-y += rds.h

Btw, that's weird:

$ git grep RDS_CMD_OPEN
drivers/media/video/saa6588.c:    case RDS_CMD_OPEN:
include/media/rds.h:#define RDS_CMD_OPEN  _IOW('R',1,int)

as saa6588 is a subdev.

IMO, we should remove or rename the internal header first.

> Ditto for media/bt819.h.

There are also some issues there related to videodev2 stuff.

I prefer to apply the path as-is (just removing the ovcamchip.h) and,
on some later cleanup, check and fix the remaining stuff.
> 
> All other patches in this series:
> 
> Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl>

Thanks!
> 
> BTW, it is probably also a good idea to move the dabusb driver to staging and
> mark it for removal in 2.6.39.

Not sure about that. I don't see any good reason to remove dabusb driver, as
nobody reported that it is broken.
> 
> Regards,
> 
> 	Hans
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges
  2010-12-27 12:01   ` Hans Verkuil
  2010-12-27 13:03     ` Mauro Carvalho Chehab
@ 2010-12-27 13:10     ` Mauro Carvalho Chehab
  1 sibling, 0 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2010-12-27 13:10 UTC (permalink / raw)
  To: Hans Verkuil; +Cc: Linux Media Mailing List

Em 27-12-2010 10:01, Hans Verkuil escreveu:
> On Monday, December 27, 2010 12:38:39 Mauro Carvalho Chehab wrote:
>> The V4L1 removal patches removed a few ioctls. Update it at the docspace.
>>
>> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
>>

Reviewed version, removing also ovcamchip.h.

Cheers,
Mauro


commit 49962bb3d96c7b174198dc6fe7103426512ac2aa
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
Date:   Mon Dec 27 09:13:12 2010 -0200

    Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges
    
    The V4L1 removal patches removed a few ioctls. Update it at the docspace.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
index 63ffd78..b2400d7 100644
--- a/Documentation/ioctl/ioctl-number.txt
+++ b/Documentation/ioctl/ioctl-number.txt
@@ -260,14 +260,11 @@ Code  Seq#(hex)	Include File		Comments
 't'	80-8F	linux/isdn_ppp.h
 't'	90	linux/toshiba.h
 'u'	00-1F	linux/smb_fs.h		gone
-'v'	all	linux/videodev.h	conflict!
 'v'	00-1F	linux/ext2_fs.h		conflict!
 'v'	00-1F	linux/fs.h		conflict!
 'v'	00-0F	linux/sonypi.h		conflict!
-'v'	C0-CF	drivers/media/video/ov511.h	conflict!
 'v'	C0-DF	media/pwc-ioctl.h	conflict!
 'v'	C0-FF	linux/meye.h		conflict!
-'v'	C0-CF	drivers/media/video/zoran/zoran.h	conflict!
 'v'	D0-DF	drivers/media/video/cpia2/cpia2dev.h	conflict!
 'w'	all				CERN SCI driver
 'y'	00-1F				packet based user level communications
@@ -278,7 +275,6 @@ Code  Seq#(hex)	Include File		Comments
 					<mailto:oe@port.de>
 'z'	10-4F	drivers/s390/crypto/zcrypt_api.h	conflict!
 0x80	00-1F	linux/fb.h
-0x88	00-3F	media/ovcamchip.h
 0x89	00-06	arch/x86/include/asm/sockios.h
 0x89	0B-DF	linux/sockios.h
 0x89	E0-EF	linux/sockios.h		SIOCPROTOPRIVATE range


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges
  2010-12-27 13:03     ` Mauro Carvalho Chehab
@ 2010-12-27 13:23       ` Hans Verkuil
  2010-12-27 14:02         ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 13+ messages in thread
From: Hans Verkuil @ 2010-12-27 13:23 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: Linux Media Mailing List

On Monday, December 27, 2010 14:03:03 Mauro Carvalho Chehab wrote:
> Em 27-12-2010 10:01, Hans Verkuil escreveu:
> > On Monday, December 27, 2010 12:38:39 Mauro Carvalho Chehab wrote:
> >> The V4L1 removal patches removed a few ioctls. Update it at the docspace.
> >>
> >> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
> >>
> >> diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
> >> index 63ffd78..49d7f00 100644
> >> --- a/Documentation/ioctl/ioctl-number.txt
> >> +++ b/Documentation/ioctl/ioctl-number.txt
> >> @@ -260,14 +260,11 @@ Code  Seq#(hex)	Include File		Comments
> >>  't'	80-8F	linux/isdn_ppp.h
> >>  't'	90	linux/toshiba.h
> >>  'u'	00-1F	linux/smb_fs.h		gone
> >> -'v'	all	linux/videodev.h	conflict!
> >>  'v'	00-1F	linux/ext2_fs.h		conflict!
> >>  'v'	00-1F	linux/fs.h		conflict!
> >>  'v'	00-0F	linux/sonypi.h		conflict!
> >> -'v'	C0-CF	drivers/media/video/ov511.h	conflict!
> >>  'v'	C0-DF	media/pwc-ioctl.h	conflict!
> >>  'v'	C0-FF	linux/meye.h		conflict!
> >> -'v'	C0-CF	drivers/media/video/zoran/zoran.h	conflict!
> >>  'v'	D0-DF	drivers/media/video/cpia2/cpia2dev.h	conflict!
> >>  'w'	all				CERN SCI driver
> >>  'y'	00-1F				packet based user level communications
> >>
> > 
> > There is also a line for media/ovcamchip.h in this file that can be removed.
> 
> Ok, I'll do that.
> 
> > The media/rds.h line can also be removed (this is kernel internal only).
> 
> There are two rds.h, related to V4L:
> ./include/linux/rds.h

Not related to V4L, this is something from Oracle. It is this header that is public,
not the media/rds.h header.

> ./include/media/rds.h
> 
> One of them is at the public api:
> 
> include/linux/Kbuild:header-y += rds.h
> 
> Btw, that's weird:
> 
> $ git grep RDS_CMD_OPEN
> drivers/media/video/saa6588.c:    case RDS_CMD_OPEN:
> include/media/rds.h:#define RDS_CMD_OPEN  _IOW('R',1,int)
> 
> as saa6588 is a subdev.
> 
> IMO, we should remove or rename the internal header first.

media/rds.h should be renamed to media/saa6588.h. It is also included in
drivers/media/radio/si470x/radio-si470x.h, but that's obsolete and can be
removed.
 
> > Ditto for media/bt819.h.
> 
> There are also some issues there related to videodev2 stuff.
> 
> I prefer to apply the path as-is (just removing the ovcamchip.h) and,
> on some later cleanup, check and fix the remaining stuff.

I can make a patch fixing the rds.h header usage. It's all internal stuff
and the weird naming is just historical and should be changed.

> > 
> > All other patches in this series:
> > 
> > Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl>
> 
> Thanks!
> > 
> > BTW, it is probably also a good idea to move the dabusb driver to staging and
> > mark it for removal in 2.6.39.
> 
> Not sure about that. I don't see any good reason to remove dabusb driver, as
> nobody reported that it is broken.

Nobody has the hardware :-)

I know you have asked the authors about a possible removal of this driver a few
months ago. Did you get any reply from them?

It seems to be a demonstration driver only and I've never seen anyone with the
hardware.

Regards,

	Hans

> > 
> > Regards,
> > 
> > 	Hans
> > 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 
Hans Verkuil - video4linux developer - sponsored by Cisco

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges
  2010-12-27 13:23       ` Hans Verkuil
@ 2010-12-27 14:02         ` Mauro Carvalho Chehab
  2010-12-27 15:08           ` Hans Verkuil
  0 siblings, 1 reply; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2010-12-27 14:02 UTC (permalink / raw)
  To: Hans Verkuil; +Cc: Linux Media Mailing List

Em 27-12-2010 11:23, Hans Verkuil escreveu:
> On Monday, December 27, 2010 14:03:03 Mauro Carvalho Chehab wrote:
>> Em 27-12-2010 10:01, Hans Verkuil escreveu:
>>> On Monday, December 27, 2010 12:38:39 Mauro Carvalho Chehab wrote:
>>>> The V4L1 removal patches removed a few ioctls. Update it at the docspace.
>>>>
>>>> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
>>>>
>>>> diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
>>>> index 63ffd78..49d7f00 100644
>>>> --- a/Documentation/ioctl/ioctl-number.txt
>>>> +++ b/Documentation/ioctl/ioctl-number.txt
>>>> @@ -260,14 +260,11 @@ Code  Seq#(hex)	Include File		Comments
>>>>  't'	80-8F	linux/isdn_ppp.h
>>>>  't'	90	linux/toshiba.h
>>>>  'u'	00-1F	linux/smb_fs.h		gone
>>>> -'v'	all	linux/videodev.h	conflict!
>>>>  'v'	00-1F	linux/ext2_fs.h		conflict!
>>>>  'v'	00-1F	linux/fs.h		conflict!
>>>>  'v'	00-0F	linux/sonypi.h		conflict!
>>>> -'v'	C0-CF	drivers/media/video/ov511.h	conflict!
>>>>  'v'	C0-DF	media/pwc-ioctl.h	conflict!
>>>>  'v'	C0-FF	linux/meye.h		conflict!
>>>> -'v'	C0-CF	drivers/media/video/zoran/zoran.h	conflict!
>>>>  'v'	D0-DF	drivers/media/video/cpia2/cpia2dev.h	conflict!
>>>>  'w'	all				CERN SCI driver
>>>>  'y'	00-1F				packet based user level communications
>>>>
>>>
>>> There is also a line for media/ovcamchip.h in this file that can be removed.
>>
>> Ok, I'll do that.
>>
>>> The media/rds.h line can also be removed (this is kernel internal only).
>>
>> There are two rds.h, related to V4L:
>> ./include/linux/rds.h
> 
> Not related to V4L, this is something from Oracle. It is this header that is public,
> not the media/rds.h header.

Ah, ok.

>> ./include/media/rds.h
>>
>> One of them is at the public api:
>>
>> include/linux/Kbuild:header-y += rds.h
>>
>> Btw, that's weird:
>>
>> $ git grep RDS_CMD_OPEN
>> drivers/media/video/saa6588.c:    case RDS_CMD_OPEN:
>> include/media/rds.h:#define RDS_CMD_OPEN  _IOW('R',1,int)
>>
>> as saa6588 is a subdev.
>>
>> IMO, we should remove or rename the internal header first.
> 
> media/rds.h should be renamed to media/saa6588.h. It is also included in
> drivers/media/radio/si470x/radio-si470x.h, but that's obsolete and can be
> removed.

The rds file were the old RDS API, before we add it at V4L2. We should, instead,
convert saa6588 to use the new way, and remove the legacy stuff.

>>> Ditto for media/bt819.h.
>>
>> There are also some issues there related to videodev2 stuff.
>>
>> I prefer to apply the path as-is (just removing the ovcamchip.h) and,
>> on some later cleanup, check and fix the remaining stuff.
> 
> I can make a patch fixing the rds.h header usage. It's all internal stuff
> and the weird naming is just historical and should be changed.

It would be nice if you can do it.

>>>
>>> All other patches in this series:
>>>
>>> Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl>
>>
>> Thanks!
>>>
>>> BTW, it is probably also a good idea to move the dabusb driver to staging and
>>> mark it for removal in 2.6.39.
>>
>> Not sure about that. I don't see any good reason to remove dabusb driver, as
>> nobody reported that it is broken.
> 
> Nobody has the hardware :-)

This is too strong :) Are you absolutely sure that there's absolutely nobody in
the World with that hardware? ;)
> 
> I know you have asked the authors about a possible removal of this driver a few
> months ago. Did you get any reply from them?

Nope.

> It seems to be a demonstration driver only and I've never seen anyone with the
> hardware.

It seems so, but I can't see any technical reason for its removal. The BKL fix were
applied on it, as someone wrote a patch for it.

Cheers,
Mauro

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges
  2010-12-27 14:02         ` Mauro Carvalho Chehab
@ 2010-12-27 15:08           ` Hans Verkuil
  2010-12-27 15:40             ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 13+ messages in thread
From: Hans Verkuil @ 2010-12-27 15:08 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: Linux Media Mailing List

On Monday, December 27, 2010 15:02:05 Mauro Carvalho Chehab wrote:
> Em 27-12-2010 11:23, Hans Verkuil escreveu:
> > On Monday, December 27, 2010 14:03:03 Mauro Carvalho Chehab wrote:
> >> Em 27-12-2010 10:01, Hans Verkuil escreveu:
> >>> On Monday, December 27, 2010 12:38:39 Mauro Carvalho Chehab wrote:
> >>>> The V4L1 removal patches removed a few ioctls. Update it at the docspace.
> >>>>
> >>>> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
> >>>>
> >>>> diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
> >>>> index 63ffd78..49d7f00 100644
> >>>> --- a/Documentation/ioctl/ioctl-number.txt
> >>>> +++ b/Documentation/ioctl/ioctl-number.txt
> >>>> @@ -260,14 +260,11 @@ Code  Seq#(hex)	Include File		Comments
> >>>>  't'	80-8F	linux/isdn_ppp.h
> >>>>  't'	90	linux/toshiba.h
> >>>>  'u'	00-1F	linux/smb_fs.h		gone
> >>>> -'v'	all	linux/videodev.h	conflict!
> >>>>  'v'	00-1F	linux/ext2_fs.h		conflict!
> >>>>  'v'	00-1F	linux/fs.h		conflict!
> >>>>  'v'	00-0F	linux/sonypi.h		conflict!
> >>>> -'v'	C0-CF	drivers/media/video/ov511.h	conflict!
> >>>>  'v'	C0-DF	media/pwc-ioctl.h	conflict!
> >>>>  'v'	C0-FF	linux/meye.h		conflict!
> >>>> -'v'	C0-CF	drivers/media/video/zoran/zoran.h	conflict!
> >>>>  'v'	D0-DF	drivers/media/video/cpia2/cpia2dev.h	conflict!
> >>>>  'w'	all				CERN SCI driver
> >>>>  'y'	00-1F				packet based user level communications
> >>>>
> >>>
> >>> There is also a line for media/ovcamchip.h in this file that can be removed.
> >>
> >> Ok, I'll do that.
> >>
> >>> The media/rds.h line can also be removed (this is kernel internal only).
> >>
> >> There are two rds.h, related to V4L:
> >> ./include/linux/rds.h
> > 
> > Not related to V4L, this is something from Oracle. It is this header that is public,
> > not the media/rds.h header.
> 
> Ah, ok.
> 
> >> ./include/media/rds.h
> >>
> >> One of them is at the public api:
> >>
> >> include/linux/Kbuild:header-y += rds.h
> >>
> >> Btw, that's weird:
> >>
> >> $ git grep RDS_CMD_OPEN
> >> drivers/media/video/saa6588.c:    case RDS_CMD_OPEN:
> >> include/media/rds.h:#define RDS_CMD_OPEN  _IOW('R',1,int)
> >>
> >> as saa6588 is a subdev.
> >>
> >> IMO, we should remove or rename the internal header first.
> > 
> > media/rds.h should be renamed to media/saa6588.h. It is also included in
> > drivers/media/radio/si470x/radio-si470x.h, but that's obsolete and can be
> > removed.
> 
> The rds file were the old RDS API, before we add it at V4L2. We should, instead,
> convert saa6588 to use the new way, and remove the legacy stuff.

No, this was never the RDS API. It is the saa6588 kernel-internal API.
There is nothing wrong with it, except for the fact that the name suggests
that this is a generic RDS API, when in fact it is saa6588 specific.

> >>> Ditto for media/bt819.h.
> >>
> >> There are also some issues there related to videodev2 stuff.
> >>
> >> I prefer to apply the path as-is (just removing the ovcamchip.h) and,
> >> on some later cleanup, check and fix the remaining stuff.
> > 
> > I can make a patch fixing the rds.h header usage. It's all internal stuff
> > and the weird naming is just historical and should be changed.
> 
> It would be nice if you can do it.

Will do.

> 
> >>>
> >>> All other patches in this series:
> >>>
> >>> Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl>
> >>
> >> Thanks!
> >>>
> >>> BTW, it is probably also a good idea to move the dabusb driver to staging and
> >>> mark it for removal in 2.6.39.
> >>
> >> Not sure about that. I don't see any good reason to remove dabusb driver, as
> >> nobody reported that it is broken.
> > 
> > Nobody has the hardware :-)
> 
> This is too strong :) Are you absolutely sure that there's absolutely nobody in
> the World with that hardware? ;)

I did some digging and found out the following:

The hardware in question was only an engineering sample which was later licensed
to Terratec for their 'Dr Box 1' product.

See:

http://www.baycom.de/wiki/index.php/Products::dabusbhw
http://www.baycom.de/wiki/index.php/Products::dabusb

The authors of the driver seemed to have developed the driver a bit more. The
latest source I've been able to find it here:

http://www.baycom.de/download/dabusb/beta/dabusb-linux-i386.tgz

The driver in the kernel only supports the engineering samples. The newer driver
on baycom.de also supports the Terratec product (which is no longer sold either).

> > I know you have asked the authors about a possible removal of this driver a few
> > months ago. Did you get any reply from them?
> 
> Nope.

You should try again, but use their baycom email:

http://www.baycom.de/wiki/index.php/Contact
 
> > It seems to be a demonstration driver only and I've never seen anyone with the
> > hardware.
> 
> It seems so, but I can't see any technical reason for its removal. The BKL fix were
> applied on it, as someone wrote a patch for it.

There are a few reasons why I would like to remove this driver:

1) The driver is for an engineering sample only which was never sold as a commercial
   product.
2) The DAB API is completely undocumented and was never reviewed. Should other DAB
   drivers ever appear, then I'd rather start from scratch defining an API then
   continue this dubious API.

Perhaps baycom themselves might even be interested in working with us to design
something better.

Regards,

	Hans

-- 
Hans Verkuil - video4linux developer - sponsored by Cisco

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges
  2010-12-27 15:08           ` Hans Verkuil
@ 2010-12-27 15:40             ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2010-12-27 15:40 UTC (permalink / raw)
  To: Hans Verkuil; +Cc: Linux Media Mailing List

Em 27-12-2010 13:08, Hans Verkuil escreveu:
> On Monday, December 27, 2010 15:02:05 Mauro Carvalho Chehab wrote:
>> Em 27-12-2010 11:23, Hans Verkuil escreveu:
>>> On Monday, December 27, 2010 14:03:03 Mauro Carvalho Chehab wrote:
>>>> Em 27-12-2010 10:01, Hans Verkuil escreveu:
>>>>> On Monday, December 27, 2010 12:38:39 Mauro Carvalho Chehab wrote:
>>>>>> The V4L1 removal patches removed a few ioctls. Update it at the docspace.
>>>>>>
>>>>>> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
>>>>>>
>>>>>> diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
>>>>>> index 63ffd78..49d7f00 100644
>>>>>> --- a/Documentation/ioctl/ioctl-number.txt
>>>>>> +++ b/Documentation/ioctl/ioctl-number.txt
>>>>>> @@ -260,14 +260,11 @@ Code  Seq#(hex)	Include File		Comments
>>>>>>  't'	80-8F	linux/isdn_ppp.h
>>>>>>  't'	90	linux/toshiba.h
>>>>>>  'u'	00-1F	linux/smb_fs.h		gone
>>>>>> -'v'	all	linux/videodev.h	conflict!
>>>>>>  'v'	00-1F	linux/ext2_fs.h		conflict!
>>>>>>  'v'	00-1F	linux/fs.h		conflict!
>>>>>>  'v'	00-0F	linux/sonypi.h		conflict!
>>>>>> -'v'	C0-CF	drivers/media/video/ov511.h	conflict!
>>>>>>  'v'	C0-DF	media/pwc-ioctl.h	conflict!
>>>>>>  'v'	C0-FF	linux/meye.h		conflict!
>>>>>> -'v'	C0-CF	drivers/media/video/zoran/zoran.h	conflict!
>>>>>>  'v'	D0-DF	drivers/media/video/cpia2/cpia2dev.h	conflict!
>>>>>>  'w'	all				CERN SCI driver
>>>>>>  'y'	00-1F				packet based user level communications
>>>>>>
>>>>>
>>>>> There is also a line for media/ovcamchip.h in this file that can be removed.
>>>>
>>>> Ok, I'll do that.
>>>>
>>>>> The media/rds.h line can also be removed (this is kernel internal only).
>>>>
>>>> There are two rds.h, related to V4L:
>>>> ./include/linux/rds.h
>>>
>>> Not related to V4L, this is something from Oracle. It is this header that is public,
>>> not the media/rds.h header.
>>
>> Ah, ok.
>>
>>>> ./include/media/rds.h
>>>>
>>>> One of them is at the public api:
>>>>
>>>> include/linux/Kbuild:header-y += rds.h
>>>>
>>>> Btw, that's weird:
>>>>
>>>> $ git grep RDS_CMD_OPEN
>>>> drivers/media/video/saa6588.c:    case RDS_CMD_OPEN:
>>>> include/media/rds.h:#define RDS_CMD_OPEN  _IOW('R',1,int)
>>>>
>>>> as saa6588 is a subdev.
>>>>
>>>> IMO, we should remove or rename the internal header first.
>>>
>>> media/rds.h should be renamed to media/saa6588.h. It is also included in
>>> drivers/media/radio/si470x/radio-si470x.h, but that's obsolete and can be
>>> removed.
>>
>> The rds file were the old RDS API, before we add it at V4L2. We should, instead,
>> convert saa6588 to use the new way, and remove the legacy stuff.
> 
> No, this was never the RDS API. It is the saa6588 kernel-internal API.
> There is nothing wrong with it, except for the fact that the name suggests
> that this is a generic RDS API, when in fact it is saa6588 specific.
> 
>>>>> Ditto for media/bt819.h.
>>>>
>>>> There are also some issues there related to videodev2 stuff.
>>>>
>>>> I prefer to apply the path as-is (just removing the ovcamchip.h) and,
>>>> on some later cleanup, check and fix the remaining stuff.
>>>
>>> I can make a patch fixing the rds.h header usage. It's all internal stuff
>>> and the weird naming is just historical and should be changed.
>>
>> It would be nice if you can do it.
> 
> Will do.
> 
>>
>>>>>
>>>>> All other patches in this series:
>>>>>
>>>>> Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl>
>>>>
>>>> Thanks!
>>>>>
>>>>> BTW, it is probably also a good idea to move the dabusb driver to staging and
>>>>> mark it for removal in 2.6.39.
>>>>
>>>> Not sure about that. I don't see any good reason to remove dabusb driver, as
>>>> nobody reported that it is broken.
>>>
>>> Nobody has the hardware :-)
>>
>> This is too strong :) Are you absolutely sure that there's absolutely nobody in
>> the World with that hardware? ;)
> 
> I did some digging and found out the following:
> 
> The hardware in question was only an engineering sample which was later licensed
> to Terratec for their 'Dr Box 1' product.
> 
> See:
> 
> http://www.baycom.de/wiki/index.php/Products::dabusbhw
> http://www.baycom.de/wiki/index.php/Products::dabusb
> 
> The authors of the driver seemed to have developed the driver a bit more. The
> latest source I've been able to find it here:
> 
> http://www.baycom.de/download/dabusb/beta/dabusb-linux-i386.tgz
> 
> The driver in the kernel only supports the engineering samples. The newer driver
> on baycom.de also supports the Terratec product (which is no longer sold either).
> 
>>> I know you have asked the authors about a possible removal of this driver a few
>>> months ago. Did you get any reply from them?
>>
>> Nope.
> 
> You should try again, but use their baycom email:
> 
> http://www.baycom.de/wiki/index.php/Contact
>  
>>> It seems to be a demonstration driver only and I've never seen anyone with the
>>> hardware.
>>
>> It seems so, but I can't see any technical reason for its removal. The BKL fix were
>> applied on it, as someone wrote a patch for it.
> 
> There are a few reasons why I would like to remove this driver:
> 
> 1) The driver is for an engineering sample only which was never sold as a commercial
>    product.
> 2) The DAB API is completely undocumented and was never reviewed. Should other DAB
>    drivers ever appear, then I'd rather start from scratch defining an API then
>    continue this dubious API.
> 
> Perhaps baycom themselves might even be interested in working with us to design
> something better.

Ok, I sent another email. If we don't have any answer until the first week of Jan, let's
move it to staging and schedule it to die on .39.

Cheers,
Mauro

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2010-12-27 15:41 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <cover.1293449547.git.mchehab@redhat.com>
2010-12-27 11:38 ` [PATCH 6/6] [media] omap_vout: Remove an obsolete comment Mauro Carvalho Chehab
2010-12-27 11:38 ` [PATCH 5/6] [media] Remove the old V4L1 v4lgrab.c file Mauro Carvalho Chehab
2010-12-27 11:38 ` [PATCH 4/6] [media] Fix videodev.h references at the V4L DocBook Mauro Carvalho Chehab
2010-12-27 11:38 ` [PATCH 3/6] Documentation/ioctl/ioctl-number.txt: Remove some now freed ioctl ranges Mauro Carvalho Chehab
2010-12-27 12:01   ` Hans Verkuil
2010-12-27 13:03     ` Mauro Carvalho Chehab
2010-12-27 13:23       ` Hans Verkuil
2010-12-27 14:02         ` Mauro Carvalho Chehab
2010-12-27 15:08           ` Hans Verkuil
2010-12-27 15:40             ` Mauro Carvalho Chehab
2010-12-27 13:10     ` Mauro Carvalho Chehab
2010-12-27 11:38 ` [PATCH 2/6] [media] V4L1 removal: Remove linux/videodev.h Mauro Carvalho Chehab
2010-12-27 11:38 ` [PATCH 1/6] [media] Remove VIDEO_V4L1 Kconfig option Mauro Carvalho Chehab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).