Hi Tomi, Thank you for the patch. On Mon, Apr 12, 2021 at 02:02:10PM +0300, Tomi Valkeinen wrote: > Vivid tracks the VBI capture mode in vivid_dev->stream_sliced_vbi_cap > field. We can just look at the buffer type instead, and drop the field. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxxxxxxxxxxxx> > --- > drivers/media/test-drivers/vivid/vivid-core.h | 1 - > drivers/media/test-drivers/vivid/vivid-kthread-cap.c | 2 +- > drivers/media/test-drivers/vivid/vivid-vbi-cap.c | 6 ++---- > 3 files changed, 3 insertions(+), 6 deletions(-) > > diff --git a/drivers/media/test-drivers/vivid/vivid-core.h b/drivers/media/test-drivers/vivid/vivid-core.h > index 9c2d1470b597..9af7e843c2cf 100644 > --- a/drivers/media/test-drivers/vivid/vivid-core.h > +++ b/drivers/media/test-drivers/vivid/vivid-core.h > @@ -428,7 +428,6 @@ struct vivid_dev { > u32 vbi_cap_seq_start; > u32 vbi_cap_seq_count; > bool vbi_cap_streaming; > - bool stream_sliced_vbi_cap; > u32 meta_cap_seq_start; > u32 meta_cap_seq_count; > bool meta_cap_streaming; > diff --git a/drivers/media/test-drivers/vivid/vivid-kthread-cap.c b/drivers/media/test-drivers/vivid/vivid-kthread-cap.c > index 67fb3c00f9ad..781763c193eb 100644 > --- a/drivers/media/test-drivers/vivid/vivid-kthread-cap.c > +++ b/drivers/media/test-drivers/vivid/vivid-kthread-cap.c > @@ -750,7 +750,7 @@ static noinline_for_stack void vivid_thread_vid_cap_tick(struct vivid_dev *dev, > > v4l2_ctrl_request_setup(vbi_cap_buf->vb.vb2_buf.req_obj.req, > &dev->ctrl_hdl_vbi_cap); > - if (dev->stream_sliced_vbi_cap) > + if (vbi_cap_buf->vb.vb2_buf.type == V4L2_BUF_TYPE_SLICED_VBI_CAPTURE) > vivid_sliced_vbi_cap_process(dev, vbi_cap_buf); > else > vivid_raw_vbi_cap_process(dev, vbi_cap_buf); > diff --git a/drivers/media/test-drivers/vivid/vivid-vbi-cap.c b/drivers/media/test-drivers/vivid/vivid-vbi-cap.c > index 1a9348eea781..387df4ff01b0 100644 > --- a/drivers/media/test-drivers/vivid/vivid-vbi-cap.c > +++ b/drivers/media/test-drivers/vivid/vivid-vbi-cap.c > @@ -255,9 +255,8 @@ int vidioc_s_fmt_vbi_cap(struct file *file, void *priv, > > if (ret) > return ret; > - if (dev->stream_sliced_vbi_cap && vb2_is_busy(&dev->vb_vbi_cap_q)) > + if (f->type != V4L2_BUF_TYPE_VBI_CAPTURE && vb2_is_busy(&dev->vb_vbi_cap_q)) I think think this is correct. The code checks if the currently configured format is the sliced variant, and you replace this with a check for the new format. > return -EBUSY; > - dev->stream_sliced_vbi_cap = false; > dev->vbi_cap_dev.queue->type = V4L2_BUF_TYPE_VBI_CAPTURE; > return 0; > } > @@ -322,10 +321,9 @@ int vidioc_s_fmt_sliced_vbi_cap(struct file *file, void *fh, struct v4l2_format > > if (ret) > return ret; > - if (!dev->stream_sliced_vbi_cap && vb2_is_busy(&dev->vb_vbi_cap_q)) > + if (fmt->type != V4L2_BUF_TYPE_SLICED_VBI_CAPTURE && vb2_is_busy(&dev->vb_vbi_cap_q)) > return -EBUSY; > dev->service_set_cap = vbi->service_set; > - dev->stream_sliced_vbi_cap = true; > dev->vbi_cap_dev.queue->type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; > return 0; > } -- Regards, Laurent Pinchart