kernel-fxtec-pro1x/drivers/media
Brandon Philips 137d1cb19d V4L/DVB (7493): videobuf: Avoid deadlock with QBUF and bring up to spec for empty queue
Add a waitqueue to wait on when there are no buffers in the buffer queue.
DQBUF waits on this queue without holding vb_lock to allow a QBUF to happen.
Once a buffer has been queued we recheck that the queue is still streaming and
wait on the new buffer's waitqueue while holding the vb_lock.  The driver
should come along in a timely manner and put the buffer into its next state
finishing the DQBUF.

By implementing this waitqueue it also brings the videobuf DQBUF up to spec and
it now blocks on O_NONBLOCK even when no buffers have been queued via QBUF:

"By default VIDIOC_DQBUF blocks when no buffer is in the outgoing queue."
 - V4L2 spec

Signed-off-by: Brandon Philips <bphilips@suse.de>
CC: Trent Piepho <xyzzy@speakeasy.org>
CC: Carl Karsten <carl@personnelware.com>
CC: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
..
common V4L/DVB (7372): cx88: Add IR support for Pixelview MPEG 8000GT 2008-04-24 14:07:51 -03:00
dvb V4L/DVB (7481): tda18271: fix standard map debug 2008-04-24 14:07:57 -03:00
radio V4L/DVB (7402): add macro validation for v4l_compat_ioctl32 2008-04-24 14:07:53 -03:00
video V4L/DVB (7493): videobuf: Avoid deadlock with QBUF and bring up to spec for empty queue 2008-04-24 14:07:57 -03:00
Kconfig V4L/DVB (7483): tuner-simple: fix broken build dependency 2008-04-24 14:07:57 -03:00
Makefile V4L/DVB (7499): v4l/dvb Kconfig: Fix bugzilla #10067 2008-04-06 17:13:20 -03:00