Commit 1dc8ddfd authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab

[media] uvcvideo: Deprecate UVCIOC_CTRL_{ADD,MAP_OLD,GET,SET}

Those ioctls are deprecated, list them in the features removal schedule
for 2.6.42.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent fe78d187
...@@ -580,3 +580,26 @@ Why: These legacy callbacks should no longer be used as i2c-core offers ...@@ -580,3 +580,26 @@ Why: These legacy callbacks should no longer be used as i2c-core offers
Who: Jean Delvare <khali@linux-fr.org> Who: Jean Delvare <khali@linux-fr.org>
---------------------------- ----------------------------
What: Support for UVCIOC_CTRL_ADD in the uvcvideo driver
When: 2.6.42
Why: The information passed to the driver by this ioctl is now queried
dynamically from the device.
Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
----------------------------
What: Support for UVCIOC_CTRL_MAP_OLD in the uvcvideo driver
When: 2.6.42
Why: Used only by applications compiled against older driver versions.
Superseded by UVCIOC_CTRL_MAP which supports V4L2 menu controls.
Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
----------------------------
What: Support for UVCIOC_CTRL_GET and UVCIOC_CTRL_SET in the uvcvideo driver
When: 2.6.42
Why: Superseded by the UVCIOC_CTRL_QUERY ioctl.
Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
----------------------------
...@@ -538,6 +538,20 @@ static int uvc_v4l2_release(struct file *file) ...@@ -538,6 +538,20 @@ static int uvc_v4l2_release(struct file *file)
return 0; return 0;
} }
static void uvc_v4l2_ioctl_warn(void)
{
static int warned;
if (warned)
return;
uvc_printk(KERN_INFO, "Deprecated UVCIOC_CTRL_{ADD,MAP_OLD,GET,SET} "
"ioctls will be removed in 2.6.42.\n");
uvc_printk(KERN_INFO, "See http://www.ideasonboard.org/uvc/upgrade/ "
"for upgrade instructions.\n");
warned = 1;
}
static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg) static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg)
{ {
struct video_device *vdev = video_devdata(file); struct video_device *vdev = video_devdata(file);
...@@ -1018,12 +1032,16 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg) ...@@ -1018,12 +1032,16 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg)
uvc_trace(UVC_TRACE_IOCTL, "Unsupported ioctl 0x%08x\n", cmd); uvc_trace(UVC_TRACE_IOCTL, "Unsupported ioctl 0x%08x\n", cmd);
return -EINVAL; return -EINVAL;
/* Dynamic controls. */ /* Dynamic controls. UVCIOC_CTRL_ADD, UVCIOC_CTRL_MAP_OLD,
* UVCIOC_CTRL_GET and UVCIOC_CTRL_SET are deprecated and scheduled for
* removal in 2.6.42.
*/
case UVCIOC_CTRL_ADD: case UVCIOC_CTRL_ADD:
/* Legacy ioctl, kept for API compatibility reasons */ uvc_v4l2_ioctl_warn();
return -EEXIST; return -EEXIST;
case UVCIOC_CTRL_MAP_OLD: case UVCIOC_CTRL_MAP_OLD:
uvc_v4l2_ioctl_warn();
case UVCIOC_CTRL_MAP: case UVCIOC_CTRL_MAP:
return uvc_ioctl_ctrl_map(chain, arg, return uvc_ioctl_ctrl_map(chain, arg,
cmd == UVCIOC_CTRL_MAP_OLD); cmd == UVCIOC_CTRL_MAP_OLD);
...@@ -1041,6 +1059,7 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg) ...@@ -1041,6 +1059,7 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg)
.data = xctrl->data, .data = xctrl->data,
}; };
uvc_v4l2_ioctl_warn();
return uvc_xu_ctrl_query(chain, &xqry); return uvc_xu_ctrl_query(chain, &xqry);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment