提交 ce5610bc 编写于 作者: H Hans de Goede 提交者: Mauro Carvalho Chehab

[media] gspca_main: Allow switching from read to mmap / userptr mode

Some applications (xawtv, qv4l2) mix read and mmap calls. Allow switching
from read mode back to mmap mode (by doing a reqbufs).
Signed-off-by: NHans de Goede <hdegoede@redhat.com>
Acked-by: NJean-Francois Moine <moinejf@free.fr>
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 ee362991
......@@ -1497,6 +1497,7 @@ static int vidioc_reqbufs(struct file *file, void *priv,
return -ERESTARTSYS;
if (gspca_dev->memory != GSPCA_MEMORY_NO
&& gspca_dev->memory != GSPCA_MEMORY_READ
&& gspca_dev->memory != rb->memory) {
ret = -EBUSY;
goto out;
......@@ -1525,6 +1526,9 @@ static int vidioc_reqbufs(struct file *file, void *priv,
gspca_stream_off(gspca_dev);
mutex_unlock(&gspca_dev->usb_lock);
}
/* Don't restart the stream when switching from read to mmap mode */
if (gspca_dev->memory == GSPCA_MEMORY_READ)
streaming = 0;
/* free the previous allocated buffers, if any */
if (gspca_dev->nframes != 0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册