V4L/DVB: v4l videobuf: remove mmap_free callback
Remove the mmap_free callback from struct videobuf_qtype_ops. All implementations of this callback do the same trivial check: return -EBUSY if any buffer is mmapped. That can also be tested in the videobuf core. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
33435167e6
Коммит
53aaf07637
|
@ -311,20 +311,18 @@ static void videobuf_status(struct videobuf_queue *q, struct v4l2_buffer *b,
|
|||
static int __videobuf_mmap_free(struct videobuf_queue *q)
|
||||
{
|
||||
int i;
|
||||
int rc;
|
||||
|
||||
if (!q)
|
||||
return 0;
|
||||
|
||||
MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS);
|
||||
|
||||
rc = CALL(q, mmap_free, q);
|
||||
for (i = 0; i < VIDEO_MAX_FRAME; i++)
|
||||
if (q->bufs[i] && q->bufs[i]->map)
|
||||
return -EBUSY;
|
||||
|
||||
q->is_mmapped = 0;
|
||||
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
|
||||
for (i = 0; i < VIDEO_MAX_FRAME; i++) {
|
||||
if (NULL == q->bufs[i])
|
||||
continue;
|
||||
|
@ -333,7 +331,7 @@ static int __videobuf_mmap_free(struct videobuf_queue *q)
|
|||
q->bufs[i] = NULL;
|
||||
}
|
||||
|
||||
return rc;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int videobuf_mmap_free(struct videobuf_queue *q)
|
||||
|
|
|
@ -263,19 +263,6 @@ static int __videobuf_iolock(struct videobuf_queue *q,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int __videobuf_mmap_free(struct videobuf_queue *q)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
dev_dbg(q->dev, "%s\n", __func__);
|
||||
for (i = 0; i < VIDEO_MAX_FRAME; i++) {
|
||||
if (q->bufs[i] && q->bufs[i]->map)
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __videobuf_mmap_mapper(struct videobuf_queue *q,
|
||||
struct vm_area_struct *vma)
|
||||
{
|
||||
|
@ -424,7 +411,6 @@ static struct videobuf_qtype_ops qops = {
|
|||
|
||||
.alloc = __videobuf_alloc,
|
||||
.iolock = __videobuf_iolock,
|
||||
.mmap_free = __videobuf_mmap_free,
|
||||
.mmap_mapper = __videobuf_mmap_mapper,
|
||||
.video_copy_to_user = __videobuf_copy_to_user,
|
||||
.copy_stream = __videobuf_copy_stream,
|
||||
|
|
|
@ -548,20 +548,6 @@ static int __videobuf_sync(struct videobuf_queue *q,
|
|||
return videobuf_dma_sync(q, &mem->dma);
|
||||
}
|
||||
|
||||
static int __videobuf_mmap_free(struct videobuf_queue *q)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < VIDEO_MAX_FRAME; i++) {
|
||||
if (q->bufs[i]) {
|
||||
if (q->bufs[i]->map)
|
||||
return -EBUSY;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __videobuf_mmap_mapper(struct videobuf_queue *q,
|
||||
struct vm_area_struct *vma)
|
||||
{
|
||||
|
@ -711,7 +697,6 @@ static struct videobuf_qtype_ops sg_ops = {
|
|||
.alloc = __videobuf_alloc,
|
||||
.iolock = __videobuf_iolock,
|
||||
.sync = __videobuf_sync,
|
||||
.mmap_free = __videobuf_mmap_free,
|
||||
.mmap_mapper = __videobuf_mmap_mapper,
|
||||
.video_copy_to_user = __videobuf_copy_to_user,
|
||||
.copy_stream = __videobuf_copy_stream,
|
||||
|
|
|
@ -235,21 +235,6 @@ static int __videobuf_sync(struct videobuf_queue *q,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int __videobuf_mmap_free(struct videobuf_queue *q)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
dprintk(1, "%s\n", __func__);
|
||||
for (i = 0; i < VIDEO_MAX_FRAME; i++) {
|
||||
if (q->bufs[i]) {
|
||||
if (q->bufs[i]->map)
|
||||
return -EBUSY;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __videobuf_mmap_mapper(struct videobuf_queue *q,
|
||||
struct vm_area_struct *vma)
|
||||
{
|
||||
|
@ -385,7 +370,6 @@ static struct videobuf_qtype_ops qops = {
|
|||
.alloc = __videobuf_alloc,
|
||||
.iolock = __videobuf_iolock,
|
||||
.sync = __videobuf_sync,
|
||||
.mmap_free = __videobuf_mmap_free,
|
||||
.mmap_mapper = __videobuf_mmap_mapper,
|
||||
.video_copy_to_user = __videobuf_copy_to_user,
|
||||
.copy_stream = __videobuf_copy_stream,
|
||||
|
|
|
@ -144,7 +144,6 @@ struct videobuf_qtype_ops {
|
|||
size_t pos,
|
||||
int vbihack,
|
||||
int nonblocking);
|
||||
int (*mmap_free) (struct videobuf_queue *q);
|
||||
int (*mmap_mapper) (struct videobuf_queue *q,
|
||||
struct vm_area_struct *vma);
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче