mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
staging/easycap: kill EASYCAP_NEEDS_UNLOCKED_IOCTL
we can kill this option for in-kernel driver Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
9306b1bb8b
commit
f2b3c685b9
5 changed files with 7 additions and 43 deletions
|
@ -12,5 +12,4 @@ ccflags-y := -Wall
|
|||
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
|
||||
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
* 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
|
||||
|
@ -511,9 +510,7 @@ __s16 oldaudio;
|
|||
* 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 *);
|
||||
|
|
|
@ -949,20 +949,9 @@ while (0xFFFFFFFF != easycap_control[i1].id) {
|
|||
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;
|
||||
|
|
|
@ -3117,11 +3117,7 @@ static const struct file_operations easycap_fops = {
|
|||
.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,
|
||||
|
@ -3138,11 +3134,7 @@ static const struct v4l2_file_operations v4l2_fops = {
|
|||
.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,
|
||||
};
|
||||
|
|
|
@ -708,7 +708,7 @@ return szret;
|
|||
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
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;
|
||||
|
@ -1000,26 +1000,13 @@ default: {
|
|||
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,
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue