media: videobuf2: set q->streaming later
Commita10b215325
("media: vb2: add (un)prepare_streaming queue ops") moved up the q->streaming = 1 assignment to before the call to vb2_start_streaming(). This does make sense since q->streaming indicates that VIDIOC_STREAMON is called, and the call to start_streaming happens either at that time or later if q->min_buffers_needed > 0. So q->streaming should be 1 before start_streaming is called. However, it turned out that some drivers use vb2_is_streaming() in buf_queue, and if q->min_buffers_needed == 0, then that will now return true instead of false. So for the time being revert to the original behavior. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Fixes:a10b215325
("media: vb2: add (un)prepare_streaming queue ops") Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Tested-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
a155070062
commit
89c08aef8f
|
@ -2149,8 +2149,6 @@ int vb2_core_streamon(struct vb2_queue *q, unsigned int type)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
q->streaming = 1;
|
||||
|
||||
/*
|
||||
* Tell driver to start streaming provided sufficient buffers
|
||||
* are available.
|
||||
|
@ -2161,12 +2159,13 @@ int vb2_core_streamon(struct vb2_queue *q, unsigned int type)
|
|||
goto unprepare;
|
||||
}
|
||||
|
||||
q->streaming = 1;
|
||||
|
||||
dprintk(q, 3, "successful\n");
|
||||
return 0;
|
||||
|
||||
unprepare:
|
||||
call_void_qop(q, unprepare_streaming, q);
|
||||
q->streaming = 0;
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vb2_core_streamon);
|
||||
|
|
Loading…
Reference in New Issue