From ee6619db19d8e45397f1f052df23ab767bce5db6 Mon Sep 17 00:00:00 2001 From: Gerd Knorr Date: Mon, 8 Apr 2002 15:32:47 +0200 Subject: [PATCH] adapt v4l usb cam drivers to 2.4.8-pre1 videodev fixes. --- drivers/usb/media/dsbr100.c | 14 +++++++++----- drivers/usb/media/ov511.c | 13 +++++++------ drivers/usb/media/pwc-if.c | 16 +++++++++++----- drivers/usb/media/se401.c | 13 +++++++++---- drivers/usb/media/stv680.c | 13 +++++++++---- drivers/usb/media/vicam.c | 13 +++++++++---- 6 files changed, 54 insertions(+), 28 deletions(-) diff --git a/drivers/usb/media/dsbr100.c b/drivers/usb/media/dsbr100.c index 18233946e933..ce61bfcbda8b 100644 --- a/drivers/usb/media/dsbr100.c +++ b/drivers/usb/media/dsbr100.c @@ -82,7 +82,7 @@ static void *usb_dsbr100_probe(struct usb_device *dev, unsigned int ifnum, const struct usb_device_id *id); static void usb_dsbr100_disconnect(struct usb_device *dev, void *ptr); static int usb_dsbr100_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, void *arg); + unsigned int cmd, unsigned long arg); static int usb_dsbr100_open(struct inode *inode, struct file *file); static int usb_dsbr100_close(struct inode *inode, struct file *file); @@ -103,7 +103,7 @@ static struct file_operations usb_dsbr100_fops = { owner: THIS_MODULE, open: usb_dsbr100_open, release: usb_dsbr100_close, - ioctl: video_generic_ioctl, + ioctl: usb_dsbr100_ioctl, llseek: no_llseek, }; static struct video_device usb_dsbr100_radio= @@ -113,7 +113,6 @@ static struct video_device usb_dsbr100_radio= type: VID_TYPE_TUNER, hardware: VID_HARDWARE_AZTECH, fops: &usb_dsbr100_fops, - kernel_ioctl: usb_dsbr100_ioctl, }; static int users = 0; @@ -212,8 +211,8 @@ static void usb_dsbr100_disconnect(struct usb_device *dev, void *ptr) unlock_kernel(); } -static int usb_dsbr100_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, void *arg) +static int usb_dsbr100_do_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, void *arg) { struct video_device *dev = video_devdata(file); usb_dsbr100 *radio=dev->priv; @@ -299,6 +298,11 @@ static int usb_dsbr100_ioctl(struct inode *inode, struct file *file, } } +static int usb_dsbr100_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, unsigned long arg) +{ + return video_usercopy(inode, file, cmd, arg, usb_dsbr100_do_ioctl); +} static int usb_dsbr100_open(struct inode *inode, struct file *file) { diff --git a/drivers/usb/media/ov511.c b/drivers/usb/media/ov511.c index be79476373d7..02b305c8eede 100644 --- a/drivers/usb/media/ov511.c +++ b/drivers/usb/media/ov511.c @@ -4555,9 +4555,11 @@ ov51x_v4l1_close(struct inode *inode, struct file *file) /* Do not call this function directly! */ static int -ov51x_v4l1_ioctl_internal(struct usb_ov511 *ov, unsigned int cmd, - void *arg) +ov51x_v4l1_ioctl_internal(struct inode *inode, struct file *file, + unsigned int cmd, void *arg) { + struct video_device *vdev = file->private_data; + struct usb_ov511 *ov = vdev->priv; PDEBUG(5, "IOCtl: 0x%X", cmd); if (!ov->dev) @@ -5067,7 +5069,7 @@ redo: static int ov51x_v4l1_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, void *arg) + unsigned int cmd, unsigned long arg) { struct video_device *vdev = file->private_data; struct usb_ov511 *ov = vdev->priv; @@ -5076,7 +5078,7 @@ ov51x_v4l1_ioctl(struct inode *inode, struct file *file, if (down_interruptible(&ov->lock)) return -EINTR; - rc = ov51x_v4l1_ioctl_internal(ov, cmd, arg); + rc = video_usercopy(inode, file, cmd, arg, ov51x_v4l1_ioctl_internal); up(&ov->lock); return rc; @@ -5284,7 +5286,7 @@ static struct file_operations ov511_fops = { release: ov51x_v4l1_close, read: ov51x_v4l1_read, mmap: ov51x_v4l1_mmap, - ioctl: video_generic_ioctl, + ioctl: ov51x_v4l1_ioctl, llseek: no_llseek, }; @@ -5294,7 +5296,6 @@ static struct video_device vdev_template = { type: VID_TYPE_CAPTURE, hardware: VID_HARDWARE_OV511, fops: &ov511_fops, - kernel_ioctl: ov51x_v4l1_ioctl, }; #if defined(CONFIG_PROC_FS) && defined(CONFIG_VIDEO_PROC_FS) diff --git a/drivers/usb/media/pwc-if.c b/drivers/usb/media/pwc-if.c index dd81ac1ce24a..915363e95ece 100644 --- a/drivers/usb/media/pwc-if.c +++ b/drivers/usb/media/pwc-if.c @@ -126,7 +126,7 @@ static int pwc_video_read(struct file *file, char *buf, size_t count, loff_t *ppos); static unsigned int pwc_video_poll(struct file *file, poll_table *wait); static int pwc_video_ioctl(struct inode *inode, struct file *file, - unsigned int ioctlnr, void *arg); + unsigned int ioctlnr, unsigned long arg); static int pwc_video_mmap(struct file *file, struct vm_area_struct *vma); static struct file_operations pwc_fops = { @@ -136,7 +136,7 @@ static struct file_operations pwc_fops = { read: pwc_video_read, poll: pwc_video_poll, mmap: pwc_video_mmap, - ioctl: video_generic_ioctl, + ioctl: pwc_video_ioctl, llseek: no_llseek, }; static struct video_device pwc_template = { @@ -145,7 +145,6 @@ static struct video_device pwc_template = { type: VID_TYPE_CAPTURE, hardware: VID_HARDWARE_PWC, fops: &pwc_fops, - kernel_ioctl: pwc_video_ioctl, }; /***************************************************************************/ @@ -1171,8 +1170,8 @@ static unsigned int pwc_video_poll(struct file *file, poll_table *wait) return 0; } -static int pwc_video_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, void *arg) +static int pwc_video_do_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, void *arg) { struct video_device *vdev = file->private_data; struct pwc_device *pdev; @@ -1494,6 +1493,13 @@ static int pwc_video_ioctl(struct inode *inode, struct file *file, return 0; } +static int pwc_video_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, unsigned long arg) +{ + return video_usercopy(inode, file, cmd, arg, pwc_video_do_ioctl); +} + + static int pwc_video_mmap(struct file *file, struct vm_area_struct *vma) { struct video_device *vdev = file->private_data; diff --git a/drivers/usb/media/se401.c b/drivers/usb/media/se401.c index 8059a6be9296..229098a03934 100644 --- a/drivers/usb/media/se401.c +++ b/drivers/usb/media/se401.c @@ -1046,8 +1046,8 @@ static int se401_close(struct inode *inode, struct file *file) return 0; } -static int se401_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, void *arg) +static int se401_do_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, void *arg) { struct video_device *vdev = file->private_data; struct usb_se401 *se401 = (struct usb_se401 *)vdev; @@ -1210,6 +1210,12 @@ static int se401_ioctl(struct inode *inode, struct file *file, return 0; } +static int se401_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, unsigned long arg) +{ + return video_usercopy(inode, file, cmd, arg, se401_do_ioctl); +} + static int se401_read(struct file *file, char *buf, size_t count, loff_t *ppos) { @@ -1294,7 +1300,7 @@ static struct file_operations se401_fops = { release: se401_close, read: se401_read, mmap: se401_mmap, - ioctl: video_generic_ioctl, + ioctl: se401_ioctl, llseek: no_llseek, }; static struct video_device se401_template = { @@ -1303,7 +1309,6 @@ static struct video_device se401_template = { type: VID_TYPE_CAPTURE, hardware: VID_HARDWARE_SE401, fops: &se401_fops, - kernel_ioctl: se401_ioctl, }; diff --git a/drivers/usb/media/stv680.c b/drivers/usb/media/stv680.c index 7da7bdf4ccfb..b2b7a5bb5070 100644 --- a/drivers/usb/media/stv680.c +++ b/drivers/usb/media/stv680.c @@ -1171,8 +1171,8 @@ static int stv_close (struct inode *inode, struct file *file) return 0; } -static int stv680_ioctl (struct inode *inode, struct file *file, - unsigned int cmd, void *arg) +static int stv680_do_ioctl (struct inode *inode, struct file *file, + unsigned int cmd, void *arg) { struct video_device *vdev = file->private_data; struct usb_stv *stv680 = (struct usb_stv *) vdev; @@ -1342,6 +1342,12 @@ static int stv680_ioctl (struct inode *inode, struct file *file, return 0; } +static int stv680_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, unsigned long arg) +{ + return video_usercopy(inode, file, cmd, arg, stv680_do_ioctl); +} + static int stv680_mmap (struct file *file, struct vm_area_struct *vma) { struct video_device *dev = file->private_data; @@ -1434,7 +1440,7 @@ static struct file_operations stv680_fops = { release: stv_close, read: stv680_read, mmap: stv680_mmap, - ioctl: video_generic_ioctl, + ioctl: stv680_ioctl, llseek: no_llseek, }; static struct video_device stv680_template = { @@ -1443,7 +1449,6 @@ static struct video_device stv680_template = { type: VID_TYPE_CAPTURE, hardware: VID_HARDWARE_SE401, fops: &stv680_fops, - kernel_ioctl: stv680_ioctl, }; static void *__devinit stv680_probe (struct usb_device *dev, unsigned int ifnum, const struct usb_device_id *id) diff --git a/drivers/usb/media/vicam.c b/drivers/usb/media/vicam.c index 03ffaed91e73..bed0fa5caeb2 100644 --- a/drivers/usb/media/vicam.c +++ b/drivers/usb/media/vicam.c @@ -483,8 +483,8 @@ static int vicam_v4l_read(struct file *file, char *user_buf, return buflen; } -static int vicam_v4l_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, void *arg) +static int vicam_v4l_do_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, void *arg) { struct video_device *vdev = file->private_data; struct usb_vicam *vicam = (struct usb_vicam *)vdev; @@ -593,6 +593,12 @@ static int vicam_v4l_ioctl(struct inode *inode, struct file *file, return ret; } +static int vicam_v4l_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, unsigned long arg) +{ + return video_usercopy(inode, file, cmd, arg, vicam_v4l_do_ioctl); +} + static int vicam_v4l_mmap(struct file *file, struct vm_area_struct *vma) { struct video_device *vdev = file->private_data; @@ -639,7 +645,7 @@ static struct file_operations vicam_fops = { release: vicam_v4l_close, read: vicam_v4l_read, mmap: vicam_v4l_mmap, - ioctl: video_generic_ioctl, + ioctl: vicam_v4l_ioctl, llseek: no_llseek, }; static struct video_device vicam_template = { @@ -648,7 +654,6 @@ static struct video_device vicam_template = { type: VID_TYPE_CAPTURE, hardware: VID_HARDWARE_SE401, /* need to ask for own id */ fops: &vicam_fops, - kernel_ioctl: vicam_v4l_ioctl, }; /****************************************************************************** -- 2.39.5