aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <m.chehab@samsung.com>2014-09-15 20:58:01 -0300
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-09-18 06:42:44 -0300
commit557a802e05f1dfe622aa0729db0ee17243c1d9a8 (patch)
tree130cd2328ff15328a45edf1f118451156f87762f
parentf5281fc81e9a0a3e80b78720c5ae2ed06da3bfae (diff)
[media] BZ#84401: Revert "[media] v4l: vb2: Don't return POLLERR during transient buffer underruns"
This reverts commit 9241650d62f79a3da01f1d5e8ebd195083330b75. The commit 9241650d62f7 was meant to solve a race issue that affects Gstreamer version 0.10, when streaming for a long time. It does that by returning POLERR if VB2 is not streaming. However, it broke VBI userspace support on alevt and mtt (and maybe other VBI apps), as they rely on the old behavior. Due to that, we need to roll back and restore the previous behavior. For more details, see: https://bugzilla.kernel.org/show_bug.cgi?id=84401 So, let's rollback the change for now, and work on some other fix for it. Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Hans Verkuil <hans.verkuil@cisco.com> Cc: Pawel Osciak <pawel@osciak.com> Cc: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
-rw-r--r--drivers/media/v4l2-core/videobuf2-core.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c
index 7e6aff673a5a..da2d0adcc992 100644
--- a/drivers/media/v4l2-core/videobuf2-core.c
+++ b/drivers/media/v4l2-core/videobuf2-core.c
@@ -2583,10 +2583,10 @@ unsigned int vb2_poll(struct vb2_queue *q, struct file *file, poll_table *wait)
}
/*
- * There is nothing to wait for if no buffer has been queued and the
- * queue isn't streaming, or if the error flag is set.
+ * There is nothing to wait for if no buffer has been queued
+ * or if the error flag is set.
*/
- if ((list_empty(&q->queued_list) && !vb2_is_streaming(q)) || q->error)
+ if (list_empty(&q->queued_list) || q->error)
return res | POLLERR;
/*

Privacy Policy