diff options
author | Marek Szyprowski <m.szyprowski@samsung.com> | 2011-03-11 06:07:27 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-03-22 04:54:28 -0300 |
commit | 31901a078af29c33c736dcbf815656920e904632 (patch) | |
tree | d39614aca1f27ad0aeec8152043198ade75e881f | |
parent | a9bb36aa0d6547aa0ab3d5cfde08e8651bd460bc (diff) | |
download | blackbird-op-linux-31901a078af29c33c736dcbf815656920e904632.tar.gz blackbird-op-linux-31901a078af29c33c736dcbf815656920e904632.zip |
[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>
-rw-r--r-- | drivers/media/video/videobuf2-core.c | 7 |
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 |