On 06/16/2017 01:39 AM, Gustavo Padovan wrote: > From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxx> > > To enable vivid to be used with explicit synchronization we need > to mark its queues as ordered. > > Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxx> > --- > drivers/media/platform/vivid/vivid-core.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/media/platform/vivid/vivid-core.c b/drivers/media/platform/vivid/vivid-core.c > index 8843170..c7bef90 100644 > --- a/drivers/media/platform/vivid/vivid-core.c > +++ b/drivers/media/platform/vivid/vivid-core.c > @@ -1063,6 +1063,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) > q->type = dev->multiplanar ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE : > V4L2_BUF_TYPE_VIDEO_CAPTURE; > q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ; > + q->ordered = 1; How will the driver ensure ordered buffers? Are there more changes needed in this driver? > q->drv_priv = dev; > q->buf_struct_size = sizeof(struct vivid_buffer); > q->ops = &vivid_vid_cap_qops; > @@ -1083,6 +1084,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) > q->type = dev->multiplanar ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE : > V4L2_BUF_TYPE_VIDEO_OUTPUT; > q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_WRITE; > + q->ordered = 1; > q->drv_priv = dev; > q->buf_struct_size = sizeof(struct vivid_buffer); > q->ops = &vivid_vid_out_qops; > @@ -1103,6 +1105,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) > q->type = dev->has_raw_vbi_cap ? V4L2_BUF_TYPE_VBI_CAPTURE : > V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; > q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ; > + q->ordered = 1; > q->drv_priv = dev; > q->buf_struct_size = sizeof(struct vivid_buffer); > q->ops = &vivid_vbi_cap_qops; > @@ -1123,6 +1126,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) > q->type = dev->has_raw_vbi_out ? V4L2_BUF_TYPE_VBI_OUTPUT : > V4L2_BUF_TYPE_SLICED_VBI_OUTPUT; > q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_WRITE; > + q->ordered = 1; > q->drv_priv = dev; > q->buf_struct_size = sizeof(struct vivid_buffer); > q->ops = &vivid_vbi_out_qops; > @@ -1142,6 +1146,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) > q = &dev->vb_sdr_cap_q; > q->type = V4L2_BUF_TYPE_SDR_CAPTURE; > q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ; > + q->ordered = 1; > q->drv_priv = dev; > q->buf_struct_size = sizeof(struct vivid_buffer); > q->ops = &vivid_sdr_cap_qops; > thanks, -- Shuah