Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Prabhakar Lad and committed by
Mauro Carvalho Chehab
7041bc99 02f9cf96

+7 -5
+7 -3
drivers/media/platform/davinci/vpbe_display.c
··· 244 244 245 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 250 /* Store number of buffers allocated in numbuffer member */ 248 - if (*nbuffers < VPBE_DEFAULT_NUM_BUFS) 249 - *nbuffers = layer->numbuffers = VPBE_DEFAULT_NUM_BUFS; 251 + if (vq->num_buffers + *nbuffers < VPBE_DEFAULT_NUM_BUFS) 252 + *nbuffers = VPBE_DEFAULT_NUM_BUFS - vq->num_buffers; 250 253 251 254 *nplanes = 1; 252 - sizes[0] = layer->pix_fmt.sizeimage; 255 + sizes[0] = fmt ? fmt->fmt.pix.sizeimage : layer->pix_fmt.sizeimage; 253 256 alloc_ctxs[0] = layer->alloc_ctx; 254 257 255 258 return 0; ··· 1244 1241 .vidioc_try_fmt_vid_out = vpbe_display_try_fmt, 1245 1242 1246 1243 .vidioc_reqbufs = vb2_ioctl_reqbufs, 1244 + .vidioc_create_bufs = vb2_ioctl_create_bufs, 1247 1245 .vidioc_querybuf = vb2_ioctl_querybuf, 1248 1246 .vidioc_qbuf = vb2_ioctl_qbuf, 1249 1247 .vidioc_dqbuf = vb2_ioctl_dqbuf,
-2
include/media/davinci/vpbe_display.h
··· 70 70 71 71 /* vpbe display object structure */ 72 72 struct vpbe_layer { 73 - /* number of buffers in fbuffers */ 74 - unsigned int numbuffers; 75 73 /* Pointer to the vpbe_display */ 76 74 struct vpbe_display *disp_dev; 77 75 /* Pointer pointing to current v4l2_buffer */