On Tuesday, September 27, 2011 19:08:38 Laurent Pinchart wrote: > Hi Hans, > > On Tuesday 27 September 2011 12:34:20 Hans Verkuil wrote: > > On Thursday, September 08, 2011 09:45:15 Guennadi Liakhovetski wrote: > > > A possibility to preallocate and initialise buffers of different sizes > > > in V4L2 is required for an efficient implementation of a snapshot > > > mode. This patch adds two new ioctl()s: VIDIOC_CREATE_BUFS and > > > VIDIOC_PREPARE_BUF and defines respective data structures. > > > > > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx> > > > --- > > [snip] > > > > @@ -2096,6 +2098,33 @@ static long __video_do_ioctl(struct file *file, > > > > > > dbgarg(cmd, "type=0x%8.8x", sub->type); > > > break; > > > > > > } > > > > > > + case VIDIOC_CREATE_BUFS: > > > + { > > > + struct v4l2_create_buffers *create = arg; > > > + > > > + if (!ops->vidioc_create_bufs) > > > + break; > > > > Just as with REQBUFS you need to add code here to handle priority checking: > > > > if (ret_prio) { > > ret = ret_prio; > > break; > > } > > Speaking of prio support, how is locking handled here ? Define 'here'. Are you talking about video_ioctl2() as a function? Or prio support in particular? > Does video_ioctl2() > require drivers to synchronize all ioctl calls or can it work with fine-grain > locking ? It should always work OK with fine-grained locking. Regards, Hans > > > > + ret = check_fmt(ops, create->format.type); > > > + if (ret) > > > + break; > > > + > > > + ret = ops->vidioc_create_bufs(file, fh, create); > > > + > > > + dbgarg(cmd, "count=%d @ %d\n", create->count, create->index); > > > + break; > > > + } > > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html