[media] vb2: Only requeue buffers immediately once streaming is started
authorSakari Ailus <sakari.ailus@linux.intel.com>
Fri, 3 Jul 2015 07:37:07 +0000 (04:37 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Fri, 17 Jul 2015 12:00:12 +0000 (09:00 -0300)
commit6d058c5643e16779ae4c001d2e893c140940e48f
tree185e7fa3385661a9d93860732def4ad6f4886daa
parent5bab86243d949cf021b0f104faafc18f5d20283c
[media] vb2: Only requeue buffers immediately once streaming is started

Buffers can be returned back to videobuf2 in driver's streamon handler. In
this case vb2_buffer_done() with buffer state VB2_BUF_STATE_QUEUED will
cause the driver's buf_queue vb2 operation to be called, queueing the same
buffer again only to be returned to videobuf2 using vb2_buffer_done() and so
on.

Add a new buffer state VB2_BUF_STATE_REQUEUEING which, when used as the
state argument to vb2_buffer_done(), will result in buffers queued to the
driver. Using VB2_BUF_STATE_QUEUED will leave the buffer to videobuf2, as it
was before "[media] vb2: allow requeuing buffers while streaming".

Fixes: ce0eff016f72 ("[media] vb2: allow requeuing buffers while streaming")

[mchehab@osg.samsung.com: fix warning: enumeration value 'VB2_BUF_STATE_REQUEUEING' not handled in switch]

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: stable@vger.kernel.org # for v4.1
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/pci/cobalt/cobalt-irq.c
drivers/media/v4l2-core/videobuf2-core.c
include/media/videobuf2-core.h