On 04/05/18 22:06, Ezequiel Garcia wrote: > From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxx> > > Explicit synchronization benefits a lot from ordered queues, they fit > better in a pipeline with DRM for example so create a opt-in way for > drivers notify videobuf2 that the queue is unordered. > > v5: go back to a bitfield property for the unordered property. This needs to be a callback. Whether or not the queue is unordered depends on the current format (see the next two patches). So if a queue can e.g. capture both raw/MJPEG and compressed (MPEG-like) data, then it has to call a callback. Regards, Hans > > v4: rename it to vb2_ops_is_unordered() (Hans Verkuil) > > v3: - make it bool (Hans) > - create vb2_ops_set_unordered() helper > > v2: improve comments for is_unordered flag (Hans Verkuil) > > Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxx> > Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx> > --- > include/media/videobuf2-core.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h > index f9633de0386c..364e4cb41b10 100644 > --- a/include/media/videobuf2-core.h > +++ b/include/media/videobuf2-core.h > @@ -467,6 +467,8 @@ struct vb2_buf_ops { > * @quirk_poll_must_check_waiting_for_buffers: Return %EPOLLERR at poll when QBUF > * has not been called. This is a vb1 idiom that has been adopted > * also by vb2. > + * @unordered: tell if the queue is unordered, i.e. buffers can be > + * dequeued in a different order from how they were queued. > * @lock: pointer to a mutex that protects the &struct vb2_queue. The > * driver can set this to a mutex to let the v4l2 core serialize > * the queuing ioctls. If the driver wants to handle locking > @@ -533,6 +535,7 @@ struct vb2_queue { > unsigned fileio_read_once:1; > unsigned fileio_write_immediately:1; > unsigned allow_zero_bytesused:1; > + unsigned unordered:1; > unsigned quirk_poll_must_check_waiting_for_buffers:1; > > struct mutex *lock; >