summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video
AgeCommit message (Collapse)Author
2007-07-17zr36067: Fix poll() operationTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> During uncompressed capture, the poll() function was looking the wrong frame. It was using the frame the driver was going to capture into next (pend_tail), when it should have been looking at the next frame to be de-queued with DQBUF/SYNC (sync_tail). It also wasn't looking in the right spot. It was looking at the file handle's copy of the buffer status, rather than the driver core copy. The interrupt routine marks frames as done in the driver core copy, the file handle copy isn't updated. So even if poll() looked at the right frame, it would never see it transition to done and return POLLIN. The compressed capture code has this same problem, looking in fh->jpg_buffers when it should have used zr->jpg_buffers. There was some logic to detect when there was no current capture in process nor any frames queued and try to return an error, which ends up being a bad idea. It's possible to call select() from one thread while no capture is in process, or no frames queued, and then start a capture or queue frames from another thread. The buffer state variables are protected by a spin lock, which the code wasn't acquiring. That is fixed too. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Acked-by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
2007-07-17zr36067: Fix problem setting normsTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The zr36067 driver doesn't make a distinction between the different sub-types of NTSC, PAL, or SECAM norms. For example, when the enum std ioctl returns the PAL standard it returns PAL_BG|PAL_DK|PAL_H|PAL_I. When setting the norm, it required the bitmask to match exactly the set of norms used during the enumeration. If just one norm was specified, for example PAL_BG or NTSC_M, it would fail. This violates the V4L2 spec, "VIDIOC_S_STD accepts *one* or more flags..." The key thing to realize is that V4L2_STD_PAL is not one bit, it is multiple bits. It's ok to call S_STD with any *one* of those bits, but the driver was requiring *all* of them. This fixes the S_STD function so that it will accept any set of one or more PAL norms as PAL, and the same for NTSC and SECAM. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Acked-by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
2007-07-17zr36067: Fix problems with module parametersTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Add permissions to all the module parameters so they can be queried and set (when possible) via sysfs. Add description for the vidmem parameter. Change the video_nr parameter to an array, so that the video number can be specified when a user has more than one card. The driver would try to give all cards the same number otherwise, which will fail for all cards after the first. The default_input option would only allow values of 0 or 1, contrary to the description. Allow values up to the number of inputs defined for the card. Add description of lock_norm's different behavior for 1 and >1. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Acked-by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
2007-07-17zr36067: clean up debug functionJean Delvare
From: Jean Delvare <khali@linux-fr.org> Debugging cleanups to the zr36067 driver: * Use module_param_named() to declare the debug parameter, so we can use a single global variable to handle the debug level. This makes the driver a bit smaller (by 648 bytes on x86_64), thanks to one less level of indirection on every use. * Change the debug parameter sysfs permissions, so that the debug level can be adjusted at runtime, as is done in many other media/video drivers. * The debug level is between 0 and 5, not 0 and 4. * Move the zr_debug export and dprintk macro definition to a header file so that we don't have to define them in each source file. * Simplify a duplicate test on zr_debug. Note that zr_debug was subsequently renamed to debug_zr36067 to avoid possible conflicts with other Zoran device drivers, on a suggestion by Trent Piepho. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Acked-by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
2007-07-17Use msecs_to_jiffies instead of HZ on bttv, cx88 and saa7134Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-17Use msecs_to_jiffies instead of HZ on some webcam driversMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-17Use msecs_to_jiffies instead of HZ on media/video I2C driversMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-17ivtv: fix Kconfig typo and refer to the driver homepage.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-07-17ivtv: cleanup of driver messagesHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-07-17ivtv: add support to suppress high volume i2c debug messages.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-07-17ivtv: don't recompile needlesslyHans Verkuil
From: Alexey Dobriyan <adobriyan@sw.ru> Driver prints banner including kernel version. Was a leftover from when the driver was standalone. Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-07-17ivtv: fix missing I2C_ALGOBIT config optionHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> I2C_ALGOBIT must also be selected when ivtv is selected. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-07-17ivtv: improve API command debuggingHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Turn off debugging of API commands that occur during encoding or decoding, unless they are explicitly requested. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-07-16Clean up schedule_timeout calls in cpia2 and ivtv codeMauro Carvalho Chehab
From: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-16Clean up setting state and scheduling timeoutsMauro Carvalho Chehab
From: Robert P. J. Day <rpjday@mindspring.com> Replace assignments to "current->state" with the preferred calls to schedule_timeout_interruptible(). Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-16merge: http://linuxtv.org/hg/~hverkuil/v4l-dvbMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-10ivtv: add high volume debugging flagHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Add support for high volume debug messages, allowing them to be turned on selectively. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-07-10ivtv: fix missing signal_pending check.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-07-10ivtv: Add locking to ensure stream setup is atomic.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Starting an MPEG and VBI capture simultaneously caused errors in the VBI setup: this setup was done twice when it should be done only for the first stream that is opened. Added a mutex to prevent this from happening. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-07-10tveeprom: add support for Philips FQ1216LME MK3 tuner.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-07-05stradis: use ARRAY_SIZETrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> sizeof(palette2fmt) / sizeof(u32) => ARRAY_SIZE(palette2fmt) Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-07-05v4l2: Update v4l_printk_ioctl_argTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> v4l_printk_ioctl_arg() is a debug printing function that is normally disabled. It was out of date with one ioctl and had a couple bugs in it elsewhere. This patch gets it in a state where it will work correctly, if it was enabled and used. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-07-02merge: http://www.linuxtv.org/hg/~tmerle/v4l-dvbMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-02merge: http://linuxtv.org/hg/~mkrufky/pendingMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-02Fix v4l-dvb backward compatibilityMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Due to several internal API changes on kernel, kernel backward compatibility were lost. Basically, compat.h should be the last include for it to work properly. This patch basically reorders kernel headers to allow backward compat to work fine. Also: Some includes were added after some non-include macros, on old drivers. Better to keep all includes at the beginning of the files. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-02saa7134: add remote control support for LifeView FlyDVB-S LR300Michael Krufky
From: James Le Cuirot <chewi at aura-online.co.uk> It has been confirmed that the FlyDVB IR codes currently in the kernel work with the LifeView FlyDVB-S LR300. This one line addition adds it to the list of supported cards. Signed-off-by: James Le Cuirot <chewi at aura-online.co.uk> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-07-02merge: http://linuxtv.org/hg/~mkrufky/v4l-dvbMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-02Backport mutex changes to work with kernels <=2.6.15Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-02use mutex instead of semaphore in Virtual Video driverMauro Carvalho Chehab
From: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> The Virtual Video driver uses a semaphore as mutex. Use the mutex API instead of the (binary) semaphore. Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-02Backport mutex changes to work with kernels <=2.6.15Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-02Use mutex instead of semaphore in Philips webcam driverMauro Carvalho Chehab
From: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> The Philips webcam driver uses a semaphore as mutex. Use the mutex API instead of the (binary) semaphore. -- Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-06-30bttv: fix v4l1 breaking the driverTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> If one uses a V4L *one* application, such as vlc or mplayer's v4l driver, as the first user after the driver is loaded, the driver wedges itself and will never capture properly. Even if one uses a V4L2 application later, it still won't work. If one uses a V4L *two* application first, such as tvtime or mplayer's v4l2 driver, then the driver will be ok. One can then run a V4L1 application, and it will work. It turns out the problem is with norm changing and the crop support that was added in 2.6.21. The driver defaults to PAL, and keeps the last norm it was set too across opens. If one changes the norm via V4L1, the cropping parameters are not reset like they should be, and they'll remain broken across device opens. This patch removes the direct setting of btv->tvnorm in the V4L1 ioctl VIDIOCSCHAN handler. The norm is set via the existing call to set_input(), which calls set_tvnorm(), which will reset the cropping values now that it is able to detect the norm change. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-06-28bttv: Add support for DBG_[SG]_REGISTER ioctlsTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> Adds the advanced debugging register read/write ioctl support to the bttv driver. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-06-28bttv: Be consistent in using symbolic names instead of constantsTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> For svhs, tuner, and tuner_type, be consistent in using UNSET instead of -1. For tuner_type also consistently use the existing constants: 0 => TUNER_TEMIC_PAL 1 => TUNER_PHILIPS_PAL_I 2 => TUNER_PHILIPS_NTSC 4 => TUNER_ABSENT 5 => TUNER_PHILIPS_PAL 21 => TUNER_TEMIC_4039FR5_NTSC 25 => TUNER_LG_PAL_I_FM Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-06-28bttv: Fix problems with probing for non-existent tunersTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The bttv driver has code to detect if a tda9887 is present, that was previous used to auto-load the tda9887 driver. Now there is no tda9887 driver, so the code is pointless; it just figures out if it should load the driver and then does nothing. For cards that are defined as having no tuner, the init code would still do i2c probes for various tuner devices and auto-load the tuner module. That can be skipped for cards that don't need it. The code is made to understand that in addition to 'UNSET', 'TUNER_ABSENT' also means no tuner. The tuner into printk()s are also made nicer. Levels are added, INFO or WARNING, depending on the meaning. For cards with no tuner, or no tuner defined, a more informative message is printed. Card has no tuner, before patch: bttv0: tuner type=-1 or bttv0: tuner type=4 After patch: bttv0: tuner absent Card has a tuner, but the type isn't defined, before patch: bttv0: tuner type=-1 After patch: bttv0: tuner type unset [<- also warning now, as the tuner won't work right] Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-06-26usbvision: video mux cleanupThierry MERLE
From: Thierry MERLE <thierry.merle@free.fr> - usbvision_muxsel simplified, now uses some well known constants. - since the decoder needs to change input norm, call to muxsel added when changing video standard. Acked-by: Dwaine Garden <DwaineGarden@rogers.com> Signed-off-by: Thierry MERLE <thierry.merle@free.fr>
2007-06-30Alter the tuner type for the WinTV USB UK PAL model.Thierry MERLE
From: Matthew Garrett <mjg59@srcf.ucam.org> Alter the tuner type for the WinTV USB UK PAL model. Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org> Signed-off-by: Thierry MERLE <thierry.merle@free.fr>
2007-06-26usbvision: Hauppauge WinTV USB SECAM_L fixThierry MERLE
From: Thierry MERLE <thierry.merle@free.fr> - Hauppauge WinTV USB SECAM_L fixed (needed some picture X and Y shiftings) Signed-off-by: Thierry MERLE <thierry.merle@free.fr>
2007-08-15Fix a memory leak in em28xx_usb_probe()Mauro Carvalho Chehab
From: Jesper Juhl <jesper.juhl@gmail.com> If, in em28xx_usb_probe() the memory allocation dev->alt_max_pkt_size = kmalloc(32* dev->num_alt,GFP_KERNEL); fails, then we'll bail out and return -ENOMEM. The problem is that in that case we don't free the storage allocated to 'dev', thus causing a memory leak. This patch fixes the leak by freeing 'dev' before we return -ENOMEM. This fixes Coverity bug #647. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-06-28bttv: add support for DViCO FusionHDTV 2Michael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> add analog video support for DViCO FusionHDTV 2 Thanks to Todd Ignasiak for donating the card. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Cc: Todd Ignasiak <ignasiak@gmail.com>
2007-06-28merge: ~mkrufky/fcv1236dMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-06-27tuner: update FCV1236D ranges to match the datasheetMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-06-27tuner: correct description of Philips FCV1236D tunerMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> The old description was "Philips 1236D ATSC/NTSC dual in", which can be confused with other Philips tuner models. This patch corrects the name to "Philips FCV1236D ATSC/NTSC dual in", and updates the range and params array names to match the description. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-06-26merge: http://linuxtv.org/hg/~mkrufky/tunerMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-06-26tuner: remove hardware-specific info from public headerMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Move internal structures and debug macros to drivers/media/video/tuner-driver.h Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-06-25zr364xx: add support for Trust Powerc@m 970ZAntoine Jacquet
From: Antoine Jacquet <royale@zerezo.com> Add Trust Powerc@m 970Z (0x06d6:0x003b) to the list of supported devices. Signed-off-by: Antoine Jacquet <royale@zerezo.com>
2007-06-25Fix Kbuild for kbd-ir-i2cMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Potentially, all board types with I2C and IR support can use an i2c based IR. Currently, the driver is selected only if bt848 or saa7134 boards are selected. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-06-25Fix error handling for stv680Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-06-25cx88-input: cx88_ir_handle_key: convert nested if's to switch..caseMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> In the function, cx88_ir_handle_key: - convert nested if statement to a switch..case block Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2007-06-25cx88: add remote control support for Leadtek Winfast DTV1000Michael Krufky
From: Edgar Pisani <episani@onqweb.com.au> Signed-off-by: Edgar Pisani <episani@onqweb.com.au> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>