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);
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=
type: VID_TYPE_TUNER,
hardware: VID_HARDWARE_AZTECH,
fops: &usb_dsbr100_fops,
- kernel_ioctl: usb_dsbr100_ioctl,
};
static int users = 0;
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;
}
}
+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)
{
/* 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)
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;
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;
release: ov51x_v4l1_close,
read: ov51x_v4l1_read,
mmap: ov51x_v4l1_mmap,
- ioctl: video_generic_ioctl,
+ ioctl: ov51x_v4l1_ioctl,
llseek: no_llseek,
};
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)
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 = {
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 = {
type: VID_TYPE_CAPTURE,
hardware: VID_HARDWARE_PWC,
fops: &pwc_fops,
- kernel_ioctl: pwc_video_ioctl,
};
/***************************************************************************/
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;
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;
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;
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)
{
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 = {
type: VID_TYPE_CAPTURE,
hardware: VID_HARDWARE_SE401,
fops: &se401_fops,
- kernel_ioctl: se401_ioctl,
};
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;
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;
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 = {
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)
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;
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;
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 = {
type: VID_TYPE_CAPTURE,
hardware: VID_HARDWARE_SE401, /* need to ask for own id */
fops: &vicam_fops,
- kernel_ioctl: vicam_v4l_ioctl,
};
/******************************************************************************