提交 975f5766 编写于 作者: T Trent Piepho 提交者: Mauro Carvalho Chehab

V4L/DVB (11271): usbvision: Remove buffer type checks from enum_fmt_vid_cap, XXXbuf

The v4l2-ioctl core only allows buffer types for which the corresponding
->vidioc_try_fmt_xxx() methods are defined to be used with
vidioc_(q|dq|query)buf() and vidioc_reqbufs().

Since this driver only defines ->vidioc_try_fmt_vid_cap() the checks can be
removed from vidioc_reqbufs(), vidioc_qbuf(), and vidioc_dqbuf().

The ->vidioc_(s|g|try|enum)_fmt_vid_cap() methods are only called on
VIDEO_CAPTURE buffers.  Thus, there is no need to check or set the buffer's
'type' field since it must already be set to VIDEO_CAPTURE.  So setting the
buffer type in vidioc_enum_fmt_vid_cap() can be removed.
Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 6174523c
...@@ -757,8 +757,7 @@ static int vidioc_reqbufs (struct file *file, ...@@ -757,8 +757,7 @@ static int vidioc_reqbufs (struct file *file,
/* Check input validity: /* Check input validity:
the user must do a VIDEO CAPTURE and MMAP method. */ the user must do a VIDEO CAPTURE and MMAP method. */
if((vr->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) || if (vr->memory != V4L2_MEMORY_MMAP)
(vr->memory != V4L2_MEMORY_MMAP))
return -EINVAL; return -EINVAL;
if(usbvision->streaming == Stream_On) { if(usbvision->streaming == Stream_On) {
...@@ -816,9 +815,6 @@ static int vidioc_qbuf (struct file *file, void *priv, struct v4l2_buffer *vb) ...@@ -816,9 +815,6 @@ static int vidioc_qbuf (struct file *file, void *priv, struct v4l2_buffer *vb)
unsigned long lock_flags; unsigned long lock_flags;
/* FIXME : works only on VIDEO_CAPTURE MODE, MMAP. */ /* FIXME : works only on VIDEO_CAPTURE MODE, MMAP. */
if(vb->type != V4L2_CAP_VIDEO_CAPTURE) {
return -EINVAL;
}
if(vb->index>=usbvision->num_frames) { if(vb->index>=usbvision->num_frames) {
return -EINVAL; return -EINVAL;
} }
...@@ -853,9 +849,6 @@ static int vidioc_dqbuf (struct file *file, void *priv, struct v4l2_buffer *vb) ...@@ -853,9 +849,6 @@ static int vidioc_dqbuf (struct file *file, void *priv, struct v4l2_buffer *vb)
struct usbvision_frame *f; struct usbvision_frame *f;
unsigned long lock_flags; unsigned long lock_flags;
if (vb->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL;
if (list_empty(&(usbvision->outqueue))) { if (list_empty(&(usbvision->outqueue))) {
if (usbvision->streaming == Stream_Idle) if (usbvision->streaming == Stream_Idle)
return -EINVAL; return -EINVAL;
...@@ -921,7 +914,6 @@ static int vidioc_enum_fmt_vid_cap (struct file *file, void *priv, ...@@ -921,7 +914,6 @@ static int vidioc_enum_fmt_vid_cap (struct file *file, void *priv,
if(vfd->index>=USBVISION_SUPPORTED_PALETTES-1) { if(vfd->index>=USBVISION_SUPPORTED_PALETTES-1) {
return -EINVAL; return -EINVAL;
} }
vfd->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
strcpy(vfd->description,usbvision_v4l2_format[vfd->index].desc); strcpy(vfd->description,usbvision_v4l2_format[vfd->index].desc);
vfd->pixelformat = usbvision_v4l2_format[vfd->index].format; vfd->pixelformat = usbvision_v4l2_format[vfd->index].format;
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册