ccflags-y += -DEASYCAP_IS_VIDEODEV_CLIENT
ccflags-y += -DEASYCAP_NEEDS_V4L2_DEVICE_H
ccflags-y += -DEASYCAP_NEEDS_V4L2_FOPS
-ccflags-y += -DEASYCAP_NEEDS_UNLOCKED_IOCTL
* EASYCAP_NEEDS_USBVIDEO_H
* EASYCAP_NEEDS_V4L2_DEVICE_H
* EASYCAP_NEEDS_V4L2_FOPS
- * EASYCAP_NEEDS_UNLOCKED_IOCTL
* EASYCAP_SILENT
*
* IF REQUIRED THEY MUST BE EXTERNALLY DEFINED, FOR EXAMPLE AS COMPILER
* VIDEO FUNCTION PROTOTYPES
*/
/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
-long easycap_ioctl_noinode(struct file *, unsigned int, unsigned long);
-int easycap_ioctl(struct inode *, struct file *, unsigned int, unsigned long);
-
+long easycap_unlocked_ioctl(struct file *, unsigned int, unsigned long);
int easycap_dqbuf(struct easycap *, int);
int submit_video_urbs(struct easycap *);
int kill_video_urbs(struct easycap *);
SAM("WARNING: failed to adjust mute: control not found\n");
return -ENOENT;
}
-/*****************************************************************************/
-/*vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv*/
-#if ((defined(EASYCAP_IS_VIDEODEV_CLIENT)) || \
- (defined(EASYCAP_NEEDS_UNLOCKED_IOCTL)))
-long
-easycap_ioctl_noinode(struct file *file, unsigned int cmd, unsigned long arg) {
- return (long)easycap_ioctl(NULL, file, cmd, arg);
-}
-#endif /*EASYCAP_IS_VIDEODEV_CLIENT||EASYCAP_NEEDS_UNLOCKED_IOCTL*/
-/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
/*---------------------------------------------------------------------------*/
-int
-easycap_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, unsigned long arg)
+long easycap_unlocked_ioctl(struct file *file,
+ unsigned int cmd, unsigned long arg)
{
struct easycap *peasycap;
struct usb_device *p;
.owner = THIS_MODULE,
.open = easycap_open,
.release = easycap_release,
-#if defined(EASYCAP_NEEDS_UNLOCKED_IOCTL)
- .unlocked_ioctl = easycap_ioctl_noinode,
-#else
- .ioctl = easycap_ioctl,
-#endif /*EASYCAP_NEEDS_UNLOCKED_IOCTL*/
+ .unlocked_ioctl = easycap_unlocked_ioctl,
.poll = easycap_poll,
.mmap = easycap_mmap,
.llseek = no_llseek,
.owner = THIS_MODULE,
.open = easycap_open_noinode,
.release = easycap_release_noinode,
-#if defined(EASYCAP_NEEDS_UNLOCKED_IOCTL)
- .unlocked_ioctl = easycap_ioctl_noinode,
-#else
- .ioctl = easycap_ioctl,
-#endif /*EASYCAP_NEEDS_UNLOCKED_IOCTL*/
+ .unlocked_ioctl = easycap_unlocked_ioctl,
.poll = easycap_poll,
.mmap = easycap_mmap,
};
}
/*---------------------------------------------------------------------------*/
-static int easyoss_ioctl(struct inode *inode, struct file *file,
+static long easyoss_unlocked_ioctl(struct file *file,
unsigned int cmd, unsigned long arg)
{
struct easycap *peasycap;
mutex_unlock(&easycapdc60_dongle[kd].mutex_audio);
return 0;
}
-/*vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv*/
-#if ((defined(EASYCAP_IS_VIDEODEV_CLIENT)) || \
- (defined(EASYCAP_NEEDS_UNLOCKED_IOCTL)))
-static long easyoss_ioctl_noinode(struct file *file,
- unsigned int cmd, unsigned long arg)
-{
- return (long)easyoss_ioctl(NULL, file, cmd, arg);
-}
-#endif /*EASYCAP_IS_VIDEODEV_CLIENT||EASYCAP_NEEDS_UNLOCKED_IOCTL*/
/*****************************************************************************/
const struct file_operations easyoss_fops = {
.owner = THIS_MODULE,
.open = easyoss_open,
.release = easyoss_release,
-#if defined(EASYCAP_NEEDS_UNLOCKED_IOCTL)
- .unlocked_ioctl = easyoss_ioctl_noinode,
-#else
- .ioctl = easyoss_ioctl,
-#endif /*EASYCAP_NEEDS_UNLOCKED_IOCTL*/
+ .unlocked_ioctl = easyoss_unlocked_ioctl,
.read = easyoss_read,
.llseek = no_llseek,
};