summaryrefslogtreecommitdiff
path: root/drivers/media
diff options
context:
space:
mode:
authorSeung-Woo Kim <sw0312.kim@samsung.com>2015-10-31 17:24:54 +0900
committerSeung-Woo Kim <sw0312.kim@samsung.com>2016-12-14 13:48:22 +0900
commite439b9551813f8e869c3ae30e26a803d5f608b40 (patch)
tree7dd2d91a3f0b474c1fe49abdeacf86631612d368 /drivers/media
parent6303c74be19f942cfac0d2554b612546a630730e (diff)
media: s5p-mfc: set src_bufs_cnt with requested buffer for DMABUF and USERPTR
During start_streaming of output, it checks src_bufs_cnt compared with pb_count. But it is only meaningful for MMAP memory. So this patch fixes to set src_bufs_cnt with requested buffer for non MMAP memory. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_enc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
index 1d1c5ea25087..8b4d1a83d503 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
@@ -1200,6 +1200,8 @@ static int vidioc_reqbufs(struct file *file, void *priv,
mfc_err("error in vb2_reqbufs() for E(S)\n");
return ret;
}
+ if (reqbufs->memory != V4L2_MEMORY_MMAP)
+ ctx->src_bufs_cnt = reqbufs->count;
ctx->output_state = QUEUE_BUFS_REQUESTED;
} else {
mfc_err("invalid buf type\n");
@@ -1892,7 +1894,8 @@ static int s5p_mfc_buf_init(struct vb2_buffer *vb)
vb2_dma_contig_plane_dma_addr(vb, 0);
ctx->src_bufs[i].cookie.raw.chroma =
vb2_dma_contig_plane_dma_addr(vb, 1);
- ctx->src_bufs_cnt++;
+ if (vb->v4l2_buf.memory == V4L2_MEMORY_MMAP)
+ ctx->src_bufs_cnt++;
} else {
mfc_err("invalid queue type: %d\n", vq->type);
return -EINVAL;