mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-17 22:05:08 +00:00
[media] pwc: convert to video_ioctl2
Tested with a Logitech QuickCam Pro 4000. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
b577f962d2
commit
afa3852161
@ -151,8 +151,6 @@ static int pwc_video_close(struct file *file);
|
||||
static ssize_t pwc_video_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos);
|
||||
static unsigned int pwc_video_poll(struct file *file, poll_table *wait);
|
||||
static long pwc_video_ioctl(struct file *file,
|
||||
unsigned int ioctlnr, unsigned long arg);
|
||||
static int pwc_video_mmap(struct file *file, struct vm_area_struct *vma);
|
||||
|
||||
static const struct v4l2_file_operations pwc_fops = {
|
||||
@ -162,7 +160,7 @@ static const struct v4l2_file_operations pwc_fops = {
|
||||
.read = pwc_video_read,
|
||||
.poll = pwc_video_poll,
|
||||
.mmap = pwc_video_mmap,
|
||||
.unlocked_ioctl = pwc_video_ioctl,
|
||||
.unlocked_ioctl = video_ioctl2,
|
||||
};
|
||||
static struct video_device pwc_template = {
|
||||
.name = "Philips Webcam", /* Filled in later */
|
||||
@ -1378,23 +1376,6 @@ static unsigned int pwc_video_poll(struct file *file, poll_table *wait)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static long pwc_video_ioctl(struct file *file,
|
||||
unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct video_device *vdev = file->private_data;
|
||||
struct pwc_device *pdev;
|
||||
long r = -ENODEV;
|
||||
|
||||
if (!vdev)
|
||||
goto out;
|
||||
pdev = video_get_drvdata(vdev);
|
||||
|
||||
if (!pdev->unplugged)
|
||||
r = video_usercopy(file, cmd, arg, pwc_video_do_ioctl);
|
||||
out:
|
||||
return r;
|
||||
}
|
||||
|
||||
static int pwc_video_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
{
|
||||
struct video_device *vdev = file->private_data;
|
||||
@ -1744,6 +1725,7 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id
|
||||
memcpy(pdev->vdev, &pwc_template, sizeof(pwc_template));
|
||||
pdev->vdev->parent = &intf->dev;
|
||||
pdev->vdev->lock = &pdev->modlock;
|
||||
pdev->vdev->ioctl_ops = &pwc_ioctl_ops;
|
||||
strcpy(pdev->vdev->name, name);
|
||||
video_set_drvdata(pdev->vdev, pdev);
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -339,8 +339,7 @@ extern int pwc_camera_power(struct pwc_device *pdev, int power);
|
||||
/* Private ioctl()s; see pwc-ioctl.h */
|
||||
extern long pwc_ioctl(struct pwc_device *pdev, unsigned int cmd, void *arg);
|
||||
|
||||
/** Functions in pwc-v4l.c */
|
||||
extern long pwc_video_do_ioctl(struct file *file, unsigned int cmd, void *arg);
|
||||
extern const struct v4l2_ioctl_ops pwc_ioctl_ops;
|
||||
|
||||
/** pwc-uncompress.c */
|
||||
/* Expand frame to image, possibly including decompression. Uses read_frame and fill_image */
|
||||
|
Loading…
x
Reference in New Issue
Block a user