summaryrefslogtreecommitdiff
path: root/drivers/media/video/videobuf2-core.c
diff options
context:
space:
mode:
authorMarek Szyprowski <m.szyprowski@samsung.com>2011-03-11 06:07:27 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-03-22 04:54:28 -0300
commit31901a078af29c33c736dcbf815656920e904632 (patch)
treed39614aca1f27ad0aeec8152043198ade75e881f /drivers/media/video/videobuf2-core.c
parenta9bb36aa0d6547aa0ab3d5cfde08e8651bd460bc (diff)
[media] v4l2: vb2: one more fix for REQBUFS()
Return immediately if the target number of buffers is the same as the current one and memory access type doesn't change. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/videobuf2-core.c')
-rw-r--r--drivers/media/video/videobuf2-core.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/media/video/videobuf2-core.c b/drivers/media/video/videobuf2-core.c
index c5f99c7d3979..2baf7dbdc01d 100644
--- a/drivers/media/video/videobuf2-core.c
+++ b/drivers/media/video/videobuf2-core.c
@@ -488,6 +488,13 @@ int vb2_reqbufs(struct vb2_queue *q, struct v4l2_requestbuffers *req)
return -EINVAL;
}
+ /*
+ * If the same number of buffers and memory access method is requested
+ * then return immediately.
+ */
+ if (q->memory == req->memory && req->count == q->num_buffers)
+ return 0;
+
if (req->count == 0 || q->num_buffers != 0 || q->memory != req->memory) {
/*
* We already have buffers allocated, so first check if they