linux/drivers/media/video
Sakari Ailus 6016af82ea [media] v4l2: use __u32 rather than enums in ioctl() structs
V4L2 uses the enum type in IOCTL arguments in IOCTLs that were defined until
the use of enum was considered less than ideal. Recently Rémi Denis-Courmont
brought up the issue by proposing a patch to convert the enums to unsigned:

<URL:http://www.spinics.net/lists/linux-media/msg46167.html>

This sparked a long discussion where another solution to the issue was
proposed: two sets of IOCTL structures, one with __u32 and the other with
enums, and conversion code between the two:

<URL:http://www.spinics.net/lists/linux-media/msg47168.html>

Both approaches implement a complete solution that resolves the problem. The
first one is simple but requires assuming enums and __u32 are the same in
size (so we won't break the ABI) while the second one is more complex and
less clean but does not require making that assumption.

The issue boils down to whether enums are fundamentally different from __u32
or not, and can the former be substituted by the latter. During the
discussion it was concluded that the __u32 has the same size as enums on all
archs Linux is supported: it has not been shown that replacing those enums
in IOCTL arguments would break neither source or binary compatibility. If no
such reason is found, just replacing the enums with __u32s is the way to go.

This is what this patch does. This patch is slightly different from Remi's
first RFC (link above): it uses __u32 instead of unsigned and also changes
the arguments of VIDIOC_G_PRIORITY and VIDIOC_S_PRIORITY.

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-05-14 08:09:02 -03:00
..
au0828 [media] drivers/media/video/au0828/au0828-video.c: add missing video_device_release 2012-05-02 09:09:10 -03:00
blackfin [media] add blackfin capture bridge driver 2012-03-19 15:08:20 -03:00
bt8xx [media] Default bt878 contrast value 2012-04-11 07:55:35 -03:00
cpia2 [media] cpia2: major overhaul to get it in a working state again 2012-05-07 16:21:05 -03:00
cx18 [media] V4L2: drivers implementing vidioc_default should also return -ENOTTY 2012-04-19 17:23:55 -03:00
cx88 Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-01-18 12:53:54 -08:00
cx231xx [media] media, cx231xx: Fix double free on close 2012-03-19 14:13:51 -03:00
cx23885 [media] cx23885: Don't duplicate xc4000 entry for radio 2012-01-16 11:55:12 -02:00
cx25821 [media] cx25821: Add a card definition for "No brand" cards that have: subvendor = 0x0000 subdevice = 0x0000 2012-03-08 12:42:28 -03:00
cx25840 [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
davinci [media] V4L2: drivers implementing vidioc_default should also return -ENOTTY 2012-04-19 17:23:55 -03:00
em28xx [media] em28xx: Make em28xx-input.c a separate module 2012-04-10 20:45:41 -03:00
gspca [media] gspca_pac7302: Improve the gain control 2012-05-07 16:15:48 -03:00
hdpvr Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-02-24 12:32:51 -08:00
ivtv [media] v4l2-ctrls: Use v4l2_subscribed_event_ops 2012-05-07 16:29:35 -03:00
m5mols [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
marvell-ccic [media] marvell-cam: Demote the "release" print to debug level 2012-03-19 22:17:06 -03:00
omap [media] omap_vout: fix section mismatch 2012-01-23 15:27:17 -02:00
omap3isp [media] omap3isp: resizer: Replace the crop API by the selection API 2012-05-08 14:16:23 -03:00
pvrusb2 [media] pvrusb2: For querystd, start with list of hardware-supported standards 2012-05-07 16:58:00 -03:00
pwc pwc: Add support for control events 2012-04-09 08:28:33 -03:00
s5p-fimc [media] s5p-fimc: Handle sub-device interdependencies using deferred probing 2012-04-10 15:25:25 -03:00
s5p-g2d [media] s5p-g2d: Added locking for writing control values to registers 2012-03-08 07:43:37 -03:00
s5p-jpeg [media] s5p-jpeg: Adapt to new controls 2012-03-08 07:43:51 -03:00
s5p-mfc [media] s5p-mfc: Added support for clk_prepare 2012-03-08 07:42:52 -03:00
s5p-tv [media] s5p-tv: mark const init data with __initconst instead of __initdata 2012-04-10 21:38:16 -03:00
saa7134 [media] Add support for KWorld PC150-U ATSC hybrid tuner card 2012-03-08 11:01:25 -03:00
saa7164 [media] saa7164: saa7164_vbi_stop_port() returns linux error codes 2012-04-26 15:28:31 -03:00
sn9c102 module_param: check type correctness for module_param_array 2012-01-13 09:32:16 +10:30
tlg2300 [media] tlg2300: Remove usage of KERNEL_VERSION() 2012-04-19 16:47:07 -03:00
tm6000 [media] tm6000: don't use KERNEL_VERSION 2012-04-19 16:49:30 -03:00
usbvision Merge tag 'v3.2-rc2' into staging/for_v3.3 2011-11-23 19:42:09 -02:00
uvc [media] uvcvideo: Use videobuf2 .get_unmapped_area() implementation 2012-05-08 13:46:19 -03:00
zoran [media] zoran: fix integer overflow in setup_window() 2012-04-19 09:11:25 -03:00
adp1653.c [media] drivers: media: video: adp1653.c: Remove unneeded include of version.h 2012-04-19 16:53:59 -03:00
adv7170.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
adv7175.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
adv7180.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
adv7183.c [media] adv7183: add adv7183 decoder driver 2012-03-19 15:04:10 -03:00
adv7183_regs.h [media] adv7183: add adv7183 decoder driver 2012-03-19 15:04:10 -03:00
adv7343.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
adv7343_regs.h
ak881x.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
aptina-pll.c [media] v4l: aptina-pll: Round up minimum multiplier factor value properly 2012-05-08 14:26:41 -03:00
aptina-pll.h [media] v4l: Aptina-style sensor PLL support 2012-03-19 18:53:39 -03:00
arv.c
as3645a.c [media] as3645a: move relevant code under __devinit/__devexit 2012-05-08 14:28:41 -03:00
atmel-isi.c [media] V4L: atmel-isi: add clk_prepare()/clk_unprepare() functions 2012-01-23 18:13:21 -02:00
bt819.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
bt856.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
bt866.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
btcx-risc.c
btcx-risc.h
bw-qcam.c
c-qcam.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
cs53l32a.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
cs5345.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
cs8420.h
cx2341x.c
fsl-viu.c [media] convert drivers/media/* to use module_platform_driver() 2012-01-10 23:27:13 -02:00
hexium_gemini.c 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
hexium_orion.c 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
ibmmpeg2.h
imx074.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
indycam.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
indycam.h
ir-kbd-i2c.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
Kconfig [media] media/video/et61x251: Remove this deprecated driver 2012-05-07 16:16:16 -03:00
ks0127.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ks0127.h
m52790.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
Makefile [media] media/video/et61x251: Remove this deprecated driver 2012-05-07 16:16:16 -03:00
mem2mem_testdev.c
meye.c [media] V4L2: drivers implementing vidioc_default should also return -ENOTTY 2012-04-19 17:23:55 -03:00
meye.h
msp3400-driver.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
msp3400-driver.h module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
msp3400-kthreads.c
mt9m001.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9m032.c [media] v4l: Add driver for Micron MT9M032 camera sensor 2012-03-19 18:56:33 -03:00
mt9m111.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9p031.c [media] mt9p031: Use generic PLL setup code 2012-03-19 18:54:22 -03:00
mt9t001.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9t031.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9t112.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9v011.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9v022.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9v032.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mx1_camera.c [media] soc-camera: remove redundant parameter from .set_bus_param() 2012-01-06 11:00:23 -02:00
mx2_camera.c [media] media: i.MX27 camera: Add resizing support 2012-03-08 10:06:44 -03:00
mx2_emmaprp.c [media] i.MX2: eMMa-PrP: Allow userptr IO mode 2012-04-10 15:40:08 -03:00
mx3_camera.c dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
mxb.c [media] V4L2: drivers implementing vidioc_default should also return -ENOTTY 2012-04-19 17:23:55 -03:00
mxb.h
noon010pc30.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
omap1_camera.c [media] convert drivers/media/* to use module_platform_driver() 2012-01-10 23:27:13 -02:00
omap24xxcam-dma.c [media] [trivial] omap24xxcam-dma: Fix logical test 2011-12-09 20:28:42 -02:00
omap24xxcam.c [media] convert drivers/media/* to use module_platform_driver() 2012-01-10 23:27:13 -02:00
omap24xxcam.h
ov772x.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ov2640.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ov5642.c [media] V4L: OV5642:remove redundant code to set cropping w/h 2012-04-10 21:31:19 -03:00
ov6650.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ov7670.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ov9640.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ov9640.h
ov9740.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
pms.c
pxa_camera.c [media] V4L: pxa_camera: add clk_prepare/clk_unprepare calls 2012-03-19 22:11:07 -03:00
rj54n1cb0c.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
s5k6aa.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
s2255drv.c [media] s2255drv: Remove redundant NULL test before release_firmware() 2012-04-19 09:09:58 -03:00
saa711x_regs.h
saa717x.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa6588.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7110.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7115.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7121.h
saa7127.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7146.h
saa7146reg.h
saa7185.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7191.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7191.h
sh_mobile_ceu_camera.c [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.c [media] convert drivers/media/* to use module_platform_driver() 2012-01-10 23:27:13 -02:00
sh_vou.c
soc_camera.c [media] V4L: soc-camera: call soc_camera_power_on() after adding the client to the host 2012-03-19 22:11:05 -03:00
soc_camera_platform.c [media] convert drivers/media/* to use module_platform_driver() 2012-01-10 23:27:13 -02:00
soc_mediabus.c
sr030pc30.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
stk-sensor.c
stk-webcam.c [media] stk-webcam: Don't flip the image by default 2012-05-07 16:11:03 -03:00
stk-webcam.h
tcm825x.c
tcm825x.h
tda7432.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tda9840.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tea6415c.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tea6415c.h
tea6420.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tea6420.h
ths7303.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
timblogiw.c dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
tlv320aic23b.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tuner-core.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tvaudio.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tveeprom.c [media] tveeprom: update hauppauge tuner list thru 181 2012-02-28 18:46:53 -03:00
tvp514x.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tvp514x_regs.h
tvp5150.c [media] media: tvp5150: support g_mbus_fmt callback 2012-03-08 12:07:14 -03:00
tvp5150_reg.h
tvp7002.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tvp7002_reg.h
tw9910.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
upd64031a.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
upd64083.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
v4l2-common.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
v4l2-compat-ioctl32.c [media] v4l2: use __u32 rather than enums in ioctl() structs 2012-05-14 08:09:02 -03:00
v4l2-ctrls.c [media] v4l2-ctrls: Use v4l2_subscribed_event_ops 2012-05-07 16:29:35 -03:00
v4l2-dev.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
v4l2-device.c [media] media: fix truncated entity specification 2011-12-20 09:31:50 -02:00
v4l2-event.c [media] v4l2-ctrls: Use v4l2_subscribed_event_ops 2012-05-07 16:29:35 -03:00
v4l2-fh.c
v4l2-int-device.c
v4l2-ioctl.c [media] -EINVAL -> -ENOTTY 2012-03-19 22:36:13 -03:00
v4l2-mem2mem.c
v4l2-subdev.c [media] v4l: Support s_crop and g_crop through s/g_selection 2012-04-10 15:02:26 -03:00
via-camera.c Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-01-15 12:49:56 -08:00
via-camera.h
videobuf-core.c [media] videobuf: only start streaming in poll() if so requested by the poll mask 2012-03-27 11:41:33 -03:00
videobuf-dma-contig.c
videobuf-dma-sg.c
videobuf-dvb.c [media] videobuf-dvb: avoid spurious ENOMEM when CONFIG_DVB_NET=n 2012-01-06 12:42:19 -02:00
videobuf-vmalloc.c
videobuf2-core.c [media] videobuf2-core: also test for pending events 2012-03-27 11:41:48 -03:00
videobuf2-dma-contig.c [media] media: videobuf2-dma-contig: quiet sparse noise about plain integer as NULL pointer 2012-05-08 14:35:14 -03:00
videobuf2-dma-sg.c [media] media: vb2: fix potential deadlock in mmap vs. get_userptr handling 2011-12-30 16:06:49 -02:00
videobuf2-memops.c [media] media: vb2: fix potential deadlock in mmap vs. get_userptr handling 2011-12-30 16:06:49 -02:00
videobuf2-vmalloc.c [media] media: vb2: support userptr for PFN mappings 2012-03-08 07:42:17 -03:00
vino.c [media] v4l: Casting (void *) value returned by kmalloc is useless 2011-11-24 21:06:57 -02:00
vino.h
vivi.c [media] vivi: fix duplicate line 2012-04-19 17:24:53 -03:00
vp27smpx.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
vpx3220.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
vs6624.c [media] vs6624: add vs6624 sensor driver 2012-03-19 15:04:26 -03:00
vs6624_regs.h [media] vs6624: add vs6624 sensor driver 2012-03-19 15:04:26 -03:00
w9966.c [media] /w9966: Fix a build warning 2012-03-19 15:37:59 -03:00
wm8739.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
wm8775.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
zr364xx.c USB: convert drivers/media/* to use module_usb_driver() 2011-11-18 09:46:12 -08:00