summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video
AgeCommit message (Collapse)Author
2008-07-11uvcvideo: Fix possible AB-BA deadlock with videodev_lock and open_mutexMauro Carvalho Chehab
From: Laurent Pinchart <laurent.pinchart@skynet.be> The uvcvideo driver's uvc_v4l2_open() method is called from videodev's video_open() function, which means it is called with the videodev_lock mutex held. uvc_v4l2_open() then takes uvc_driver.open_mutex to check dev->state and avoid racing against a device disconnect, which means that open_mutex must nest inside videodev_lock. However uvc_disconnect() takes the open_mutex around setting dev->state and also around putting its device reference. However, if uvc_disconnect() ends up dropping the last reference, it will call uvc_delete(), which calls into the videodev code to unregister its device, and this will end up taking videodev_lock. This opens a (unlikely in practice) window for an AB-BA deadlock and also causes a lockdep warning because of the lock misordering. Fortunately there is no apparent reason to hold open_mutex when doing kref_put() in uvc_disconnect(): if uvc_v4l2_open() runs before the state is set to UVC_DEV_DISCONNECTED, then it will take another reference to the device and kref_put() won't call uvc_delete; if uvc_v4l2_open() runs after the state is set, it will run before uvc_delete(), see the state, and return immediately -- uvc_delete() does uvc_unregister_video() (and hence video_unregister_device(), which is synchronized with videodev_lock) as its first thing, so there is no risk of use-after-free in uvc_v4l2_open(). Bug diagnosed based on a lockdep warning reported by Romano Giannetti <romano@dea.icai.upcomillas.es>. Signed-off-by: Roland Dreier <roland@digitalvampire.org> Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-04uvc/uvc_v4l2.c: suppress uninitialized var warningMauro Carvalho Chehab
From: Andrew Morton <akpm@linux-foundation.org> drivers/media/video/uvc/uvc_v4l2.c: In function `uvc_v4l2_mmap': drivers/media/video/uvc/uvc_v4l2.c:1035: warning: 'buffer' might be used uninitialized in this function Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-11ov7670: clean up ov7670_read semanticsMauro Carvalho Chehab
From: Andres Salomon <dilinger@queued.net> Cortland Setlow pointed out a bug in ov7670.c where the result from ov7670_read() was just being checked for !0, rather than <0. This made me realize that ov7670_read's semantics were rather confusing; it both fills in 'value' with the result, and returns it. This is goes against general kernel convention; so rather than fixing callers, let's fix the function. This makes ov7670_read return <0 in the case of an error, and 0 upon success. Thus, code like: res = ov7670_read(...); if (!res) goto error; ..will work properly. Signed-off-by: Cortland Setlow <csetlow@tower-research.com> Signed-off-by: Andres Salomon <dilinger@debian.org> Acked-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-09uvcvideo : Add support for Asus F9GS integrated webcamMauro Carvalho Chehab
From: Laurent Pinchart <laurent.pinchart@skynet.be> Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-09gspca: fix warnings on x86_64Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> /home/v4l/master/v4l/gspca.c: In function 'gspca_frame_add': /home/v4l/master/v4l/gspca.c:222: warning: format '%d' expects type 'int', but argument 2 has type 'long int' /home/v4l/master/v4l/gspca.c: In function 'dev_read': /home/v4l/master/v4l/gspca.c:1568: warning: format '%d' expects type 'int', but argument 2 has type 'size_t' /home/v4l/master/v4l/gspca.c:1618: warning: format '%d' expects type 'int', but argument 3 has type 'size_t' Acked-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-04buf-dma-sg.c: avoid clearing memory twiceMauro Carvalho Chehab
From: Christophe Jaillet <jaillet.christophe@wanadoo.fr> 1) Remove a useless initialisation of 'i' 2) Avoid clearing the memory allocated twice (once in 'kcalloc', once in 'sg_init_table') 3) Remove a test that can never trigger. The function returns NULL in such a case, so we know that at this point 'pages[0]' != NULL Signed-off-by: Christophe Jaillet <jaillet.christophe@wanadoo.fr> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-08Fix pointer cast warnings in the ivtv framebuffer driverMauro Carvalho Chehab
From: David Howells <dhowells@redhat.com> Fix casts of pointers to integers of different sizes in the ivtv framebuffer driver. These were introduced in patch 38eb6ba5b8487d15b020fe391d324edd2b659b03. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-08Fix a const pointer error in the Conexant cx23418 MPEG encoder driverMauro Carvalho Chehab
From: David Howells <dhowells@redhat.com> Fix a const pointer to non-const pointer assignment error in the Conexant cx23418 MPEG encoder driver. This was introduces in patch 1c1e45d17b663d4749af456ab7c2fc1f36405ef8. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-10tvaudio: Stop I2C driver ID abuseMauro Carvalho Chehab
From: Jean Delvare <khali@linux-fr.org> The tvaudio driver is using "official" I2C device IDs for internal purpose. There must be some historical reason behind this but anyway, it shouldn't do that. As the stored values are never used, the easiest way to fix the problem is simply to remove them altogether. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-10ovcamchip: Delete stray I2C bus IDMauro Carvalho Chehab
From: Jean Delvare <khali@linux-fr.org> I2C_HW_SMBUS_OVFX2 is referenced in ovcamchip_core.c, but no bus uses this driver ID, so we can remove the reference. As far as I can see, the Cypress FX2 webcam is handled by a different driver (dvb-usb). Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-11saa7134: add support for AVerMedia M103Mauro Carvalho Chehab
From: Massimo Piccioni <alsa@piccio.org> The following patch updates saa7134 driver to add support for AVerMedia M103 MiniPCI DVB-T Hybrid card. Signed-off-by: Massimo Piccioni <alsa@piccio.org> [mchehab@infradead.org: fixed merge conflicts and a small codingstyle] Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-06-30ivtv: put back full device name, people relied on it in udev rules.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-06-30merge...Jean-Francois Moine
From: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
2008-06-30gspca: minor changesJean-Francois Moine
From: Jean-Francois Moine <moinejf@free.fr> main: V4L2_PIX_FMT_SPCA501 is compressed (thanks to Hans de Goede) main: return 0 when no change on vidioc_s_fmt_cap (thanks to Hans de Goede) pac207: cleanup Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
2008-06-30gspca: all subdriversJean-Francois Moine
From: Jean-Francois Moine <moinejf@free.fr> - remaning subdrivers added - remove the decoding helper and some specific frame decodings Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
2008-06-29pvrusb2: Update video_gop_sizeMike Isely
From: Mike Isely <isely@pobox.com> When switching video standard, ensure that video GOP size remains appropriately configured. Signed-off-by: Mike Isely <isely@pobox.com>
2008-06-29pvrusb2: Fix misleading source code commentMike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2008-06-29Avermedia E506 compositeMauro Carvalho Chehab
From: Tim Farrington <timf@iinet.net.au> Composite was originally mis-labelled as name_comp1, so it should be simply redone as name_comp, with its now corrected attributes. Signed-off-by: Tim Farrington <timf@iinet.net.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-06-29Fix whitespace diffs between -git and mercurialMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-06-29Fix compilation for mt9v022Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-06-29em28xx-dvb: Fix in-kernel compilationMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-06-28Fix s2255drv compilation against older kernelsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> As reported by Hermann Pitton: CC [M] /mnt/xfer/mercurial/v4l-dvb-head/v4l-dvb/v4l/s2255drv.o s2255drv.c: In function 'vidioc_querycap': s2255drv.c:809: error: implicit declaration of function 'dev_name' s2255drv.c:809: warning: passing argument 2 of 'strlcpy' makes pointer from integer without a cast Tested with kernel 2.6.25.6 Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-06-28cx18: enable TS supportHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-06-28Fix callback namesMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Callback naming has changed. Fix to the proper convention. CC: Dean Anderson <dean@sensoray.com> CC: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-06-28cx18: Upgrade to newer firmware & update cx18 documentation.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Conexant graciously gave us permission to redistribute the firmware. Update the documentation where the firmware can be downloaded. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-06-28cx18: set correct audio inputs for tuner and line-in 2.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-06-28cx18: fix v4l-cx23418-dig.fw firmware load.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-06-27cx23885: Bugfix - DVB Transport cards using DVB port VIDB/TS1 did not stream.Steven Toth
From: Steven Toth <stoth@hauppauge.com> Certain DVB cards that have demodulators on TS1/VIDB were not streaming packets. This ensure the pin directions on PAD_CTRL are set correctly, solving the issue. Signed-off-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: <>
2008-06-27cx23885: Ensure PAD_CTRL is always reset to a sensible defaultSteven Toth
From: Steven Toth <stoth@hauppauge.com> PAD_CTRL controls TS1 and TS2 input and output states, if the register became corrupt the driver was never able to recover. Signed-off-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: <>
2008-06-27cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1Steven Toth
From: Steven Toth <stoth@hauppauge.com> With the HVR1800, trying to use video0 and video1 simultaneously caused buffer corruption in the PCIe bridge. This fix reallocates video1 buffer locations to avoid the issue. Signed-off-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: <>
2008-06-28cx18/ivtv: choose a better initial TV standard for cards without eeprom.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-06-27saa7134-empress: fix MPEG control supportHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The MPEG controls could not be enumerated and so could not be read or set through the v4l2-ctl utility or shown in control panels. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-06-30From: Laurent Pinchart <laurent.pinchart@skynet.be>Mauro Carvalho Chehab
USB Video Class driver This driver supports video input devices compliant with the USB Video Class specification. This means lots of currently manufactured webcams, and probably most of the future ones. Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be> Notice: Due to MAINTAINERS file that isn't at mercurial tree, I've committed it on my -git and backported to -hg. kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-06-27cx18: fix PAL/SECAM supportHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Reverted the 'Fix unintended auto configurations in cx18-av-core' patch, instead disable the auto config completely. Fix a bug in cx18_av_vbi_setup() where the standard tests were done in the wrong order. Tested with NTSC-M, PAL-BG, PAL-I, PAL-DK, PAL-M, PAL-Nc, SECAM-DK, SECAM-L and SECAM-BG. The last one does not work at the moment due to a tda9887.c bug. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-06-24videodev: simplify get_index()Brandon Philips
Use Hans Verkuil's suggested method of implementing get_index which doesn't depend on class_for_each_device and instead uses the video_device array. This simplifies the code and reduces its memory footprint. Signed-off-by: Brandon Philips <bphilips@suse.de>
2008-07-17btaudio/tvmixer/miropcm20-rds: fix 2.6.16 compilationHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Missed a few warnings, this patch fixes them. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17videodev: add support for kernels < 2.6.19Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Add the necessary compatibility code to handle the struct device/struct class_device differences. It was too much work (with uncertain benefits) to convert several drivers to handle kernels <2.6.19, so they are not built on these older kernels. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17videodev/dabusb/dvbdev: fix 2.6.16 compilationHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> struct file_operations was made const in 2.6.17. Cast const away when compiling under 2.6.16. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17gspca/tea575x-tuner: fix compilation for kernels <= 2.6.17Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17cx18/smsusb: fix compile errors when building for kernels < 2.6.19Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17v4l-dvb: fix compilation issues for kernel 2.6.21Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> - fix unused function warnings in v4l2-i2c-drv.h and v4l2-i2c-drv-legacy.h - fix ivtvfb.c compile warning that would in fact lead to an oops - disable DVB_DRX397XD for kernels <= 2.6.21: it needs div64_64 Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17mt9m001/saa7127: fix 2.6.25 kernel build warning/error.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Allow these to build for kernels < 2.6.26. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17ov7670: fix compile warningsHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Acked-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17saa7115: use saa7115_auto instead of saa711x as the autodetect driver name.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Having an _auto suffix is less ambiguous than a 'saa711x' identifier. It's also used like this in the saa7127 driver. Thanks to Jean Delvare for suggesting this. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17saa7127: Make device detection optionalHans Verkuil
From: Jean Delvare <khali@linux-fr.org> The saa7127 driver supports all of SAA7126, SAA7127, SAA7128 and SAA1729 devices. Declare all these devices, so that board drivers can tell which device is present, instead of always relying on auto-detection (which needs to write to the chip, eek!). We still need the detection for ivtv, so a special device name "saa7127_auto" can be used when the caller doesn't know exactly which device is present. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17cx18: move cx18_av_vbi_setup to av-core.c and rename to cx18_av_std_setupHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Same issue as for cx25840: this function sets up the standard timings and has nothing to do with VBI setup. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17ivtv/cx18: ensure the default control values are correctHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> For several MPEG controls and the volume control the default as returned by VIDIOC_QUERYCTRL was incorrect and did not match the actual initial value. This is now fixed for cx18 and ivtv. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17cx25840: move cx25840_vbi_setup to core.c and rename to cx25840_std_setupHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> cx25840_vbi_setup has nothing to do with setting up VBI, but everything with setting up the standard. Move to cx25840-core.c and rename. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-07-17merge: http://linuxtv.org/hg/~jfrancois/gspca/Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-17soc_camera_platform: Add SoC Camera Platform driverMagnus Damm
This patch adds a simple platform camera device. Useful for testing cameras with SoC camera host drivers. Only one single pixel format and resolution combination is supported. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de> --- drivers/media/video/Kconfig | 6 drivers/media/video/Makefile | 1 drivers/media/video/soc_camera_platform.c | 198 +++++++++++++++++++++++++++++ include/media/soc_camera_platform.h | 15 ++ 4 files changed, 220 insertions(+)