mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-19 15:28:26 +07:00
[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: Hans de Goede <hdegoede@redhat.com> Acked-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
ee3629914b
commit
ce5610bca7
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user