media: cobalt: replace VB2_BUF_STATE_REQUEUEING by _ERROR
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Thu, 28 Feb 2019 12:35:45 +0000 (07:35 -0500)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Tue, 19 Mar 2019 17:50:38 +0000 (13:50 -0400)
The cobalt driver is the only driver that uses VB2_BUF_STATE_REQUEUEING.
Replace it by VB2_BUF_STATE_ERROR so we can drop support for the
REQUEUEING state.

The requeueing state was used in the cobalt driver to optimize
buffer handling while waiting for a valid signal: by requeueing
buffers internally there was no need for userspace to handle and
requeue buffers with the ERROR flag set.

However, requeueing also makes the buffer handling unordered, which
is generally a bad idea. Requeueing also does not work with requests
and any future fence support.

Since it is really a minor optimization in the cobalt driver it is
best to just return the buffer in an ERROR state. With this change
support for requeueing can now be removed in vb2.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/pci/cobalt/cobalt-irq.c

index 04783e78cc124c31bcd4fe683bc1c05bb3b03404..a518927abae1c05bb1245552df828af8b63613a5 100644 (file)
@@ -128,7 +128,7 @@ done:
        cb->vb.sequence = s->sequence++;
        vb2_buffer_done(&cb->vb.vb2_buf,
                        (skip || s->unstable_frame) ?
-                       VB2_BUF_STATE_REQUEUEING : VB2_BUF_STATE_DONE);
+                       VB2_BUF_STATE_ERROR : VB2_BUF_STATE_DONE);
 }
 
 irqreturn_t cobalt_irq_handler(int irq, void *dev_id)