- 02 Aug, 2010 40 commits
-
-
Jean-François Moine authored
This patch fixes possible race conditions in queue management with SMP: when a frame was completed, the irq function tried to use the next frame buffer. At this time, it was possible that the application on an other processor updated the frame pointer, making the image to point to a bad buffer. The patch contains two main changes: - the image transfer uses the queue indexes which are protected against simultaneous memory access, - the image pointer which is used for image concatenation is only set at interrupt level. Some subdrivers which used the image pointer have been updated. Reported-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean-François Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Jean-François Moine authored
The problem may occur with SMP: - a frame is completed at interrupt level (in gspca_frame_add with packet_type == LAST_PACKET, - just after clearing the bit V4L2_BUF_FLAG_QUEUED and before setting the bit V4L2_BUF_FLAG_DONE, on the other processor, the application tries to requeue the same frame buffer, - then, the qbuf function succeeds because ALL_FLAGS are not set. The fix sets and resets the two flags in one instruction. Reported-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean-François Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Christoph Egger authored
As pointed by Christoph Egger <siccegge@stud.informatik.uni-erlangen.de>, The config Option DVB_DIBCOM_DEBUG was dropped while removing the dibusb driver in favor of dvb-usb in 2005. However it remaind existant at some places of the kernel config. Instead of just removing the debug capability, the better is to just remove the bad dependency, making the modprobe function always visible. Thanks-to: Christoph Egger <siccegge@stud.informatik.uni-erlangen.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Ben Hutchings authored
The recently added support for lgs8g75 included some 8051 machine code without accompanying source code. Replace this with use of the firmware loader. Compile-tested only. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Tobias Lorenz authored
This patch to the si470x_vidioc_s_tuner function was developed in cooperation with Roel Kluin <roel.kluin@gmail.com>. It sets the default retval to 0 instead of -EINVAL, identical to what is done in all other set/get functions of v4l2_ioctl_ops. This is just as cosmetic change, as retval is directly overwritten by the si470x_disconnect_check() anyway. Signed-off-by: Tobias Lorenz <tobias.lorenz@gmx.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Jarod Wilson authored
Spent a while last night getting device initialization packet captures under Windows for all generations of devices. There are a few places where we were doing things differently, and few things we were doing that we don't need to do, particularly on gen3 hardware, and I *think* one of those things is what was locking up my pinnacle hw from time to time -- at least, its been perfectly well behaved every time its been plugged in since making this change. First up, we're adding a bit more to the gen1 init routine here. Its not absolutely necessary, the hardware works the same both with and without it, but I'd like to be consistent w/Windows here. Second, DEVICE_RESET is never called when initializing either of my gen3 devices, its only called for gen1 and gen2. The bits in the gen3 init after removing that, are safe (and interesting) to run on all hardware, so there's no more gen3-specific init done, there's instead a generic mceusb_get_parameters() that is run for all hardware. Third, the gen3 flag isn't needed. We only care if hardware is gen3 during probe, so I've dropped that from the device flags struct. Successfully tested on all three generations of mceusb hardware. Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Mauro Carvalho Chehab authored
Prior init unification/simplification patch made these unused, forgot to remove them, so this silences: drivers/media/IR/mceusb.c: In function ‘mceusb_gen1_init’: drivers/media/IR/mceusb.c:769: warning: unused variable ‘partial’ drivers/media/IR/mceusb.c:768: warning: unused variable ‘i’ Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Arnd Bergmann authored
New code should not rely on the big kernel lock, so use the unlocked_ioctl file operation in lirc. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Tested-by: Jarod Wilson <jarod@redhat.com> Acked-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Randy Dunlap authored
ir-jvc-decoder uses bitreverse interfaces, so it should select BITREVERSE. ir-jvc-decoder.c:(.text+0x550bc): undefined reference to `byte_rev_table' ir-jvc-decoder.c:(.text+0x550c6): undefined reference to `byte_rev_table' Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Jarod Wilson authored
On Wed, Jul 07, 2010 at 02:52:58PM +0200, Jiri Slaby wrote: > Hi, > > stanse found a locking error in lirc_dev_fop_read: > if (mutex_lock_interruptible(&ir->irctl_lock)) > return -ERESTARTSYS; > ... > while (written < length && ret == 0) { > if (mutex_lock_interruptible(&ir->irctl_lock)) { #1 > ret = -ERESTARTSYS; > break; > } > ... > } > > remove_wait_queue(&ir->buf->wait_poll, &wait); > set_current_state(TASK_RUNNING); > mutex_unlock(&ir->irctl_lock); #2 > > If lock at #1 fails, it beaks out of the loop, with the lock unlocked, > but there is another "unlock" at #2. This should do the trick. Completely untested beyond compiling, but its not exactly a complicated fix, and in practice, I'm not aware of anyone ever actually tripping that locking bug, so there's zero functional change in typical use here. Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Renzo Dani authored
Signed-off-by: Renzo Dani <arons7@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Anatolij Gustschin authored
Since commit b4028437 the 'driver_data' field resides in device's struct device_private which may be allocated by dev_set_drvdata() if device_private struct was not allocated previously. dev_set_drvdata() is used in video_set_drvdata() to set the driver's private data pointer in v4l2 drivers. Setting the private data _before_ registering the v4l2 device results in a memory leak since __video_register_device() also calls video_set_drvdata(), but after zeroing the device structure. Thus, the reference to the previously allocated device_private struct goes lost and a new device_private will be allocated. All v4l drivers which call video_set_drvdata() _before_ calling video_register_device() are affected. The patch fixes __video_register_device() to preserve previously allocated device_private reference. Caught by kmemleak. Signed-off-by: Anatolij Gustschin <agust@denx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Guillaume Audirac authored
Signed-off-by: Guillaume Audirac <guillaume.audirac@webag.fr> Signed-off-by: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Guillaume Audirac authored
Use the register CLUNC to reset the CPTU registers (LSB & MSB) when they saturate at 0xFFFF. Fixes as well a few register typos. Signed-off-by: Guillaume Audirac <guillaume.audirac@webag.fr> Signed-off-by: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Guillaume Audirac authored
Add a missing bit for reading the transmission mode (2K/8K) in tda10048_get_tps Signed-off-by: Guillaume Audirac <guillaume.audirac@webag.fr> Signed-off-by: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Guillaume Audirac authored
Completes the bit-error-rate read function with the CBER register (before Viterbi decoder). The returned value is 1e8*actual_ber to be positive. Also includes some typo mistakes. Signed-off-by: Guillaume Audirac <guillaume.audirac@webag.fr> Signed-off-by: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Kusanagi Kouichi authored
Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp> Signed-off-by: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Jarod Wilson authored
Started out as an effort to try to tackle the last remaining issue I'm having with this damned pinnacle device getting wedged the first time its plugged in after an indeterminate length of not being plugged in. Didn't get that solved yet, but did streamline the init code a bit more and remove some superfluous gunk. Nukes a completely unneeded call to usb_device_init() and several lines of overly complex crap in the gen1 device init path. Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Anatolij Gustschin authored
Adds support for Video-In (VIU) unit of Freescale MPC5121e. The driver supports RGB888/RGB565 formats, capture and overlay on MPC5121e DIU frame buffer. Signed-off-by: Hongjun Chen <hong-jun.chen@freescale.com> Signed-off-by: Anatolij Gustschin <agust@denx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Laurent Pinchart authored
The camera requires the PROBE_MINMAX quirk. Add a corresponding entry in the device IDs list Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Laurent Pinchart authored
Data buffers on the stack are not allowed for USB I/O. Use dynamically allocated buffers instead when querying control length and control capabilities. The control capabilities are now also stored in the uvc_control structure. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Laurent Pinchart authored
Use the macros instead of hardcoding numerical constants for the controls information bitfield. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Laurent Pinchart authored
The UVCIOC_CTRL_MAP ioctl doesn't support menu entries for menu controls. As the uvc_xu_control_mapping structure has no reserved fields, this can't be fixed while keeping ABI compatibility. Modify the UVCIOC_CTRL_MAP ioctl to add menu entries support, and define UVCIOC_CTRL_MAP_OLD that supports the old ABI without any ability to add menu controls. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Hans de Goede authored
According to the v4l2 spec, writing any value to a button control should result in the action belonging to the button control being triggered. UVC cams however want to see a 1 written, this patch fixes this by overriding whatever value user space passed in with -1 (0xffffffff) when the control is a button control. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Martin Rubli authored
Signed-off-by: Martin Rubli <martin_rubli@logitech.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Jarod Wilson authored
Per Pieter Hoekstra: I have a Antec Fusion with a iMON Lcd and I get the following error: imon 6-1:1.0: Unknown 0xffdc device, defaulting to VFD and iMON IR (id 0x9e) The driver is functional if I load it like this: (I do not use a remote for it) modprobe imon display_type=1 (On Mythbuntu 10.04/2.6.32) This device is a lcd-type with support for a MCE remote. Looking at the source code, this device (0x9e) is the same as id 0x9f. Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Jean Delvare authored
It might be useful to be able to disable the IR support, either for debugging purposes, or just for users who know they won't use the IR remote control anyway. On many cards, IR support requires expensive polling/sampling which is better avoided if never needed. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Jean Delvare authored
Move I2C IR initialization from just after I2C bus setup to right before non-I2C IR initialization. This is the same as was done for the bttv driver several months ago. Might solve bugs which have not yet been reported for some cards. It makes both drivers consistent, and makes it easier to disable IR support (coming soon.) Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Michael Krufky authored
Signed-off-by: Michael Krufky <mkrufky@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Mauro Carvalho Chehab authored
drivers/media/common/tuners/xc5000.c: In function ‘xc_write_reg’: drivers/media/common/tuners/xc5000.c:298: warning: passing argument 3 of ‘xc5000_readreg’ from incompatible pointer type drivers/media/common/tuners/xc5000.c:235: note: expected ‘u16 *’ but argument is of type ‘u8 *’ drivers/media/common/tuners/xc5000.c: At top level: drivers/media/common/tuners/xc5000.c:223: warning: ‘xc_read_i2c_data’ defined but not used Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Andy Walls authored
Convert the cx23885 driver to use the new in kernel IR pulse decoders for the integrated CX2388[578] IR controllers. Rip out a lot of RC-5 decoding related code in the process and rename some variables for clarity or to more accurately describe their usage. Signed-off-by: Andy Walls <awalls@md.metrocast.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Andy Walls authored
Move from the generic, shared card_ir state structure to a cx23885 driver specific IR state structure in anticipation of moving to the new IR pulse decoders in the IR core. Fix up the card name truncation in the dmesg log while we're at it, by avoiding using fixed length string storage in our new IR state structure. Signed-off-by: Andy Walls <awalls@md.metrocast.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Jean-François Moine authored
The image pointer and its length are now in the main structure instead of in the frame buffer. They are updated on application vidioc_qbuf and in the URB interrupt function when ending an image. Signed-off-by: Jean-François Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Jean-François Moine authored
Signed-off-by: Jean-François Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Murali Karicheri authored
The Kconfig variables are moved to video/davinci/Kconfig through another patch and these are to be therefore removed Signed-off-by: Muralidharan Karicheri <mkaricheri@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Vaibhav Hiremath authored
Currently VPFE Capture driver and DM6446 CCDC driver is being reused for AM3517. So this patch is preparing the Kconfig/makefile for re-use of such IP's. Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: Muralidharan Karicheri <mkaricheri@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Justin P. Mattock authored
Resend due to a whitespace issue I created by mistake. The below patch fixes a warning message create by gcc 4.6.0 CC [M] drivers/media/common/tuners/tuner-simple.o drivers/media/common/tuners/tuner-simple.c: In function 'simple_set_tv_freq': drivers/media/common/tuners/tuner-simple.c:548:20: warning: variable 'tun' set but not used Signed-off-by: Justin P. Mattock <justinmattock@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Mauro Carvalho Chehab authored
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Stefan Ringel authored
Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
Julia Lawall authored
The read_status field is initialized twice to the same value. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r@ identifier I, s, fld; position p0,p; expression E; @@ struct I s =@p0 { ... .fld@p = E, ...}; @s@ identifier I, s, r.fld; position r.p0,p; expression E; @@ struct I s =@p0 { ... .fld@p = E, ...}; @script:python@ p0 << r.p0; fld << r.fld; ps << s.p; pr << r.p; @@ if int(ps[0].line)<int(pr[0].line) or int(ps[0].column)<int(pr[0].column): cocci.print_main(fld,p0) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-