linux/drivers/media/video
Darron Broad 59b1842da1 V4L/DVB (9227): MFE: Add multi-frontend mutual exclusion
This add frontend R/W mutual exclusion.
Prior to this point in time it was possible to open both
frontends simultaneously which an MFE card cannot support.

In order to stop this, a delayed open is performed which
has the following function:

-  Return EBUSY after a configurable amount of time
   if a frontend is unavailable due to the other being
   in use.

-  Only allow opening of a frontend if the kernel thread
   of the other has stopped.

This solution was chosen to allow switching between
frontends to work as seamlessly as possible. When both
frontends are actually opened simultaneously then one
will only open, but if quick switching is performed
between one of many then the new open will succeed in
a clean fashion rather than interrupting a kernel
thread.

Signed-off-by: Darron Broad <darron@kewl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-10-17 17:24:15 -03:00
..
au0828 V4L/DVB (9149): hvr950q: led feedback based on snr 2008-10-13 07:15:57 -02:00
bt8xx V4L/DVB (9160): v4l: remove vidioc_enum_fmt_vbi_cap 2008-10-13 09:07:55 -02:00
cpia2 V4L/DVB (8906): v4l-dvb: fix assorted sparse warnings 2008-10-12 09:36:58 -02:00
cx18 V4L/DVB (9157): cx18/ivtv: add 'PCI:' prefix to bus_info. 2008-10-13 09:07:42 -02:00
cx88 V4L/DVB (9227): MFE: Add multi-frontend mutual exclusion 2008-10-17 17:24:15 -03:00
cx23885 V4L/DVB (9227): MFE: Add multi-frontend mutual exclusion 2008-10-17 17:24:15 -03:00
cx25840 V4L/DVB (9162): ivtv: fix raw/sliced VBI mixup 2008-10-13 09:08:01 -02:00
em28xx V4L/DVB (9155): em28xx-dvb: dvb_init() code factorization 2008-10-13 07:16:18 -02:00
et61x251 V4L/DVB (8788): v4l: replace video_get_drvdata(video_devdata(filp)) with video_drvdata(filp) 2008-10-12 09:36:54 -02:00
gspca V4L/DVB (9126): gspca: Fix some compilation warnings in m5602. 2008-10-12 09:37:16 -02:00
ivtv V4L/DVB (9191): ivtv: partially revert an earlier patch that checks the max image height 2008-10-17 17:14:39 -03:00
ovcamchip V4L/DVB (8906): v4l-dvb: fix assorted sparse warnings 2008-10-12 09:36:58 -02:00
pvrusb2 V4L/DVB (9116): USB: remove info() macro from usb media drivers 2008-10-12 09:37:14 -02:00
pwc V4L/DVB: remove unused #include <version.h> 2008-10-12 09:37:01 -02:00
saa7134 V4L/DVB (9227): MFE: Add multi-frontend mutual exclusion 2008-10-17 17:24:15 -03:00
sn9c102 V4L/DVB (8906): v4l-dvb: fix assorted sparse warnings 2008-10-12 09:36:58 -02:00
usbvideo V4L/DVB (9116): USB: remove info() macro from usb media drivers 2008-10-12 09:37:14 -02:00
usbvision remove CONFIG_KMOD from drivers 2008-10-17 02:38:35 +11:00
uvc V4L/DVB (9169): uvcvideo: Support two new Bison Electronics webcams. 2008-10-13 12:16:21 -02:00
zc0301 V4L/DVB (8788): v4l: replace video_get_drvdata(video_devdata(filp)) with video_drvdata(filp) 2008-10-12 09:36:54 -02:00
zoran V4L/DVB (9197): zoran: set adapter class to I2C_CLASS_TV_ANALOG 2008-10-17 17:15:49 -03:00
Kconfig V4L/DVB (9129): zoran: move zoran sources into a zoran subdirectory 2008-10-12 09:39:04 -02:00
Makefile V4L/DVB (9129): zoran: move zoran sources into a zoran subdirectory 2008-10-12 09:39:04 -02:00
adv7170.c V4L/DVB (9198): adv7170: convert i2c driver for new i2c API 2008-10-17 17:15:58 -03:00
adv7175.c V4L/DVB (9199): adv7175: convert i2c driver for new i2c API 2008-10-17 17:16:08 -03:00
arv.c V4L/DVB (8786): v4l2: remove the priv field, use dev_get_drvdata instead 2008-10-12 09:36:54 -02:00
bt819.c V4L/DVB (9200): bt819: convert i2c driver for new i2c API 2008-10-17 17:17:20 -03:00
bt856.c V4L/DVB (9201): bt856: convert i2c driver for new i2c API 2008-10-17 17:17:30 -03:00
bt866.c V4L/DVB (9202): bt866: convert i2c driver for new i2c API 2008-10-17 17:17:36 -03:00
btcx-risc.c V4L/DVB (8745): v4l2: fix a bunch of compile warnings. 2008-10-12 09:36:52 -02:00
btcx-risc.h V4L/DVB (8757): v4l-dvb: fix a bunch of sparse warnings 2008-09-03 18:37:13 -03:00
bw-qcam.c V4L/DVB (8783): v4l: add all missing video_device release callbacks 2008-10-12 09:36:54 -02:00
bw-qcam.h V4L/DVB (8780): v4l: replace the last uses of video_exclusive_open/release 2008-10-12 09:36:53 -02:00
c-qcam.c V4L/DVB (8783): v4l: add all missing video_device release callbacks 2008-10-12 09:36:54 -02:00
cafe_ccic-regs.h
cafe_ccic.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2008-10-13 14:03:59 -07:00
compat_ioctl32.c V4L/DVB (8434): Fix x86_64 compilation and move some macros to v4l2-ioctl.h 2008-07-23 19:00:22 -03:00
cpia.c remove CONFIG_KMOD from drivers 2008-10-17 02:38:35 +11:00
cpia.h V4L/DVB (8430): videodev: move some functions from v4l2-dev.h to v4l2-common.h or v4l2-ioctl.h 2008-07-23 19:00:17 -03:00
cpia_pp.c
cpia_usb.c V4L/DVB (7518): media/video/ replace remaining __FUNCTION__ occurrences 2008-04-24 14:07:59 -03:00
cs53l32a.c Remove newline from the description of module parameters 2008-08-01 12:46:41 -07:00
cs5345.c Remove newline from the description of module parameters 2008-08-01 12:46:41 -07:00
cs8420.h
cx2341x.c V4L/DVB (8634): v4l2: extend MPEG Encoding API with AVC and AAC 2008-10-12 09:36:47 -02:00
dabusb.c V4L/DVB (9116): USB: remove info() macro from usb media drivers 2008-10-12 09:37:14 -02:00
dabusb.h
font.h
hexium_gemini.c V4L/DVB (7094): static memory 2008-04-24 13:42:20 -03:00
hexium_orion.c V4L/DVB (7094): static memory 2008-04-24 13:42:20 -03:00
ibmmpeg2.h
indycam.c drivers/media/: Spelling fixes 2008-02-03 17:18:59 +02:00
indycam.h
ir-kbd-i2c.c V4L/DVB (9168): Add support for MSI TV@nywhere Plus remote 2008-10-13 09:57:34 -02:00
ks0127.c V4L/DVB (9203): ks0127: convert i2c driver for new i2c API 2008-10-17 17:17:40 -03:00
ks0127.h
m52790.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
meye.c V4L/DVB (8780): v4l: replace the last uses of video_exclusive_open/release 2008-10-12 09:36:53 -02:00
meye.h V4L/DVB (8780): v4l: replace the last uses of video_exclusive_open/release 2008-10-12 09:36:53 -02:00
msp3400-driver.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
msp3400-driver.h
msp3400-kthreads.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
mt9m001.c V4L/DVB (8687): soc-camera: Move .power and .reset from soc_camera host to sensor driver 2008-10-12 09:36:50 -02:00
mt9m111.c V4L/DVB (8800): [v4l-dvb-maintainer] [PATCH] v4l: mt9m111.c make function static 2008-10-12 09:36:55 -02:00
mt9v022.c V4L/DVB (8687): soc-camera: Move .power and .reset from soc_camera host to sensor driver 2008-10-12 09:36:50 -02:00
mxb.c V4L/DVB (8945): mxb: use unique i2c adapter name 2008-10-12 09:37:00 -02:00
mxb.h
ov511.c V4L/DVB (9116): USB: remove info() macro from usb media drivers 2008-10-12 09:37:14 -02:00
ov511.h V4L/DVB (9116): USB: remove info() macro from usb media drivers 2008-10-12 09:37:14 -02:00
ov7670.c V4L/DVB (8381): ov7670: fix compile warnings 2008-07-20 07:28:27 -03:00
pms.c V4L/DVB (8783): v4l: add all missing video_device release callbacks 2008-10-12 09:36:54 -02:00
pxa_camera.c V4L/DVB: pxa-camera: Unsigned dma_chans[] cannot be negative 2008-10-12 09:37:02 -02:00
s2255drv.c V4L/DVB (8906): v4l-dvb: fix assorted sparse warnings 2008-10-12 09:36:58 -02:00
saa711x_regs.h
saa717x.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
saa5246a.c V4L/DVB (8943): saa5246a: convert i2c driver for new i2c API 2008-10-12 09:37:00 -02:00
saa5249.c V4L/DVB (9159): saa5249: fix compile errors 2008-10-13 09:07:50 -02:00
saa6588.c v4l-dvb: remove legacy checks to allow support for kernels < 2.6.10 2008-07-20 07:17:52 -03:00
saa7110.c V4L/DVB (9204): saa7110: convert i2c driver for new i2c API 2008-10-17 17:17:47 -03:00
saa7111.c V4L/DVB (9205): saa7111: convert i2c driver for new i2c API 2008-10-17 17:17:52 -03:00
saa7114.c V4L/DVB (9206): saa7114: convert i2c driver for new i2c API 2008-10-17 17:19:41 -03:00
saa7115.c V4L/DVB (9162): ivtv: fix raw/sliced VBI mixup 2008-10-13 09:08:01 -02:00
saa7121.h
saa7127.c V4L/DVB (8379): saa7127: Make device detection optional 2008-07-20 07:28:17 -03:00
saa7146.h
saa7146reg.h
saa7185.c V4L/DVB (9207): saa7185: convert i2c driver for new i2c API 2008-10-17 17:20:01 -03:00
saa7191.c
saa7191.h
se401.c V4L/DVB (9116): USB: remove info() macro from usb media drivers 2008-10-12 09:37:14 -02:00
se401.h V4L/DVB (8430): videodev: move some functions from v4l2-dev.h to v4l2-common.h or v4l2-ioctl.h 2008-07-23 19:00:17 -03:00
sh_mobile_ceu_camera.c V4L/DVB (8687): soc-camera: Move .power and .reset from soc_camera host to sensor driver 2008-10-12 09:36:50 -02:00
soc_camera.c V4L/DVB (8610): Add suspend/resume capabilities to soc_camera. 2008-08-06 06:57:32 -03:00
soc_camera_platform.c V4L/DVB (8609): media: Clean up platform_driver_unregister() bogosity. 2008-08-06 06:57:30 -03:00
stk-sensor.c V4L/DVB (7104): stk-sensor.c: make 2 functions static 2008-02-18 11:15:08 -03:00
stk-webcam.c V4L/DVB (9194): stk-webcam: fix crash on close after disconnect 2008-10-17 17:15:06 -03:00
stk-webcam.h V4L/DVB (9193): stk-webcam: minor cleanup 2008-10-17 17:14:57 -03:00
stradis.c V4L/DVB (8783): v4l: add all missing video_device release callbacks 2008-10-12 09:36:54 -02:00
stv680.c V4L/DVB (9116): USB: remove info() macro from usb media drivers 2008-10-12 09:37:14 -02:00
stv680.h
tcm825x.c V4L/DVB (7897): TCM825x: Include invertation of image mirroring in configuration 2008-07-20 07:06:01 -03:00
tcm825x.h V4L/DVB (7897): TCM825x: Include invertation of image mirroring in configuration 2008-07-20 07:06:01 -03:00
tda7432.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
tda9840.c V4L/DVB (9033): drivers/media/video/tda9840.c: unbreak 2008-10-12 09:37:08 -02:00
tda9840.h V4L/DVB (8941): mxb/tda9840: cleanups, use module saa7115 instead of saa7111. 2008-10-12 09:37:00 -02:00
tda9875.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
tea6415c.c V4L/DVB (8630): First mxb cleanup phase 2008-10-12 09:36:47 -02:00
tea6415c.h
tea6420.c V4L/DVB (8630): First mxb cleanup phase 2008-10-12 09:36:47 -02:00
tea6420.h
tlv320aic23b.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
tuner-core.c V4L/DVB (9049): convert tuner drivers to use dvb_frontend->callback 2008-10-12 09:37:09 -02:00
tvaudio.c security: avoid calling a NULL function pointer in drivers/video/tvaudio.c 2008-10-11 09:54:07 -07:00
tveeprom.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
tvp5150.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
tvp5150_reg.h
upd64031a.c i2c: Convert remaining new-style drivers to use module aliasing 2008-05-18 20:49:40 +02:00
upd64083.c i2c: Convert remaining new-style drivers to use module aliasing 2008-05-18 20:49:40 +02:00
v4l1-compat.c remove CONFIG_KMOD from drivers 2008-10-17 02:38:35 +11:00
v4l2-common.c remove CONFIG_KMOD from drivers 2008-10-17 02:38:35 +11:00
v4l2-dev.c V4L/DVB (9133): v4l: disconnect kernel number from minor 2008-10-12 09:37:16 -02:00
v4l2-int-device.c V4L/DVB (7485): v4l2-int-device.c: add MODULE_LICENSE 2008-04-01 19:35:47 -03:00
v4l2-ioctl.c V4L/DVB (9160): v4l: remove vidioc_enum_fmt_vbi_cap 2008-10-13 09:07:55 -02:00
videobuf-core.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
videobuf-dma-contig.c V4L/DVB (8425): v4l: fix checkpatch errors introduced by recent commits 2008-07-23 08:09:21 -03:00
videobuf-dma-sg.c V4L/DVB (8340): videobuf: Fix gather spelling 2008-07-20 07:25:32 -03:00
videobuf-dvb.c V4L/DVB (9227): MFE: Add multi-frontend mutual exclusion 2008-10-17 17:24:15 -03:00
videobuf-vmalloc.c V4L/DVB (8525): fix a few assorted spelling mistakes. 2008-07-27 11:07:13 -03:00
vino.c remove CONFIG_KMOD from drivers 2008-10-17 02:38:35 +11:00
vino.h
vivi.c V4L/DVB (8613): v4l: move BKL down to the driver level. 2008-10-12 09:36:47 -02:00
vp27smpx.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
vpx3220.c V4L/DVB (9208): vpx3220: convert i2c driver for new i2c API 2008-10-17 17:20:13 -03:00
w9966.c V4L/DVB (8788): v4l: replace video_get_drvdata(video_devdata(filp)) with video_drvdata(filp) 2008-10-12 09:36:54 -02:00
w9968cf.c remove CONFIG_KMOD from drivers 2008-10-17 02:38:35 +11:00
w9968cf.h V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
w9968cf_decoder.h
w9968cf_vpp.h
wm8739.c V4L/DVB (8789): wm8739: remove wrong kfree 2008-09-10 23:18:32 -03:00
wm8775.c V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
zr364xx.c V4L/DVB (9116): USB: remove info() macro from usb media drivers 2008-10-12 09:37:14 -02:00