summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Knorr <kraxel@bytesex.org>2002-04-08 14:05:09 +0200
committerLinus Torvalds <torvalds@home.transmeta.com>2002-04-08 14:05:09 +0200
commit8ce6edde6138e351d22ea0e8787ee79fd8ed7a1a (patch)
tree54612c59cbe7e382770b3b9142160e9f739ebcf2
parentcbba4f5ef5c3298451d51aca1b74ad0040ff9c5a (diff)
adapt v4l video drivers to 2.5.8-pre1 videodev fixes.
-rw-r--r--drivers/media/video/bttv-driver.c26
-rw-r--r--drivers/media/video/bttv-vbi.c13
-rw-r--r--drivers/media/video/bw-qcam.c13
-rw-r--r--drivers/media/video/c-qcam.c13
-rw-r--r--drivers/media/video/cpia.c13
-rw-r--r--drivers/media/video/pms.c13
-rw-r--r--drivers/media/video/saa5249.c13
-rw-r--r--drivers/media/video/w9966.c15
8 files changed, 80 insertions, 39 deletions
diff --git a/drivers/media/video/bttv-driver.c b/drivers/media/video/bttv-driver.c
index 95bfb3066c20..f35c94e3122e 100644
--- a/drivers/media/video/bttv-driver.c
+++ b/drivers/media/video/bttv-driver.c
@@ -1650,8 +1650,8 @@ static void release_buffer(struct file *file, struct videobuf_buffer *vb)
bttv_dma_free(fh->btv,buf);
}
-static int bttv_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *arg)
+static int bttv_do_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, void *arg)
{
struct bttv_fh *fh = file->private_data;
struct bttv *btv = fh->btv;
@@ -2432,6 +2432,12 @@ static int bttv_ioctl(struct inode *inode, struct file *file,
return retval;
}
+static int bttv_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ return video_usercopy(inode, file, cmd, arg, bttv_do_ioctl);
+}
+
/* start capture to a kernel bounce buffer */
static int bttv_read_capture(struct bttv_fh *fh)
{
@@ -2647,7 +2653,7 @@ static struct file_operations bttv_fops =
owner: THIS_MODULE,
open: bttv_open,
release: bttv_release,
- ioctl: video_generic_ioctl,
+ ioctl: bttv_ioctl,
llseek: no_llseek,
read: bttv_read,
mmap: bttv_mmap,
@@ -2661,7 +2667,6 @@ static struct video_device bttv_template =
VID_TYPE_CLIPPING|VID_TYPE_SCALES,
hardware: VID_HARDWARE_BT848,
fops: &bttv_fops,
- kernel_ioctl: bttv_ioctl,
minor: -1,
};
@@ -2712,8 +2717,8 @@ static int radio_release(struct inode *inode, struct file *file)
return 0;
}
-static int radio_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *arg)
+static int radio_do_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, void *arg)
{
struct bttv *btv = file->private_data;
@@ -2763,12 +2768,18 @@ static int radio_ioctl(struct inode *inode, struct file *file,
return 0;
}
+static int radio_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ return video_usercopy(inode, file, cmd, arg, radio_do_ioctl);
+}
+
static struct file_operations radio_fops =
{
owner: THIS_MODULE,
open: radio_open,
release: radio_release,
- ioctl: video_generic_ioctl,
+ ioctl: radio_ioctl,
llseek: no_llseek,
};
@@ -2778,7 +2789,6 @@ static struct video_device radio_template =
type: VID_TYPE_TUNER|VID_TYPE_TELETEXT,
hardware: VID_HARDWARE_BT848,
fops: &radio_fops,
- kernel_ioctl: radio_ioctl,
minor: -1,
};
diff --git a/drivers/media/video/bttv-vbi.c b/drivers/media/video/bttv-vbi.c
index ddef4c7440e3..f0667526c36c 100644
--- a/drivers/media/video/bttv-vbi.c
+++ b/drivers/media/video/bttv-vbi.c
@@ -276,8 +276,8 @@ static int vbi_release(struct inode *inode, struct file *file)
return 0;
}
-static int vbi_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *arg)
+static int vbi_do_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, void *arg)
{
struct bttv *btv = file->private_data;
#ifdef HAVE_V4L2
@@ -507,6 +507,12 @@ static int vbi_ioctl(struct inode *inode, struct file *file,
#endif
}
+static int vbi_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ return video_usercopy(inode, file, cmd, arg, vbi_do_ioctl);
+}
+
static ssize_t vbi_read(struct file *file, char *data,
size_t count, loff_t *ppos)
{
@@ -634,7 +640,7 @@ static struct file_operations vbi_fops =
owner: THIS_MODULE,
open: vbi_open,
release: vbi_release,
- ioctl: video_generic_ioctl,
+ ioctl: vbi_ioctl,
llseek: no_llseek,
read: vbi_read,
poll: vbi_poll,
@@ -647,7 +653,6 @@ struct video_device bttv_vbi_template =
type: VID_TYPE_TUNER|VID_TYPE_TELETEXT,
hardware: VID_HARDWARE_BT848,
fops: &vbi_fops,
- kernel_ioctl: vbi_ioctl,
minor: -1,
};
diff --git a/drivers/media/video/bw-qcam.c b/drivers/media/video/bw-qcam.c
index 7acc2e206a2e..669521dcbc8a 100644
--- a/drivers/media/video/bw-qcam.c
+++ b/drivers/media/video/bw-qcam.c
@@ -694,8 +694,8 @@ long qc_capture(struct qcam_device * q, char *buf, unsigned long len)
* Video4linux interfacing
*/
-static int qcam_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *arg)
+static int qcam_do_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, void *arg)
{
struct video_device *dev = video_devdata(file);
struct qcam_device *qcam=(struct qcam_device *)dev;
@@ -854,6 +854,12 @@ static int qcam_ioctl(struct inode *inode, struct file *file,
return 0;
}
+static int qcam_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ return video_usercopy(inode, file, cmd, arg, qcam_do_ioctl);
+}
+
static int qcam_read(struct file *file, char *buf,
size_t count, loff_t *ppos)
{
@@ -882,7 +888,7 @@ static struct file_operations qcam_fops = {
owner: THIS_MODULE,
open: video_exclusive_open,
release: video_exclusive_release,
- ioctl: video_generic_ioctl,
+ ioctl: qcam_ioctl,
read: qcam_read,
llseek: no_llseek,
};
@@ -893,7 +899,6 @@ static struct video_device qcam_template=
type: VID_TYPE_CAPTURE,
hardware: VID_HARDWARE_QCAM_BW,
fops: &qcam_fops,
- kernel_ioctl: qcam_ioctl,
};
#define MAX_CAMS 4
diff --git a/drivers/media/video/c-qcam.c b/drivers/media/video/c-qcam.c
index eaa33bf54639..e58f17589938 100644
--- a/drivers/media/video/c-qcam.c
+++ b/drivers/media/video/c-qcam.c
@@ -496,8 +496,8 @@ static long qc_capture(struct qcam_device *q, char *buf, unsigned long len)
* Video4linux interfacing
*/
-static int qcam_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *arg)
+static int qcam_do_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, void *arg)
{
struct video_device *dev = video_devdata(file);
struct qcam_device *qcam=(struct qcam_device *)dev;
@@ -662,6 +662,12 @@ static int qcam_ioctl(struct inode *inode, struct file *file,
return 0;
}
+static int qcam_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ return video_usercopy(inode, file, cmd, arg, qcam_do_ioctl);
+}
+
static int qcam_read(struct file *file, char *buf,
size_t count, loff_t *ppos)
{
@@ -683,7 +689,7 @@ static struct file_operations qcam_fops = {
owner: THIS_MODULE,
open: video_exclusive_open,
release: video_exclusive_release,
- ioctl: video_generic_ioctl,
+ ioctl: qcam_ioctl,
read: qcam_read,
llseek: no_llseek,
};
@@ -695,7 +701,6 @@ static struct video_device qcam_template=
type: VID_TYPE_CAPTURE,
hardware: VID_HARDWARE_QCAM_C,
fops: &qcam_fops,
- kernel_ioctl: qcam_ioctl,
};
/* Initialize the QuickCam driver control structure. */
diff --git a/drivers/media/video/cpia.c b/drivers/media/video/cpia.c
index b03f8c8f9492..1a7992ccd76c 100644
--- a/drivers/media/video/cpia.c
+++ b/drivers/media/video/cpia.c
@@ -2572,8 +2572,8 @@ static int cpia_read(struct file *file, char *buf,
return cam->decompressed_frame.count;
}
-static int cpia_ioctl(struct inode *inode, struct file *file,
- unsigned int ioctlnr, void *arg)
+static int cpia_do_ioctl(struct inode *inode, struct file *file,
+ unsigned int ioctlnr, void *arg)
{
struct video_device *dev = file->private_data;
struct cam_data *cam = dev->priv;
@@ -2874,6 +2874,12 @@ static int cpia_ioctl(struct inode *inode, struct file *file,
return retval;
}
+static int cpia_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ return video_usercopy(inode, file, cmd, arg, cpia_do_ioctl);
+}
+
/* FIXME */
static int cpia_mmap(struct file *file, struct vm_area_struct *vma)
{
@@ -2933,7 +2939,7 @@ static struct file_operations cpia_fops = {
release: cpia_close,
read: cpia_read,
mmap: cpia_mmap,
- ioctl: video_generic_ioctl,
+ ioctl: cpia_ioctl,
llseek: no_llseek,
};
@@ -2943,7 +2949,6 @@ static struct video_device cpia_template = {
type: VID_TYPE_CAPTURE,
hardware: VID_HARDWARE_CPIA, /* FIXME */
fops: &cpia_fops,
- kernel_ioctl: cpia_ioctl,
};
/* initialise cam_data structure */
diff --git a/drivers/media/video/pms.c b/drivers/media/video/pms.c
index 93ed63370919..995763e0e21d 100644
--- a/drivers/media/video/pms.c
+++ b/drivers/media/video/pms.c
@@ -672,8 +672,8 @@ static int pms_capture(struct pms_device *dev, char *buf, int rgb555, int count)
* Video4linux interfacing
*/
-static int pms_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *arg)
+static int pms_do_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, void *arg)
{
struct video_device *dev = video_devdata(file);
struct pms_device *pd=(struct pms_device *)dev;
@@ -855,6 +855,12 @@ static int pms_ioctl(struct inode *inode, struct file *file,
return 0;
}
+static int pms_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ return video_usercopy(inode, file, cmd, arg, pms_do_ioctl);
+}
+
static int pms_read(struct file *file, char *buf,
size_t count, loff_t *ppos)
{
@@ -872,7 +878,7 @@ static struct file_operations pms_fops = {
owner: THIS_MODULE,
open: video_exclusive_open,
release: video_exclusive_release,
- ioctl: video_generic_ioctl,
+ ioctl: pms_ioctl,
read: pms_read,
llseek: no_llseek,
};
@@ -884,7 +890,6 @@ static struct video_device pms_template=
type: VID_TYPE_CAPTURE,
hardware: VID_HARDWARE_PMS,
fops: &pms_fops,
- kernel_ioctl: pms_ioctl,
};
struct pms_device pms_device;
diff --git a/drivers/media/video/saa5249.c b/drivers/media/video/saa5249.c
index 20dcf814e336..d8d959d244f2 100644
--- a/drivers/media/video/saa5249.c
+++ b/drivers/media/video/saa5249.c
@@ -341,9 +341,12 @@ static int i2c_getdata(struct saa5249_device *t, int count, u8 *buf)
* Standard character-device-driver functions
*/
-static int do_saa5249_ioctl(struct saa5249_device *t, unsigned int cmd, void *arg)
+static int do_saa5249_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, void *arg)
{
static int virtual_mode = FALSE;
+ struct video_device *vd = video_devdata(file);
+ struct saa5249_device *t=vd->priv;
switch(cmd)
{
@@ -591,16 +594,15 @@ static int do_saa5249_ioctl(struct saa5249_device *t, unsigned int cmd, void *ar
*/
static int saa5249_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *arg)
+ unsigned int cmd, unsigned long arg)
{
struct video_device *vd = video_devdata(file);
struct saa5249_device *t=vd->priv;
int err;
down(&t->lock);
- err = do_saa5249_ioctl(t, cmd, arg);
+ err = video_usercopy(inode,file,cmd,arg,do_saa5249_ioctl);
up(&t->lock);
-
return err;
}
@@ -679,7 +681,7 @@ static struct file_operations saa_fops = {
owner: THIS_MODULE,
open: saa5249_open,
release: saa5249_release,
- ioctl: video_generic_ioctl,
+ ioctl: saa5249_ioctl,
llseek: no_llseek,
};
@@ -690,7 +692,6 @@ static struct video_device saa_template =
type: VID_TYPE_TELETEXT, /*| VID_TYPE_TUNER ?? */
hardware: VID_HARDWARE_SAA5249,
fops: &saa_fops,
- kernel_ioctl: saa5249_ioctl,
};
MODULE_LICENSE("GPL");
diff --git a/drivers/media/video/w9966.c b/drivers/media/video/w9966.c
index d8d030c82a3d..c475ca9b69c0 100644
--- a/drivers/media/video/w9966.c
+++ b/drivers/media/video/w9966.c
@@ -174,7 +174,7 @@ static int w9966_i2c_wbyte(struct w9966_dev* cam, int data);
static int w9966_i2c_rbyte(struct w9966_dev* cam);
static int w9966_v4l_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *arg);
+ unsigned int cmd, unsigned long arg);
static int w9966_v4l_read(struct file *file, char *buf,
size_t count, loff_t *ppos);
@@ -182,7 +182,7 @@ static struct file_operations w9966_fops = {
owner: THIS_MODULE,
open: video_exclusive_open,
release: video_exclusive_release,
- ioctl: video_generic_ioctl,
+ ioctl: w9966_v4l_ioctl,
read: w9966_v4l_read,
llseek: no_llseek,
};
@@ -192,7 +192,6 @@ static struct video_device w9966_template = {
type: VID_TYPE_CAPTURE | VID_TYPE_SCALES,
hardware: VID_HARDWARE_W9966,
fops: &w9966_fops,
- kernel_ioctl: w9966_v4l_ioctl,
};
/*
@@ -700,8 +699,8 @@ static int w9966_wReg_i2c(struct w9966_dev* cam, int reg, int data)
* Video4linux interfacing
*/
-static int w9966_v4l_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *arg)
+static int w9966_v4l_do_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, void *arg)
{
struct video_device *vdev = video_devdata(file);
struct w9966_dev *cam = (struct w9966_dev*)vdev->priv;
@@ -853,6 +852,12 @@ static int w9966_v4l_ioctl(struct inode *inode, struct file *file,
return 0;
}
+static int w9966_v4l_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ return video_usercopy(inode, file, cmd, arg, w9966_v4l_do_ioctl);
+}
+
// Capture data
static int w9966_v4l_read(struct file *file, char *buf,
size_t count, loff_t *ppos)