linux/include/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
..
blackfin [media] blackfin: add error frame support 2013-02-06 09:16:58 -02:00
davinci [media] media: davinci: vpfe: use v4l2_fh for priority handling 2014-04-16 18:24:15 -03:00
ad9389b.h [media] ad9389b: driver for the Analog Devices AD9389B video encoder 2012-09-13 16:15:36 -03:00
adp1653.h [media] v4l, smiapp, smiapp-pll, adp1653: Update contact information 2012-11-21 13:34:50 -02:00
adv7183.h [media] adv7183: add adv7183 decoder driver 2012-03-19 15:04:10 -03:00
adv7343.h [media] media: i2c: adv7343: make the platform data members as array 2013-07-26 13:20:36 -03:00
adv7393.h [PATCH] media: add Analog Devices ADV7393 video encoder driver 2012-07-06 15:46:17 -03:00
adv7511.h [media] adv7511: add new video encoder 2013-08-26 07:53:43 -03:00
adv7604.h [media] adv7604: Add LLC polarity configuration 2014-05-25 13:10:16 -03:00
adv7842.h [media] adv7842: platform-data for Hotplug Active (HPA) manual/auto 2014-02-04 09:57:36 -02:00
ak881x.h V4L/DVB: V4L: v4l2-subdev driver for AK8813 and AK8814 TV-encoders from AKM 2010-05-19 12:58:02 -03:00
as3645a.h [media] as3645a: Add driver for LED flash controller 2011-12-20 09:36:18 -02:00
atmel-isi.h [media] v4l: atmel-isi: Should clear bits before set the hardware register 2013-12-18 06:55:48 -02:00
bt819.h [media] bt819: the ioctls in the header are internal to the kernel 2010-12-29 08:17:19 -02:00
cs53l32a.h
cs5345.h
cx2341x.h [media] v4l2-ctrls: use const char * const * for the menu arrays 2010-12-30 08:02:14 -02:00
cx25840.h [media] cx25840: Add a flag to enable the CX23888 DIF to be enabled or not 2012-01-05 06:49:38 -02:00
exynos-fimc.h [media] exynos4-is: Remove support for non-dt platforms 2014-05-23 18:52:54 -03:00
gpio-ir-recv.h [media] media: gpio-ir-recv: add allowed_protos for platform data 2012-07-06 18:21:53 -03:00
i2c-addr.h
ir-kbd-i2c.h [media] rc-core: add separate defines for protocol bitmaps and numbers 2012-10-27 11:49:51 -02:00
ir-rx51.h [media] media: rc: Introduce RX51 IR transmitter driver 2012-08-13 16:53:45 -03:00
lirc_dev.h [media] media: lirc: Allow lirc dev to talk to rc device 2013-07-31 16:30:27 -03:00
lirc.h Fix common misspellings 2011-03-31 11:26:23 -03:00
lm3560.h [media] media: i2c: add driver for dual LED Flash, lm3560 2013-10-31 06:36:39 -02:00
lm3646.h [media] lm3646: add new dual LED Flash driver 2014-03-11 10:00:26 -03:00
m5mols.h [media] m5mols: Remove superfluous irq field from the platform data struct 2011-09-24 00:23:03 -03:00
m52790.h
media-device.h [media] media: Use a better owner for the media device 2014-05-13 13:39:00 -03:00
media-devnode.h [media] media: Use a better owner for the media device 2014-05-13 13:39:00 -03:00
media-entity.h [media] media: Include linux/kernel.h for DIV_ROUND_UP() 2013-12-18 10:36:02 -02:00
mmp-camera.h [media] marvell-cam: Basic working MMP camera driver 2011-07-27 17:53:01 -03:00
msp3400.h
mt9m032.h [media] v4l: Add driver for Micron MT9M032 camera sensor 2012-03-19 18:56:33 -03:00
mt9p031.h [media] mt9p031: Use the common clock framework 2013-04-14 16:03:22 -03:00
mt9t001.h [media] mt9t001: Implement V4L2_CID_PIXEL_RATE control 2012-05-24 09:25:15 -03:00
mt9t112.h V4L/DVB (13670): soc-camera: Add mt9t112 camera driver 2009-12-16 09:27:41 -02:00
mt9v011.h [media] v4l2-subdev: remove core.s_config and v4l2_i2c_new_subdev_cfg() 2011-01-19 11:45:30 -02:00
mt9v022.h [media] mt9v022: set y_skip_top field to zero as default 2012-11-22 11:36:50 -02:00
mt9v032.h [media] mt9v032: Use the common clock framework 2013-08-22 11:37:46 -03:00
noon010pc30.h [media] Add v4l2 subdev driver for NOON010PC30L image sensor 2011-03-21 20:31:40 -03:00
omap1_camera.h [media] SoC Camera: add driver for OMAP1 camera interface 2010-10-21 07:55:37 -02:00
omap3isp.h [media] omap3isp: Use the common clock framework 2013-04-14 20:21:12 -03:00
omap4iss.h [media] v4l: omap4iss: Add support for OMAP4 camera interface - Core 2013-12-03 17:21:04 -02:00
ov772x.h [media] V4L: ov772x: remove superfluous soc-camera client operations 2011-11-03 18:28:05 -02:00
ov7670.h [media] media: ov7670: Add possibility to disable pixclk during hblank 2013-02-08 14:35:06 -02:00
ov9650.h [media] V4L: Add driver for OV9650/52 image sensors 2013-02-05 15:21:15 -02:00
radio-si4713.h V4L/DVB (12551): FM TX: si4713: Add files to add radio interface for si4713 2009-09-12 12:19:19 -03:00
rc-core.h [media] rc-core: remove generic scancode filter 2014-04-06 11:30:29 -03:00
rc-map.h [media, edac] Change my email address 2014-02-07 08:03:07 -02:00
rj54n1cb0c.h V4L/DVB (13661): rj54n1cb0c: Add cropping, auto white balance, restrict sizes, add platform data 2009-12-16 09:27:30 -02:00
s3c_camif.h [media] V4L: Add driver for S3C24XX/S3C64XX SoC series camera interface 2012-11-28 09:43:34 -02:00
s5c73m3.h [media] V4L: Add S5C73M3 camera driver 2013-02-05 17:39:04 -02:00
s5k4ecgx.h [media] Add v4l2 subdev driver for S5K4ECGX sensor 2012-09-26 17:32:54 -03:00
s5k6aa.h [media] v4l: Add v4l2 subdev driver for S5K6AAFX sensor 2011-11-03 18:29:11 -02:00
s5p_hdmi.h [media] media: s5p-hdmi: add HPD GPIO to platform data 2012-10-05 23:11:51 -03:00
saa6588.h [media] saa6588: add support for non-blocking mode 2014-01-07 07:42:19 -02:00
saa7115.h [media] saa7115: make multi-line comments compliant with CodingStyle 2013-08-18 08:39:24 -03:00
saa7127.h
saa7146_vv.h [media] saa7146: fix querycap, vbi/video separation and g/s_register 2012-05-14 15:00:49 -03:00
saa7146.h [media] saa7146: remove V4L2_FL_LOCK_ALL_FOPS 2012-08-09 19:43:28 -03:00
sh_mobile_ceu.h [media] V4L2: soc-camera: fix uninitialised use compiler warning 2013-06-28 14:57:18 -03:00
sh_mobile_csi2.h [media] sh_mobile_ceu_camera: add asynchronous subdevice probing support 2013-06-21 16:35:53 -03:00
sh_vou.h [media] sh_vou: Don't use module names to load I2C modules 2010-10-22 21:53:33 -02:00
si476x.h [media] v4l2: Add a V4L2 driver for SI476X MFD 2013-04-18 21:20:34 -03:00
si4713.h [media] si4713: move supply list to si4713_platform_data 2013-12-18 06:40:07 -02:00
sii9234.h [media] v4l: s5p-tv: add sii9234 driver 2012-02-28 18:25:46 -03:00
smiapp.h [media] smiapp: Call the clock "ext_clk" 2013-08-22 11:39:12 -03:00
soc_camera_platform.h [media] soc-camera: split struct soc_camera_link into host and subdevice parts 2013-01-05 01:38:02 -02:00
soc_camera.h [media] V4L2: soc-camera: work around unbalanced calls to .s_power() 2013-10-31 04:38:40 -02:00
soc_mediabus.h [media] soc_camera: Add RGB666 & RGB888 formats 2013-04-04 19:40:08 -03:00
sr030pc30.h [media] Add driver for Siliconfile SR030PC30 VGA camera 2010-10-21 07:55:49 -02:00
tea575x.h [media] tea575x: Move header from sound to media 2013-08-18 08:08:05 -03:00
ths7303.h [media] media: i2c: ths7303: remove init_enable option from pdata 2013-06-13 11:41:18 -03:00
timb_radio.h [media] radio-timb: Simplified platform data 2011-07-27 17:53:07 -03:00
timb_video.h [media] media: Add timberdale video-in driver 2010-12-29 08:16:46 -02:00
tuner-types.h
tuner.h [media] tuner-core: Change config from unsigned int to void * 2013-04-08 07:01:36 -03:00
tvaudio.h
tveeprom.h include: Convert ethernet mac address declarations to use ETH_ALEN 2013-08-02 12:33:54 -07:00
tvp514x.h [media] media: tvp514x: remove field description 2013-02-06 08:18:49 -02:00
tvp5150.h
tvp7002.h [media] media: i2c: tvp7002: rearrange description of structure members 2013-05-27 09:29:56 -03:00
tw9910.h tw9910: use TABs for indentation 2010-02-26 15:10:59 -03:00
uda1342.h [media] uda1342: add new uda1342 audio codec driver 2013-03-24 12:24:11 -03:00
upd64031a.h
upd64083.h
v4l2-async.h [media] V4L: Merge struct v4l2_async_subdev_list with struct v4l2_subdev 2013-07-30 15:54:56 -03:00
v4l2-clk.h [media] V4L2: add a v4l2-clk helper macro to produce an I2C device ID 2013-10-31 04:33:02 -02:00
v4l2-common.h Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2013-11-18 15:50:07 -08:00
v4l2-ctrls.h [media] v4l2-ctrls/videodev2.h: add u8 and u16 types 2014-07-17 11:57:25 -03:00
v4l2-dev.h [media] media: v4l2-dev.h: remove V4L2_FL_USE_FH_PRIO flag 2014-07-04 16:15:16 -03:00
v4l2-device.h [media] v4l2-subdev.h: fix sparse error with v4l2_subdev_notify 2014-04-16 18:13:56 -03:00
v4l2-dv-timings.h [media] v4l2-dv-timings: add callback to handle exceptions 2013-08-24 04:30:01 -03:00
v4l2-event.h [media] v4l: Add source change event 2014-05-23 19:50:40 -03:00
v4l2-fh.h [media] V4L: Add mem2mem ioctl and file operation helpers 2013-12-04 15:34:24 -02:00
v4l2-image-sizes.h [media] V4L: Add header file defining standard image sizes 2013-02-05 14:59:41 -02:00
v4l2-ioctl.h [media] v4l2: integrate support for VIDIOC_QUERY_EXT_CTRL 2014-07-17 10:38:44 -03:00
v4l2-mediabus.h [media] media: OF: add "sync-on-green-active" property 2013-08-24 04:15:05 -03:00
v4l2-mem2mem.h [media] V4L: Add mem2mem ioctl and file operation helpers 2013-12-04 15:34:24 -02:00
v4l2-of.h [media] of: move common endpoint parsing to drivers/of 2014-03-06 17:41:48 +01:00
v4l2-subdev.h [media] v4l: subdev: Remove deprecated video-level DV timings operations 2014-05-25 12:59:08 -03:00
videobuf2-core.h [media] v4l: vb2: Add fatal error condition flag 2014-07-17 16:19:04 -03:00
videobuf2-dma-contig.h [media] videobuf2: correct the #ifndef text mistake in videobuf2-dma-contig.h 2012-06-18 19:54:42 -03:00
videobuf2-dma-sg.h [media] videobuf2-dma-sg: Replace vb2_dma_sg_desc with sg_table 2013-09-26 07:33:59 -03:00
videobuf2-dvb.h [media] vb2: Add videobuf2-dvb support 2014-04-16 18:59:29 -03:00
videobuf2-memops.h [media] v4l: vb2-dma-contig: let mmap method to use dma_mmap_coherent call 2012-11-25 17:20:25 -02:00
videobuf2-vmalloc.h [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
videobuf-core.h [media] videobuf-core.h: remove input fields 2012-07-05 18:03:20 -03:00
videobuf-dma-contig.h [media] videobuf-dma-contig: remove support for cached mem 2013-04-25 09:50:19 -03:00
videobuf-dma-sg.h doc: fix broken references 2011-09-27 18:08:04 +02:00
videobuf-dvb.h [media] dvb: get rid of fe_ioctl_override callback 2012-08-13 16:34:03 -03:00
videobuf-vmalloc.h V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00
wm8775.h [media] Add proper audio support for Nova-S Plus with wm8775 ADC 2011-03-21 20:32:19 -03:00