[media] v4l2-core: drop g/s_priority ops
authorHans Verkuil <hans.verkuil@cisco.com>
Tue, 3 Feb 2015 13:46:56 +0000 (10:46 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 2 Mar 2015 20:09:43 +0000 (17:09 -0300)
The handling of VIDIOC_G/S_PRIORITY is now entirely done by the V4L2
core, so we can drop the g/s_priority ioctl ops.

We do have to make sure though that when S_PRIORITY is called we check
that the driver used struct v4l2_fh. This check can be removed once all
drivers are converted to that structure.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/v4l2-core/v4l2-dev.c
drivers/media/v4l2-core/v4l2-ioctl.c
include/media/v4l2-ioctl.h

index 9f4538ce09c2dbac6e5aae649eb7aaa3eb0c75f0..e2b8b3ed6ef34fb11387d9418252fe9bec1b0eaa 100644 (file)
@@ -532,10 +532,9 @@ static void determine_valid_ioctls(struct video_device *vdev)
        /* vfl_type and vfl_dir independent ioctls */
 
        SET_VALID_IOCTL(ops, VIDIOC_QUERYCAP, vidioc_querycap);
-       if (ops->vidioc_g_priority)
-               set_bit(_IOC_NR(VIDIOC_G_PRIORITY), valid_ioctls);
-       if (ops->vidioc_s_priority)
-               set_bit(_IOC_NR(VIDIOC_S_PRIORITY), valid_ioctls);
+       set_bit(_IOC_NR(VIDIOC_G_PRIORITY), valid_ioctls);
+       set_bit(_IOC_NR(VIDIOC_S_PRIORITY), valid_ioctls);
+
        /* Note: the control handler can also be passed through the filehandle,
           and that can't be tested here. If the bit for these control ioctls
           is set, then the ioctl is valid. But if it is 0, then it can still
index b08407225db14ec7723f89dcecbb4bea722de6f1..09ad8ddfaaf9cdc14d382442b76426a1eae4de0a 100644 (file)
@@ -1046,8 +1046,6 @@ static int v4l_g_priority(const struct v4l2_ioctl_ops *ops,
        struct video_device *vfd;
        u32 *p = arg;
 
-       if (ops->vidioc_g_priority)
-               return ops->vidioc_g_priority(file, fh, arg);
        vfd = video_devdata(file);
        *p = v4l2_prio_max(vfd->prio);
        return 0;
@@ -1060,9 +1058,9 @@ static int v4l_s_priority(const struct v4l2_ioctl_ops *ops,
        struct v4l2_fh *vfh;
        u32 *p = arg;
 
-       if (ops->vidioc_s_priority)
-               return ops->vidioc_s_priority(file, fh, *p);
        vfd = video_devdata(file);
+       if (!test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags))
+               return -ENOTTY;
        vfh = file->private_data;
        return v4l2_prio_change(vfd->prio, &vfh->prio, *p);
 }
index 8537983b9b226b6c3772f65b0a47b52d37d2c0fb..8fbbd76d78e84fdea1ecc5e41a195b15bceba8fb 100644 (file)
@@ -23,12 +23,6 @@ struct v4l2_ioctl_ops {
        /* VIDIOC_QUERYCAP handler */
        int (*vidioc_querycap)(struct file *file, void *fh, struct v4l2_capability *cap);
 
-       /* Priority handling */
-       int (*vidioc_g_priority)   (struct file *file, void *fh,
-                                   enum v4l2_priority *p);
-       int (*vidioc_s_priority)   (struct file *file, void *fh,
-                                   enum v4l2_priority p);
-
        /* VIDIOC_ENUM_FMT handlers */
        int (*vidioc_enum_fmt_vid_cap)     (struct file *file, void *fh,
                                            struct v4l2_fmtdesc *f);