On 04/12/2018 11:15 AM, Tomasz Figa wrote: > Hi Hans, > > On Mon, Apr 9, 2018 at 11:20 PM Hans Verkuil <hverkuil@xxxxxxxxx> wrote: > >> From: Hans Verkuil <hans.verkuil@xxxxxxxxx> > >> Add support for requests to vim2m. > >> Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> >> --- >> drivers/media/platform/vim2m.c | 25 +++++++++++++++++++++++++ >> 1 file changed, 25 insertions(+) > >> diff --git a/drivers/media/platform/vim2m.c > b/drivers/media/platform/vim2m.c >> index 9b18b32c255d..2dcf0ea85705 100644 >> --- a/drivers/media/platform/vim2m.c >> +++ b/drivers/media/platform/vim2m.c >> @@ -387,8 +387,26 @@ static void device_run(void *priv) >> src_buf = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx); >> dst_buf = v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx); > >> + /* Apply request if needed */ >> + if (src_buf->vb2_buf.req_obj.req) >> + v4l2_ctrl_request_setup(src_buf->vb2_buf.req_obj.req, >> + &ctx->hdl); >> + if (dst_buf->vb2_buf.req_obj.req && >> + dst_buf->vb2_buf.req_obj.req != src_buf->vb2_buf.req_obj.req) >> + v4l2_ctrl_request_setup(dst_buf->vb2_buf.req_obj.req, >> + &ctx->hdl); > > I'm not sure I understand what's going on here. How is it possible that we > have 2 different requests? You can have one request with buffers for both queues, or two requests, one for each queue. Or a request for just one of the queues and the other without any requests. So you can have 0, 1 or 2 requests associated with these two queues. But you don't want to call v4l2_ctrl_request_setup twice if the same request is associated with both queues. (Well, you can call it twice and the second call would not do anything, but that's a waste of CPU cycles) Regards, Hans