OpenCloudOS-Kernel/drivers/media
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
..
common [media] media: remove the setting of the flag V4L2_FL_USE_FH_PRIO 2014-07-04 16:14:59 -03:00
dvb-core [media] cxusb: TechnoTrend CT2-4400 USB DVB-T2/C tuner support 2014-07-14 21:07:07 -03:00
dvb-frontends [media] si2168: few firmware download changes 2014-07-14 21:07:09 -03:00
firewire firewire: introduce fw_driver.probe and .remove methods 2013-06-09 18:15:00 +02:00
i2c [media] Fix 64-bit division fall-out from 64-bit control ranges 2014-07-17 12:44:38 -03:00
mmc [media] siano: get rid of CammelCase from smscoreapi.h 2013-03-21 10:03:16 -03:00
parport [media] v4l: Support extending the v4l2_pix_format structure 2014-07-17 12:44:47 -03:00
pci [media] v4l: Support extending the v4l2_pix_format structure 2014-07-17 12:44:47 -03:00
platform [media] v4l: vsp1: uds: Fix scaling of alpha layer 2014-07-17 12:45:00 -03:00
radio [media] Fix 64-bit division fall-out from 64-bit control ranges 2014-07-17 12:44:38 -03:00
rc [media] rc: add sunxi-ir driver 2014-07-04 14:53:43 -03:00
tuners [media] si2157: rework firmware download logic a little bit 2014-07-14 21:07:09 -03:00
usb [media] v4l: Support extending the v4l2_pix_format structure 2014-07-17 12:44:47 -03:00
v4l2-core [media] v4l: vb2: Add fatal error condition flag 2014-07-17 16:19:04 -03:00
Kconfig [media] subdev autoselect only works if I2C and I2C_MUX is selected 2013-12-21 06:03:06 -02:00
Makefile [media] move i2c files into drivers/media/i2c 2012-09-06 18:42:54 -03:00
media-device.c Linux 3.15-rc6 2014-05-21 23:03:15 -03:00
media-devnode.c [media] media: Use a better owner for the media device 2014-05-13 13:39:00 -03:00
media-entity.c [media] media: Check for active links on pads with MEDIA_PAD_FL_MUST_CONNECT flag 2013-12-04 15:03:45 -02:00