Commit 9190d191 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] v4l2 core: return -ENOTTY if an ioctl doesn't exist

Currently, -EINVAL is used to return either when an IOCTL is not
implemented, or if the ioctl was not implemented.
Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent c28f53f6
...@@ -30,13 +30,6 @@ ...@@ -30,13 +30,6 @@
allowed range. This is a widely used error code. See the individual allowed range. This is a widely used error code. See the individual
ioctl requests for specific causes.</entry> ioctl requests for specific causes.</entry>
</row> </row>
<row>
<entry>EINVAL or ENOTTY</entry>
<entry>The ioctl is not supported by the driver, actually meaning that
the required functionality is not available, or the file
descriptor is not for a media device. The usage of EINVAL is
deprecated and will be fixed on a latter patch.</entry>
</row>
<row> <row>
<entry>ENODEV</entry> <entry>ENODEV</entry>
<entry>Device not found or was removed.</entry> <entry>Device not found or was removed.</entry>
...@@ -45,6 +38,12 @@ ...@@ -45,6 +38,12 @@
<entry>ENOMEM</entry> <entry>ENOMEM</entry>
<entry>There's not enough memory to handle the desired operation.</entry> <entry>There's not enough memory to handle the desired operation.</entry>
</row> </row>
<row>
<entry>ENOTTY</entry>
<entry>The ioctl is not supported by the driver, actually meaning that
the required functionality is not available, or the file
descriptor is not for a media device.</entry>
</row>
<row> <row>
<entry>ENOSPC</entry> <entry>ENOSPC</entry>
<entry>On USB devices, the stream ioctl's can return this error, meaning <entry>On USB devices, the stream ioctl's can return this error, meaning
......
...@@ -132,7 +132,9 @@ applications. --> ...@@ -132,7 +132,9 @@ applications. -->
<date>2011-06-27</date> <date>2011-06-27</date>
<authorinitials>mcc, po</authorinitials> <authorinitials>mcc, po</authorinitials>
<revremark>Documented that VIDIOC_QUERYCAP now returns a per-subsystem version instead of a per-driver one.</revremark> <revremark>Documented that VIDIOC_QUERYCAP now returns a per-subsystem version instead of a per-driver one.</revremark>
<revremark>Standardize an error code for invalid ioctl.</revremark>
</revision> </revision>
<revision> <revision>
<revnumber>2.6.39</revnumber> <revnumber>2.6.39</revnumber>
<date>2011-03-01</date> <date>2011-03-01</date>
......
...@@ -543,12 +543,12 @@ static long __video_do_ioctl(struct file *file, ...@@ -543,12 +543,12 @@ static long __video_do_ioctl(struct file *file,
struct v4l2_fh *vfh = NULL; struct v4l2_fh *vfh = NULL;
struct v4l2_format f_copy; struct v4l2_format f_copy;
int use_fh_prio = 0; int use_fh_prio = 0;
long ret = -EINVAL; long ret = -ENOTTY;
if (ops == NULL) { if (ops == NULL) {
printk(KERN_WARNING "videodev: \"%s\" has no ioctl_ops.\n", printk(KERN_WARNING "videodev: \"%s\" has no ioctl_ops.\n",
vfd->name); vfd->name);
return -EINVAL; return ret;
} }
if ((vfd->debug & V4L2_DEBUG_IOCTL) && if ((vfd->debug & V4L2_DEBUG_IOCTL) &&
......
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