On 04/12/2018 11:15 AM, Tomasz Figa wrote:
> Hi Hans,
> 
> On Mon, Apr 9, 2018 at 11:20 PM Hans Verkuil <hverk...@xs4all.nl> wrote:
> 
>> From: Hans Verkuil <hans.verk...@cisco.com>
> 
>> Add support for requests to vim2m.
> 
>> Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
>> ---
>>   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

Reply via email to