Age | Commit message (Collapse) | Author |
|
From: Hans Verkuil <hverkuil@xs4all.nl>
The VBI DMA is handled in a special way and is marked with a bit.
However, that bit was set at the wrong time and could be cleared
by mistake if a PCM (or other) DMA request would arrive before the
VBI DMA was completed. So on completion of the VBI DMA the driver
no longer knew that that DMA transfer was for VBI data. And this
in turn caused havoc with the card's DMA engine.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Trent Piepho <xyzzy@speakeasy.org>
When raw capture was turned off, the current capturing frame (v4l_grab_frame)
wasn't reset to NO_GRAB_ACTIVE. If capture was turned back on, the driver
would think this frame was currently being captured, and wait for it to
complete before starting a new frame. The hardware on the other hand would
not be actively capturing a frame. The result was the driver would wait
forever for v4l_grab_frame to be captured.
Some calls to zr36057_set_memgrab(0) were missing spin-locks, which have been
added.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Acked-by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
|
From: Trent Piepho <xyzzy@speakeasy.org>
Add support for the UYVY and the other big endian output formats. The
driver was naming formats based on the host endianess. This is different
that all the other drivers appear to work and not what software appears
to expect.
Use ARRAY_SIZE() to find the the size of the zoran_formats array.
Change the way the driver handles setting the video format register. Rather
than use some if and switch statements to set to register by looking at the
format id, the format list simply has a field with the proper bits to set.
Adds a bit of ifdef to make a driver without V4L1 support more possible.
Also create a macro for defining formats that handles vl41 and/or vl42
support to avoid repeated ifdefs in the format list.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Acked-by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
|
From: Jean Delvare <khali@linux-fr.org>
Fix the following warning on x86_64:
drivers/media/video/zoran_driver.c: In function "v4l_fbuffer_alloc":
drivers/media/video/zoran_driver.c:387: warning: cast from pointer to integer of different size
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>
|
|
From: Trent Piepho <xyzzy@speakeasy.org>
The driver was returning the size of the (fixed) buffer it allocated as the
sizeimage field in the v4l2 pixel format, rather than the actual size of the
image. For example, a 192x128 YUYV image is 49152 bytes but the driver would
always return 131072 bytes since if that was the size of the v4l buffer.
This violates the v4l2 spec, which says that sizeimage should be the actual
size of the image for uncompressed formats. It also caused mplayer to crash.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Acked-by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
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>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
I2C_ALGOBIT must also be selected when ivtv is selected.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
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>
|
|
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>
|
|
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>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
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>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
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>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Trent Piepho <xyzzy@speakeasy.org>
sizeof(palette2fmt) / sizeof(u32) => ARRAY_SIZE(palette2fmt)
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
|
|
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>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
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>
|
|
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>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
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>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
From: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
|
|
From: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
|
|
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>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
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>
|
|
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>
|