OSDN Git Service

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 04783e7..a518927 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)