summaryrefslogtreecommitdiff
path: root/drivers/media/video/videobuf-dma-sg.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2007-09-27 18:25:44 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-10-10 00:02:55 -0300
commit851c0c96b2212f48fe51afc1589541b5eae3a544 (patch)
tree0ec4d6019033242fb75e717ca05c1f04d2eca934 /drivers/media/video/videobuf-dma-sg.c
parentcd4765efdd816ac14075fc7d5adf489502e75e1e (diff)
downloadlwn-851c0c96b2212f48fe51afc1589541b5eae3a544.tar.gz
lwn-851c0c96b2212f48fe51afc1589541b5eae3a544.zip
V4L/DVB (6266): videobuf cleanup: mmap check is common to all videobuf. Make it at core
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> http://thread.gmane.org/gmane.comp.video.video4linux/34978/focus=34981 Reviewed-by: Ricardo Cerqueira <v4l@cerqueira.org>
Diffstat (limited to 'drivers/media/video/videobuf-dma-sg.c')
-rw-r--r--drivers/media/video/videobuf-dma-sg.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/drivers/media/video/videobuf-dma-sg.c b/drivers/media/video/videobuf-dma-sg.c
index 3345877c47d4..0939ede831ab 100644
--- a/drivers/media/video/videobuf-dma-sg.c
+++ b/drivers/media/video/videobuf-dma-sg.c
@@ -374,9 +374,9 @@ videobuf_vm_close(struct vm_area_struct *vma)
MAGIC_CHECK(mem->magic,MAGIC_SG_MEM);
- if (mem->map != map)
+ if (q->bufs[i]->map != map)
continue;
- mem->map = NULL;
+ q->bufs[i]->map = NULL;
q->bufs[i]->baddr = 0;
q->ops->buf_release(q,q->bufs[i]);
}
@@ -520,8 +520,7 @@ static int __videobuf_mmap_free(struct videobuf_queue *q)
for (i = 0; i < VIDEO_MAX_FRAME; i++) {
if (q->bufs[i]) {
- struct videbuf_pci_sg_memory *mem=q->bufs[i]->priv;
- if (mem && mem->map)
+ if (q->bufs[i]->map)
return -EBUSY;
}
}
@@ -572,8 +571,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
continue;
if (V4L2_MEMORY_MMAP != q->bufs[last]->memory)
continue;
- mem=q->bufs[last]->priv;
- if (mem->map) {
+ if (q->bufs[last]->map) {
retval = -EBUSY;
goto done;
}
@@ -593,8 +591,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
if (NULL == map)
goto done;
for (size = 0, i = first; i <= last; size += q->bufs[i++]->bsize) {
- mem=q->bufs[i]->priv;
- mem->map = map;
+ q->bufs[i]->map = map;
q->bufs[i]->baddr = vma->vm_start + size;
}
map->count = 1;
@@ -613,16 +610,6 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
return retval;
}
-static int __videobuf_is_mmapped (struct videobuf_buffer *buf)
-{
- struct videbuf_pci_sg_memory *mem=buf->priv;
-
- BUG_ON (!mem);
- MAGIC_CHECK(mem->magic,MAGIC_SG_MEM);
-
- return (mem->map)?1:0;
-}
-
static int __videobuf_copy_to_user ( struct videobuf_queue *q,
char __user *data, size_t count,
int nonblocking )
@@ -678,7 +665,6 @@ static struct videobuf_qtype_ops pci_ops = {
.sync = __videobuf_sync,
.mmap_free = __videobuf_mmap_free,
.mmap_mapper = __videobuf_mmap_mapper,
- .is_mmapped = __videobuf_is_mmapped,
.copy_to_user = __videobuf_copy_to_user,
.copy_stream = __videobuf_copy_stream,
};