diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-13 11:58:21 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-13 11:58:21 -0300 |
commit | cd67e78204d5af9dd57eec434cd35517d3c1e2b3 (patch) | |
tree | 136cede89dba935147b20040b839649910276359 /linux/drivers/media/video/videobuf-core.c | |
parent | df4f33ecc5bdff1b94488720bc111a1893b87248 (diff) | |
download | mediapointer-dvb-s2-cd67e78204d5af9dd57eec434cd35517d3c1e2b3.tar.gz mediapointer-dvb-s2-cd67e78204d5af9dd57eec434cd35517d3c1e2b3.tar.bz2 |
videbuf-vmalloc: Corrects mmap code
From: Mauro Carvalho Chehab <mchehab@infradead.org>
There were some bugs on videobuf-vmalloc.
Basically, remap were called with a wrong parameter. Due to that, a later remap
were needed, generating the need of some hacks on videobuf-vmalloc and
videobuf-core.
This patch fixes the remap and removes the hacks.
TODO:
- V4L2_MEMORY_USERPTR is not implemented yet. This method should be
properly implemented, in order to work with a few userspace applications.
- The driver also doesn't implement V4L2_MEMORY_OVERLAY. This method is used
only by a few applications, and are becaming obsolete, due to the increment
of cpu performance. So, most apps prefer to retrieve data to an internal
buffer, doing some processing like de-interlacing.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/video/videobuf-core.c')
-rw-r--r-- | linux/drivers/media/video/videobuf-core.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/linux/drivers/media/video/videobuf-core.c b/linux/drivers/media/video/videobuf-core.c index 52d9a766c..660d28972 100644 --- a/linux/drivers/media/video/videobuf-core.c +++ b/linux/drivers/media/video/videobuf-core.c @@ -92,20 +92,6 @@ int videobuf_iolock(struct videobuf_queue *q, struct videobuf_buffer *vb, MAGIC_CHECK(vb->magic, MAGIC_BUFFER); MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); - /* This is required to avoid OOPS on some cases, - since mmap_mapper() method should be called before _iolock. - On some cases, the mmap_mapper() is called only after scheduling. - */ - if (vb->memory == V4L2_MEMORY_MMAP) { - wait_event_timeout(vb->done, q->is_mmapped, - msecs_to_jiffies(100)); - if (!q->is_mmapped) { - printk(KERN_ERR - "Error: mmap_mapper() never called!\n"); - return -EINVAL; - } - } - return CALL(q, iolock, q, vb, fbuf); } |