linux/drivers/media/v4l2-core
Laurent Pinchart 4bb7267dc4 [media] v4l: vb2: Add fatal error condition flag
When a fatal error occurs that render the device unusable, the only
options for a driver to signal the error condition to userspace is to
set the V4L2_BUF_FLAG_ERROR flag when dequeuing buffers and to return an
error from the buffer prepare handler when queuing buffers.

The buffer error flag indicates a transient error and can't be used by
applications to detect fatal errors. Returning an error from vb2_qbuf()
is thus the only real indication that a fatal error occurred. However,
this is difficult to handle for multithreaded applications that requeue
buffers from a thread other than the control thread. In particular the
poll() call in the control thread will not notify userspace of the
error.

This patch adds an explicit mechanism to report fatal errors to
userspace. Drivers can call the vb2_queue_error() function to signal a
fatal error. From this moment on, buffer preparation will return -EIO to
userspace, and vb2_poll() will set the POLLERR flag and return
immediately. The error flag is cleared when cancelling the queue, either
at stream off time (through vb2_streamoff) or when releasing the queue
with vb2_queue_release().

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-07-17 16:19:04 -03:00
..
Kconfig [media] vb2: Add videobuf2-dvb support 2014-04-16 18:59:29 -03:00
Makefile [media] vb2: Add videobuf2-dvb support 2014-04-16 18:59:29 -03:00
tuner-core.c [media] v4l: subdev: Move [gs]_std operation to video ops 2014-05-24 17:11:26 -03:00
v4l2-async.c [media] v4l2-async: Don't use dynamic static allocation 2013-11-08 09:45:43 -02:00
v4l2-clk.c [media] V4L2: add v4l2-clock helpers to register and unregister a fixed-rate clock 2013-10-31 04:31:30 -02:00
v4l2-common.c [media] v4l2-ctrls: increase internal min/max/step/def to 64 bit 2014-07-17 09:18:09 -03:00
v4l2-compat-ioctl32.c [media] v4l: Support extending the v4l2_pix_format structure 2014-07-17 12:44:47 -03:00
v4l2-ctrls.c [media] Fix 64-bit division fall-out from 64-bit control ranges 2014-07-17 12:44:38 -03:00
v4l2-dev.c [media] v4l2: integrate support for VIDIOC_QUERY_EXT_CTRL 2014-07-17 10:38:44 -03:00
v4l2-device.c [media] v4l: Only get module if it's different than the driver for v4l2_dev 2014-05-13 13:41:44 -03:00
v4l2-dv-timings.c [media] v4l2-dv-timings.c: add the new 4K timings to the list 2014-04-16 18:27:22 -03:00
v4l2-event.c [media] v4l: Add source change event 2014-05-23 19:50:40 -03:00
v4l2-fh.c [media] media: v4l2-core: remove the use of V4L2_FL_USE_FH_PRIO flag 2014-07-04 16:14:22 -03:00
v4l2-ioctl.c [media] v4l: Add premultiplied alpha flag for pixel formats 2014-07-17 12:44:47 -03:00
v4l2-mem2mem.c [media] mem2mem: make queue lock in v4l2_m2m_poll interruptible 2014-07-04 16:11:44 -03:00
v4l2-of.c [media] v4l: of: Support empty port nodes 2014-03-11 09:38:49 -03:00
v4l2-subdev.c [media] v4l2: integrate support for VIDIOC_QUERY_EXT_CTRL 2014-07-17 10:38:44 -03:00
videobuf2-core.c [media] v4l: vb2: Add fatal error condition flag 2014-07-17 16:19:04 -03:00
videobuf2-dma-contig.c [media] videobuf2-dma-contig: allow to vmap contiguous dma buffers 2014-07-04 16:13:21 -03:00
videobuf2-dma-sg.c [media] videobuf2-dma-sg: Fix NULL pointer dereference BUG 2014-05-23 12:18:23 -03:00
videobuf2-dvb.c [media] vb2: Add videobuf2-dvb support 2014-04-16 18:59:29 -03:00
videobuf2-memops.c [media] v4l: vb2-dma-contig: let mmap method to use dma_mmap_coherent call 2012-11-25 17:20:25 -02:00
videobuf2-vmalloc.c [media] videobuf2: add gfp_flags 2013-03-21 13:17:51 -03:00
videobuf-core.c [media] v4l: Tell user space we're using monotonic timestamps 2012-12-21 11:20:51 -02:00
videobuf-dma-contig.c [media] videobuf-dma-contig: fix incorrect argument to vm_iomap_memory() call 2014-05-23 12:54:09 -03:00
videobuf-dma-sg.c [media] Revert "[media] videobuf_vm_{open,close} race fixes" 2014-02-04 06:29:46 -02:00
videobuf-dvb.c
videobuf-vmalloc.c [media] Revert "[media] videobuf_vm_{open,close} race fixes" 2014-02-04 06:29:46 -02:00