summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* V4L/DVB: videobuf: add queue argument to videobuf_waiton()Hans Verkuil2010-10-2120-36/+58
| | | | | | | | | | | | | | | | videobuf_waiton() must unlock and relock ext_lock if it has to wait. For that to happen it needs the videobuf_queue pointer. Don't attempt to unlock/relock q->ext_lock unless it was locked in the first place. vb->state has to be protected by a spinlock to be safe. This patch is based on code from Mauro Carvalho Chehab <mchehab@redhat.com>. [mchehab@redhat.com: add extra argument to a few missing places] Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: videobuf: add ext_lock argument to the queue init functionsHans Verkuil2010-10-2128-37/+48
| | | | | | | | | Add an ext_lock argument to the videobuf init functions. This allows drivers to pass the vdev->lock pointer (or any other externally held lock) to videobuf. For now all drivers just pass NULL. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: videobuf: prepare to make locking optional in videobufHans Verkuil2010-10-216-42/+55
| | | | | | | | | | | | | Currently videobuf uses the vb_lock mutex to lock its data structures. But this locking will (optionally) move into the v4l2 core, which means that in that case vb_lock shouldn't be used since the external lock is already held. Prepare for this by adding a pointer to such an external mutex and don't lock if that pointer is set. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: v4l2: add core serialization lockHans Verkuil2010-10-214-19/+89
| | | | | | | | | | | | | | | | | | Drivers can optionally set a pointer to a mutex in struct video_device. The core will use that to lock before calling open, read, write, unlocked_ioctl, poll, mmap or release. Updated the documentation as well and ensure that v4l2-event knows about the lock: it will unlock it before doing a blocking wait on an event and relock it afterwards. Ensure that the 'video_is_registered' check is done when the lock is held: a typical disconnect will take the lock as well before unregistering the device nodes, so to prevent race conditions the video_is_registered check should also be done with the lock held. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: v4l2-dev: remove get_unmapped_areaHans Verkuil2010-10-212-20/+0
| | | | | | | The get_unmapped_area file operation is unused. Remove. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: v4l2-dev: after a disconnect any ioctl call will be blockedHans Verkuil2010-10-212-5/+4
| | | | | | | | | | Until now all fops except release and (unlocked_)ioctl returned an error after the device node was unregistered. Extend this as well to the ioctl fops. There is nothing useful that an application can do here and it complicates the driver code unnecessarily. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: Deprecate stradis driverMauro Carvalho Chehab2010-10-219-11/+21
| | | | | | | | | | | | | | | The driver author seems to not worked on this driver since its conversion from 2.2 to 2.4. Nobody is known to have a stradis hardware for testing. As it still uses V4L1 API, BKL and probably some other old stuff, someone would need to work on it to preserve the driver. Instead of investing time and efforts to keep porting it to work with new API's, it seems better to just drop the driver. So, let's move it to drivers/staging and label it to die at 2.6.38, if nobody cares enough to port parallel port support to gspca or to create a new driver that uses the same gspca-cpia sub-driver. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: Deprecate cpia driver (used for parallel port webcams)Mauro Carvalho Chehab2010-10-2112-44/+71
| | | | | | | | | | | | | | | | | cpia driver were re-written inside gspca driver, for USB devices. The only functionality that were not migrated is the support for parallel port, as: 1) the developer didn't find any hardware; 2) it doesn't seem important to keep support for a parallel port webcam, as this is an obsolete technology; 3) the changes at gspca for it to work with parallel port would be very large; 4) this driver still uses BKL. So, let's move it to drivers/staging and label it to die at 2.6.38, if nobody cares enough to port parallel port support to gspca or to create a new driver that uses the same gspca-cpia sub-driver. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: cx88: Remove BKLMauro Carvalho Chehab2010-10-212-15/+16
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: bttv: use unlocked ioctlMauro Carvalho Chehab2010-10-211-7/+7
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: bttv: fix driver lock and remove explicit calls to BKLMauro Carvalho Chehab2010-10-211-58/+143
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: bttv: Fix mutex unbalance at bttv_pollMauro Carvalho Chehab2010-10-211-3/+1
| | | | | | Don't do double mutex_unlock when reading a stream at bttv_poll. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: bttv-driver: document functions using mutex_lockMauro Carvalho Chehab2010-10-211-25/+25
| | | | | | | | | There are a few ancillary static routines used by ioctl functions that takes bttv lock internally. As we'll be adding the same lock for all ioctl's that need, we need to properly document them, to avoid doing double locks Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: radio-si470x: use unlocked ioctlMauro Carvalho Chehab2010-10-212-6/+22
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: radio-si470x: remove the BKL lock used internally at the driverMauro Carvalho Chehab2010-10-212-10/+8
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: v4l: fsl-viu.c: add slab.h include to fix compile breakageAnatolij Gustschin2010-10-211-0/+1
| | | | | | | | | | | | | | | | | | | mpc512x kernel configurations without SPI support do not build: drivers/media/video/fsl-viu.c: In function 'viu_open': drivers/media/video/fsl-viu.c:1248: error: implicit declaration of function 'kzalloc' drivers/media/video/fsl-viu.c:1248: warning: assignment makes pointer from integer without a cast drivers/media/video/fsl-viu.c: In function 'viu_release': drivers/media/video/fsl-viu.c:1335: error: implicit declaration of function 'kfree' If CONFIG_SPI is enabled, the slab.h will be included in linux/spi/spi.h which is included by media/v4l2-common.h and the fsl_viu.c driver builds. Let's incluce linux/slab.h directly to fix the build breakage. Signed-off-by: Anatolij Gustschin <agust@denx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: dvb/bt8xx: kill the big kernel lockArnd Bergmann2010-10-211-3/+4
| | | | | | | | | The bt8xx driver only uses the big kernel lock in its dst_ca_ioctl function and never to serialize against other code, so we can trivially replace it with a private mutex. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: dvb-core: kill the big kernel lockArnd Bergmann2010-10-214-40/+11
| | | | | | | | | | | The dvb core only uses the big kernel lock in the open and ioctl functions, which means it can be replaced with a dvb specific mutex. Fortunately, all the ioctl functions go through dvb_usercopy, so we can move the serialization in there. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: drivers/media/video/zoran: Don't use initialized char arrayJoe Perches2010-10-211-8/+4
| | | | | | | Just fill the array as necessary and terminate with 0 Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: media: cx23885: use '%pM' format to print MAC addressAndy Shevchenko2010-10-211-4/+1
| | | | | Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: cx22702: Simplify cx22702_set_tps()Jean Delvare2010-10-211-32/+26
| | | | | | | | | | Code in function cx22702_set_tps() can be slightly simplified. Apparently gcc was smart enough to optimize it anyway, but it can't hurt to make the code more readable. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: cx22702: Some things never changeJean Delvare2010-10-211-3/+3
| | | | | | | | The init sequence never changes so it can be marked const. Likewise, cx22702_ops is a template and can thus be made read-only. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: cx22702: Avoid duplicating code in branchesJean Delvare2010-10-211-15/+16
| | | | | | | | | Calling the same functions in if/else or switch/case branches is inefficient. Refactor the code for a smaller binary and increased readability. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: Fix Kconfig dependencies for VIDEO_IRMauro Carvalho Chehab2010-10-212-2/+2
| | | | | | | warning: (VIDEO_GO7007 && STAGING && !STAGING_EXCLUDE_BUILD && VIDEO_DEV && PCI && I2C && INPUT && BKL && SND || VIDEO_CX25821 && STAGING && !STAGING_EXCLUDE_BUILD && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && BKL) selects VIDEO_IR which has unmet direct dependencies (IR_CORE) warning: (VIDEO_CX25821 && STAGING && !STAGING_EXCLUDE_BUILD && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && BKL) selects VIDEO_IR which has unmet direct dependencies (IR_CORE) Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: saa7134: split RC code into a different moduleMauro Carvalho Chehab2010-10-214-11/+30
| | | | | | | This allows the removal of CONFIG_INPUT from saa7134, and helps to create a better Kconfig dependency hierarchy. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4l/DVB: saa7134: properly mark some functions as staticMauro Carvalho Chehab2010-10-211-2/+2
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tvaudio: remove obsolete tda8425 initializationHans Verkuil2010-10-211-13/+0
| | | | | | | | | | | | The tda8425 initialization function sets up the inputmap for riva boards. After some digging I discovered that this was for the V4L rivatv driver that is found on sourceforge. This driver hasn't been maintained since the last 5 years and will no longer work with the current v4l framework. So we can safely remove this. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: cx22702: Drop useless initializations to 0Jean Delvare2010-10-211-3/+2
| | | | | | | | These variables are either unconditionally set right afterward, or already set to 0 by kzalloc. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: cx22702: Clean up register access functionsJean Delvare2010-10-211-10/+13
| | | | | | | | | * Avoid temporary variables. * Optimize success paths. * Make error messages consistently verbose. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: dvb: Convert "mutex" to semaphoreThomas Gleixner2010-10-211-2/+2
| | | | | | | Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: IR/lirc_dev: check for valid irctl in unregister pathJarod Wilson2010-10-211-0/+5
| | | | | | | Prompted by Red Hat bugzilla #633023 Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: IR/imon: set up mce-only devices w/mce keytableJarod Wilson2010-10-211-126/+138
| | | | | | | | | | | | Currently, they get set up with the pad keytable, which they can't actually use at all. Also add another variant of volume scancodes from another 0xffdc device, and properly set up the 0x9e 0xffdc device as an iMON VFD w/MCE proto IR. Based on data and a prior patch from Anders Eriksson on the lirc list. Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: IR/imon: protect ictx's kc and last_keycode w/spinlockJarod Wilson2010-10-211-6/+46
| | | | | | | | | | Lest we get our keycodes wrong... Thus far, in practice, I've not found it to actually matter, but its one of the issues raised in https://bugzilla.kernel.org/show_bug.cgi?id=16351 that wasn't addressed by converting to using native IR keydown/up functions. Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: imon: split mouse events to a separate input devDavid Härdeman2010-10-211-113/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a stab at separating the mouse (and front panel/knob) events out to a separate input device. This is necessary in preparation for the next patch which makes the rc-core input dev opaque to rc drivers. I can't verify the correctness of the patch beyond the fact that it compiles without warnings. The driver has resisted most of my attempts at understanding it properly...for example, the double calls to le64_to_cpu() and be64_to_cpu() which are applied in imon_incoming_packet() and imon_panel_key_lookup() would amount to a bswab64() call, irregardless of the cpu endianness, and I think the code wouldn't have worked on a big-endian machine... - Minor alterations to apply with minimal core IR changes - Use timer for imon keys too, since its entirely possible for the receiver to miss release codes (either by way of another key being pressed while the first is held or by the remote pointing away from the recevier when the key is release. yes, I know, its ugly). - Bump driver version number, since this is a fairly significant change (for the much much better). Tested successfully w/an imon knob receiver. Signed-off-by: David Härdeman <david@hardeman.nu> Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: IR: export ir_keyup so imon driver can use it directlyJarod Wilson2010-10-212-1/+3
| | | | | | | | | | | | | | | | The imon driver currently reimplements its own version of ir_keyup (along with key release timer functionality also already present in the core IR code). A follow-up imon patch will make use of ir_keyup and the IR stack's key release code. Trivial extraction from David Härdeman's pending rc-core merge and device interface abstraction patchset to facilitate merging a patch based on his imon input dev split patch ahead of the larger churn, which is slated for post-2.6.37-rc1 (after Dmitry's large keycode patches are merged in mainline). Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: saa7134: get rid of I2C_HW_SAA7134Mauro Carvalho Chehab2010-10-214-10/+17
| | | | | | | | The only reason for keeping I2C_HW_SAA7134 is to allow setting a per-device polling interval. Just move this info to the platform data, allowing drivers to change it per device, where needed. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: Remove the usage of I2C_HW_B_CX2388x on ir-kbd-i2c.cMauro Carvalho Chehab2010-10-214-61/+51
| | | | | | | | | | | | | | Move the cx88 specific initialization for Hauppauge XVR remotes into cx88-input, removing the need for test it inside ir-kbd-i2c. The reference at cx88 for this symbol, at: drivers/media/video/cx88/cx88-i2c.c: core->i2c_adap.id = I2C_HW_B_CX2388x; drivers/media/video/cx88/cx88-vp3054-i2c.c: vp3054_i2c->adap.id = I2C_HW_B_CX2388x; Can't be removed yet, since lirc-i2c still uses it. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: bttv: Move PV951 IR to the right driverMauro Carvalho Chehab2010-10-216-79/+87
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: usbvision: remove BKL from usbvisionHans Verkuil2010-10-213-5/+13
| | | | | | | | | | | | | | | | Removed the BKL from usbvision. There was an initialization bug as well where the i2c bus was registered twice. Although when the BKL was present no oops was generated, I did run into other i2c problems. Now that I protect against duplicate i2c registration that bug is now gone as well. But trying to disconnect the USB cable while someone is still using the device still leads to a crash. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: v4l: remove obsolete include/media/v4l2-i2c-drv.h fileHans Verkuil2010-10-211-80/+0
| | | | | | | | | | | | | | The include/media/v4l2-i2c-drv.h header was used to be able to compile drivers in the v4l-dvb hg repository for legacy kernels (mainly pre-2.6.26) without creating an #ifdef mess. The hg repository dropped support for kernels < 2.6.26 so we can remove this header. All i2c drivers that used it have now been converted to use proper i2c code. The header was a hack, but it did its job well. So I would call this an honorable removal. :-) Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: removed unused i2c adapter IDHans Verkuil2010-10-211-3/+0
| | | | | Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: ir-kbd-i2c: remove obsolete I2C_HW_B_CX2341X testHans Verkuil2010-10-211-4/+2
| | | | | Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: saa7146/tuner: remove mxb hackHans Verkuil2010-10-212-7/+0
| | | | | | | | | Remove a hack in the tuner code for the mxb board. This hack is no longer needed since the tuner is now probed on its correct address as specified by the mxb driver. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: v4l: remove unused i2c-id.h headersHans Verkuil2010-10-214-4/+0
| | | | | Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: s2250: remove obsolete v4l2-i2c-drv.h headerHans Verkuil2010-10-211-6/+21
| | | | | Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: au8522_decoder: remove obsolete v4l2-i2c-drv.h headerHans Verkuil2010-10-211-6/+21
| | | | | Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: ks0127: remove obsolete v4l2_i2c_drv.h headerHans Verkuil2010-10-211-6/+21
| | | | | Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: adv7170: remove obsolete v4l2-i2c-drv.h headerHans Verkuil2010-10-211-7/+21
| | | | | Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: cx25840: remove obsolete v4l2-i2c-drv.h headerHans Verkuil2010-10-211-6/+21
| | | | | Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: saa7127: remove obsolete v4l2-i2c-drv.h headerHans Verkuil2010-10-211-6/+21
| | | | | Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>