OSDN Git Service

media: videobuf2: set q->streaming later
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 23 Jan 2023 08:45:49 +0000 (09:45 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Tue, 24 Jan 2023 15:34:06 +0000 (16:34 +0100)
commit89c08aef8f8dcb5fc98ad8db7ca92c9dab1f26b0
treeb05cd517299ef7b6ab765b2bece735042e2a2d37
parenta1550700629f30c5bd554161524f14f14600d554
media: videobuf2: set q->streaming later

Commit a10b21532574 ("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: a10b21532574 ("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>
drivers/media/common/videobuf2/videobuf2-core.c