diff options
author | Prabhakar Lad <prabhakar.csengg@gmail.com> | 2014-10-22 17:42:01 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2014-11-11 05:43:03 -0500 |
commit | 7041bc997db6a29af74499938987160bbe6654ef (patch) | |
tree | e090c938ac7b5653c9f8cf8275d52f80379fd838 | |
parent | 02f9cf96df57575acea2e6eb4041e9f3ecd32548 (diff) |
[media] media: davinci: vpbe: add support for VIDIOC_CREATE_BUFS
this patch adds support for vidioc_create_bufs. Along side
remove unneeded member numbuffers.
Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r-- | drivers/media/platform/davinci/vpbe_display.c | 10 | ||||
-rw-r--r-- | include/media/davinci/vpbe_display.h | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/drivers/media/platform/davinci/vpbe_display.c b/drivers/media/platform/davinci/vpbe_display.c index 3b607498bb48..78b9ffebc94e 100644 --- a/drivers/media/platform/davinci/vpbe_display.c +++ b/drivers/media/platform/davinci/vpbe_display.c | |||
@@ -244,12 +244,15 @@ vpbe_buffer_queue_setup(struct vb2_queue *vq, const struct v4l2_format *fmt, | |||
244 | 244 | ||
245 | v4l2_dbg(1, debug, &vpbe_dev->v4l2_dev, "vpbe_buffer_setup\n"); | 245 | v4l2_dbg(1, debug, &vpbe_dev->v4l2_dev, "vpbe_buffer_setup\n"); |
246 | 246 | ||
247 | if (fmt && fmt->fmt.pix.sizeimage < layer->pix_fmt.sizeimage) | ||
248 | return -EINVAL; | ||
249 | |||
247 | /* Store number of buffers allocated in numbuffer member */ | 250 | /* Store number of buffers allocated in numbuffer member */ |
248 | if (*nbuffers < VPBE_DEFAULT_NUM_BUFS) | 251 | if (vq->num_buffers + *nbuffers < VPBE_DEFAULT_NUM_BUFS) |
249 | *nbuffers = layer->numbuffers = VPBE_DEFAULT_NUM_BUFS; | 252 | *nbuffers = VPBE_DEFAULT_NUM_BUFS - vq->num_buffers; |
250 | 253 | ||
251 | *nplanes = 1; | 254 | *nplanes = 1; |
252 | sizes[0] = layer->pix_fmt.sizeimage; | 255 | sizes[0] = fmt ? fmt->fmt.pix.sizeimage : layer->pix_fmt.sizeimage; |
253 | alloc_ctxs[0] = layer->alloc_ctx; | 256 | alloc_ctxs[0] = layer->alloc_ctx; |
254 | 257 | ||
255 | return 0; | 258 | return 0; |
@@ -1241,6 +1244,7 @@ static const struct v4l2_ioctl_ops vpbe_ioctl_ops = { | |||
1241 | .vidioc_try_fmt_vid_out = vpbe_display_try_fmt, | 1244 | .vidioc_try_fmt_vid_out = vpbe_display_try_fmt, |
1242 | 1245 | ||
1243 | .vidioc_reqbufs = vb2_ioctl_reqbufs, | 1246 | .vidioc_reqbufs = vb2_ioctl_reqbufs, |
1247 | .vidioc_create_bufs = vb2_ioctl_create_bufs, | ||
1244 | .vidioc_querybuf = vb2_ioctl_querybuf, | 1248 | .vidioc_querybuf = vb2_ioctl_querybuf, |
1245 | .vidioc_qbuf = vb2_ioctl_qbuf, | 1249 | .vidioc_qbuf = vb2_ioctl_qbuf, |
1246 | .vidioc_dqbuf = vb2_ioctl_dqbuf, | 1250 | .vidioc_dqbuf = vb2_ioctl_dqbuf, |
diff --git a/include/media/davinci/vpbe_display.h b/include/media/davinci/vpbe_display.h index 163a02b92c04..fa0247ad815f 100644 --- a/include/media/davinci/vpbe_display.h +++ b/include/media/davinci/vpbe_display.h | |||
@@ -70,8 +70,6 @@ struct vpbe_disp_buffer { | |||
70 | 70 | ||
71 | /* vpbe display object structure */ | 71 | /* vpbe display object structure */ |
72 | struct vpbe_layer { | 72 | struct vpbe_layer { |
73 | /* number of buffers in fbuffers */ | ||
74 | unsigned int numbuffers; | ||
75 | /* Pointer to the vpbe_display */ | 73 | /* Pointer to the vpbe_display */ |
76 | struct vpbe_display *disp_dev; | 74 | struct vpbe_display *disp_dev; |
77 | /* Pointer pointing to current v4l2_buffer */ | 75 | /* Pointer pointing to current v4l2_buffer */ |