OpenCloudOS-Kernel/include/media
Hans Verkuil 5126f2590b [media] v4l2-dev: add flag to have the core lock all file operations
This used to be the default if the lock pointer was set, but now that lock is by
default only used for ioctl serialization. Those drivers that already used
core locking have this flag set explicitly, except for some drivers where
it was obvious that there was no need to serialize any file operations other
than ioctl.

The drivers that didn't need this flag were:

drivers/media/radio/dsbr100.c
drivers/media/radio/radio-isa.c
drivers/media/radio/radio-keene.c
drivers/media/radio/radio-miropcm20.c
drivers/media/radio/radio-mr800.c
drivers/media/radio/radio-tea5764.c
drivers/media/radio/radio-timb.c
drivers/media/video/vivi.c
sound/i2c/other/tea575x-tuner.c

The other drivers that use core locking and where it was not immediately
obvious that this flag wasn't needed were changed so that the flag is set
together with a comment that that driver needs work to avoid having to
set that flag. This will often involve taking the core lock in the fops
themselves.

Eventually this flag should go and it should not be used in new drivers.

There are a few reasons why we want to avoid core locking of non-ioctl
fops: in the case of mmap this can lead to a deadlock in rare situations
since when mmap is called the mmap_sem is held and it is possible for
other parts of the code to take that lock as well (copy_from_user()/copy_to_user()
perform a down_read(&mm->mmap_sem) when a page fault occurs).

It is very unlikely that that happens since the core lock serializes all
fops, but the kernel warns about it if lock validation is turned on.

For poll it is also undesirable to take the core lock as that can introduce
increased latency. The same is true for read/write.

While it was possible to make flags or something to turn on/off taking the
core lock for each file operation, in practice it is much simpler to just
not take it at all except for ioctl and leave it to the driver to take the
lock. There are only a handful fops compared to the zillion ioctls we have.

I also wanted to make it obvious which drivers still take the lock for all
fops, so that's why I chose to have drivers set it explicitly.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-05-14 09:19:38 -03:00
..
blackfin [media] add blackfin capture bridge driver 2012-03-19 15:08:20 -03:00
davinci [media] davinci: vpif: remove machine specific header file includes 2012-02-08 10:46:54 -02:00
adp1653.h [media] adp1653: Add driver for LED flash controller 2011-07-27 17:55:39 -03:00
adv7183.h [media] adv7183: add adv7183 decoder driver 2012-03-19 15:04:10 -03:00
adv7343.h V4L/DVB (11743): Analog Devices ADV7343 video encoder driver 2009-06-16 18:20:59 -03: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] atmel-isi: add code to enable/disable ISI_MCK clock 2012-01-06 11:01:11 -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 V4L/DVB (6869): cs5345: new i2c driver 2008-01-25 19:04:08 -02:00
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
gpio-ir-recv.h [media] gpio-ir-recv: a couple signedness bugs 2012-03-19 15:45:01 -03:00
i2c-addr.h V4L/DVB (9940): bt832: remove this driver 2008-12-30 09:39:25 -02:00
ir-kbd-i2c.h [media] rc: Rename remote controller type to rc_type instead of ir_type 2010-12-29 08:16:50 -02:00
lirc.h Fix common misspellings 2011-03-31 11:26:23 -03:00
lirc_dev.h [media] lirc_dev: store cdev in irctl, up maxdevs 2011-06-11 09:03:20 -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 V4L/DVB (6486): m52790: add new Mitsubishi A/V switch i2c driver 2008-01-25 19:01:46 -02:00
media-device.h device.h: audit and cleanup users in main include dir 2012-03-16 10:38:24 -04:00
media-devnode.h [media] media: Media device node support 2011-03-22 04:52:22 -03:00
media-entity.h [media] media: Add link_validate() op to check links to the sink pad 2012-05-14 08:44:11 -03:00
mmp-camera.h [media] marvell-cam: Basic working MMP camera driver 2011-07-27 17:53:01 -03:00
msp3400.h V4L/DVB (11380): v4l2-subdev: change s_routing prototype 2009-04-06 21:44:27 -03:00
mt9m032.h [media] v4l: Add driver for Micron MT9M032 camera sensor 2012-03-19 18:56:33 -03:00
mt9p031.h [media] mt9p031: Aptina (Micron) MT9P031 5MP sensor driver 2011-09-11 09:49:28 -03:00
mt9t001.h [media] mt9t001: Aptina (Micron) MT9T001 3MP sensor driver 2011-09-21 15:31:08 -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
mt9v032.h [media] v4l: Add mt9v032 sensor driver 2011-05-20 09:29:49 -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: Add lane configuration to platform data 2012-05-14 08:50:23 -03:00
ov772x.h [media] V4L: ov772x: remove superfluous soc-camera client operations 2011-11-03 18:28:05 -02:00
ov7670.h [media] marvell-cam: Move cafe-ccic into its own directory 2011-07-27 17:53:00 -03: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.h: Surround macro with do {} while (0) 2011-09-03 20:56:22 -03:00
rc-map.h [media] ati_remote: add support for Medion X10 Digitainer remote 2012-04-11 02:05:46 -03: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
s5k6aa.h [media] v4l: Add v4l2 subdev driver for S5K6AAFX sensor 2011-11-03 18:29:11 -02:00
s5p_fimc.h [media] s5p-fimc: Convert to use generic media bus polarity flags 2011-09-24 00:22:31 -03:00
s5p_hdmi.h [media] v4l: s5p-tv: hdmi: add support for platform data 2012-02-28 18:26:40 -03:00
saa6588.h [media] saa6588: rename rds.h to saa6588.h 2010-12-29 08:17:18 -02:00
saa6752hs.h
saa7115.h V4L/DVB (8940): saa7115: fix saa7111(a) support 2008-10-12 09:37:00 -02:00
saa7127.h
saa7146.h Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
saa7146_vv.h V4L/DVB: saa7146: fix regression of the av7110/budget-av driver 2010-05-06 19:20:50 -03:00
sh_mobile_ceu.h [media] V4L: sh_mobile_ceu_camera: maximum image size depends on the hardware version 2012-03-19 22:11:06 -03:00
sh_mobile_csi2.h [media] V4L: sh_mobile_csi2: switch away from using the soc-camera bus notifier 2011-07-27 17:56:08 -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
si4713.h [media] radio-si4713: Add regulator framework support 2010-12-29 08:16:35 -02:00
sii9234.h [media] v4l: s5p-tv: add sii9234 driver 2012-02-28 18:25:46 -03:00
smiapp.h [media] smiapp: Add driver 2012-05-14 09:06:00 -03:00
soc_camera.h [media] soc-camera: remove redundant parameter from .set_bus_param() 2012-01-06 11:00:23 -02:00
soc_camera_platform.h [media] V4L: soc_camera_platform: remove superfluous soc-camera client operations 2011-11-03 18:28:12 -02:00
soc_mediabus.h [media] V4L: soc-camera: add helper functions for new bus configuration type 2011-11-03 18:27:13 -02:00
sr030pc30.h [media] Add driver for Siliconfile SR030PC30 VGA camera 2010-10-21 07:55:49 -02: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 V4L/DVB (7352): tuner-simple: enable digital tuning support for Philips FMD1216ME 2008-04-24 14:07:50 -03:00
tuner.h [media] tuner: add support for Xceive XC5000C 2012-02-14 17:20:46 -02:00
tvaudio.h V4L/DVB (11376): tvaudio.h: add static inline to retrieve the list of possible i2c addrs. 2009-04-06 21:44:25 -03:00
tveeprom.h V4L/DVB (8479): tveeprom/ivtv: fix usage of has_ir field 2008-07-26 12:54:42 -03:00
tvp514x.h V4L/DVB (12246): tvp514x: Migration to sub-device framework 2009-09-19 00:18:09 -03:00
tvp5150.h
tvp7002.h V4L/DVB: Definitions for TVP7002 in DM365 2010-02-26 15:11:01 -03:00
tw9910.h tw9910: use TABs for indentation 2010-02-26 15:10:59 -03:00
upd64031a.h
upd64083.h
v4l2-chip-ident.h [media] vs6624: add vs6624 sensor driver 2012-03-19 15:04:26 -03:00
v4l2-common.h [media] v4l2_prio: move from v4l2-common to v4l2-dev 2011-03-22 16:37:54 -03:00
v4l2-ctrls.h [media] v4l: Allow changing control handler lock 2012-05-14 08:46:27 -03:00
v4l2-dev.h [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
v4l2-device.h [media] v4l2-device: fix a macro definition 2011-04-13 09:53:29 -03:00
v4l2-event.h [media] v4l2-event: Add v4l2_subscribed_event_ops 2012-05-07 16:28:35 -03:00
v4l2-fh.h [media] v4l2-event/ctrls/fh: allocate events per fh and per type instead of just per-fh 2011-07-27 17:53:31 -03:00
v4l2-int-device.h include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
v4l2-ioctl.h The following text was taken from the original review request: 2012-03-24 10:41:37 -07:00
v4l2-mediabus.h [media] v4l2: Add polarity flag definitions for the parallel bus FIELD signal 2011-09-24 00:21:31 -03:00
v4l2-mem2mem.h [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
v4l2-subdev.h [media] v4l: Implement v4l2_subdev_link_validate() 2012-05-14 08:45:31 -03:00
videobuf-core.h [media] V4L: remove V4L1 compatibility mode 2010-12-29 08:17:07 -02:00
videobuf-dma-contig.h V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00
videobuf-dma-sg.h doc: fix broken references 2011-09-27 18:08:04 +02:00
videobuf-dvb.h [media] Add missing include guard to header file 2011-05-25 21:42:30 -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
videobuf2-core.h [media] vb2: add vb2_get_unmapped_area in vb2 core 2011-11-03 18:29:13 -02:00
videobuf2-dma-contig.h [media] media: vb2: dma contig allocator: use dma_addr instread of paddr 2011-09-06 15:05:10 -03:00
videobuf2-dma-sg.h [media] v4l: videobuf2: add DMA scatter/gather allocator 2011-03-21 20:31:34 -03:00
videobuf2-memops.h [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
videobuf2-vmalloc.h [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
wm8775.h [media] Add proper audio support for Nova-S Plus with wm8775 ADC 2011-03-21 20:32:19 -03:00