Now, just two routines are enough for analog: the first one configs the analog
part and register V4L2 devices, and the second one release analog devices.
After this patch, it will be easier to transform em28xx-video into an em28xx
extension, loaded only on analog devices.
V4L/DVB (9977): Kbuild: fix compilation when dib7000p is not defined
dib7000p.h defines a few extern symbols when CONFIG_DVB_DIB7000P is not set. since the
header is used on more than one driver, this causes symbol duplication, as pointed by
Ingo Molnar <mingo@elte.hu>:
drivers/media/dvb/built-in.o: In function `dib7000p_set_gpio':
(.text+0x3f242): multiple definition of `dib7000p_set_gpio'
drivers/media/video/built-in.o:(.text+0xb8c1e): first defined here
drivers/media/dvb/built-in.o: In function `dib7000p_i2c_enumeration':
(.text+0x3f282): multiple definition of `dib7000p_i2c_enumeration'
drivers/media/video/built-in.o:(.text+0xb8c3e): first defined here
drivers/media/dvb/built-in.o: In function `dib7000p_set_wbd_ref':
(.text+0x3f1c1): multiple definition of `dib7000p_set_wbd_ref'
drivers/media/video/built-in.o:(.text+0xb8bfe): first defined here
LD drivers/net/built-in.o
make[2]: *** [drivers/media/built-in.o] Error 1
Cc: Patrick Boettcher <patrick.boettcher@desy.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil [Sat, 20 Dec 2008 00:28:27 +0000 (21:28 -0300)]
V4L/DVB (9973): v4l2-dev: use the release callback from device instead of cdev
Instead of relying on the cdev release callback we should rely on the
release callback from the device struct. This requires that we use
get_device/put_device to do proper refcounting. In order to do this
safely v4l2-dev.c now sets up its own file_operations that call
out to the driver's ops.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil [Fri, 19 Dec 2008 12:10:56 +0000 (09:10 -0300)]
V4L/DVB (9942): v4l2-dev: check for parent device in get_index.
get_index requires a valid parent device in order to discover which
indices are in use. Some drivers (e.g. pvrusb2) do not set the parent
device. In that case just return 0.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Andy Walls [Sun, 21 Dec 2008 02:48:57 +0000 (23:48 -0300)]
V4L/DVB (9937): cx18: Use a consistent crystal value for computing all PLL parameters
Use a consistent crystal value of 28.636360 MHz for computing all PLL
parameters so clocks don't have relative error due to assumed crystal
value mismatches. Also aimed to have all PLLs run their VOCs at close to
400 MHz to minimze the error of these PLLs as frequency synthesizers. Also
set the VDCLK and AIMCLK PLLs to sane values before the APU and CPU firmware
are loaded. Also fixed I2S Master clock dividers.
Many thanks to Mike Bradley and Jeff Campbell for reporting this problem and
suggesting the solution, researching and experimenting, and performing
extensive testing to support their suggested solution.
Reported-by: Jeff Campbell <jac1dlists@gmail.com> Reported-by: Mike Bradley <mike.bradley@incanetworks.com> Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Andy Walls [Sun, 21 Dec 2008 02:26:38 +0000 (23:26 -0300)]
V4L/DVB (9936): cx18: Disable locking of Video and Audio PLL for analog captures
Disable AV_LOCK, locking of audio PLL to video PLL in the cx18-av-core for
analog captures. It seems to have adverse effects on captures from
SVideo and CVBS sources with current clock & crystal settings in the driver.
Many thanks to Jeff Campbell and Mike Bradley for reporting this problem,
and suggesting the solution and performing extensive testing to support their
suggestion.
Reported-by: Jeff Campbell <jac1dlists@gmail.com> Reported-by: Mike Bradley <mike.bradley@incanetworks.com> Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Alan Nisota [Sat, 20 Dec 2008 15:03:06 +0000 (12:03 -0300)]
V4L/DVB (9928): Convert GP8PSK module to use S2API
This patch converts the gp8psk module to use the S2API.
It pretends to be DVB-S2 capable in order to allow the various
supported modulations (8PSK, QPSK-Turbo, etc), and keep software
compatibility with the S2API patches for Mythtv and VDR.
Signed-off by: Alan Nisota <alannisota@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
V4L/DVB (9926): em28xx: Fix a bug that were putting xc2028/3028 tuner to sleep
The changeset 78aa52a159cf introduced a bug on em28xx: buffer setup should be
awaking xc3028. Instead, since we didn't specify the tuner mode, the device
were going to sleep, due to the lack of tuner mode when asking tuner to handle
VIDIOC_S_FREQUENCY:
xc2028 0-0061: Device is Xceive 3028 version 1.0, firmware version 2.7
xc2028 0-0061: divisor= 00 00 14 d0 (freq=83.250)
xc2028 0-0061: Putting xc2028/3028 into poweroff mode.
xc2028 0-0061: Printing sleep stack trace:
Pid: 10936, comm: mplayer Tainted: P M 2.6.27.8 #1
Devin Heitmueller [Wed, 17 Dec 2008 05:25:00 +0000 (02:25 -0300)]
V4L/DVB (9923): xc5000: remove init_fw option
The init_fw option was broken for the HVR-950q because we would call the reset
callback inside of dvb_attach() and the callback had not been setup yet.
Michael Krufky (who added the init_fw feature) says it's no longer required,
so just remove the option completely.
Thanks to user Zzeiss from #linuxtv chat for reporting the issue and
Michael Krufky <mkrufky@linuxtv.org> for proposing the fix.
Devin Heitmueller [Wed, 17 Dec 2008 02:35:23 +0000 (23:35 -0300)]
V4L/DVB (9922): em28xx: don't assume every eb1a:2820 reference design is a Prolink PlayTV USB2
Don't operate under the assumption that every device that uses the em2820
default USB ID is a Prolink PlayTV USB. We have an eeprom hash, so use that,
since otherwise we cannot support other devices with the 2820 default USB ID
(such as the ADS Tech Instant TV USB USBAV-704)
Darron Broad [Thu, 18 Dec 2008 09:27:50 +0000 (06:27 -0300)]
V4L/DVB (9916): dvb-core: don't add an event when in ONE SHOT mode for algo type HW
It has been noticed that in HW tuning mode in cx24123.c that
a check is made to not alter the status var when in one shot
mode, a simpler solution is to not update here for all cards.
V4L/DVB (9913): tuner-xc2028: allow printing stack trace as debug on sleep code
tuner-xc3028 can be put to sleep to save power. However, if not properly
recovered from sleep, the device won't work. It is noticed that some
devices doesn't recover properly, so let's add a dump_stack() as a debug
option, to allow us to track when this happens.
V4L/DVB (9911): em28xx: vidioc_try_fmt_vid_cap() doesn't need any lock
vidioc_try_fmt_vid_cap() just checks if a given resolution is supported.
It doesn't touch on struct em28xx device descriptor. so, there's no need
to lock.
While there, use unlikely() for those values that aren't likely to
occur.
Laurent Pinchart [Sun, 14 Dec 2008 19:22:05 +0000 (16:22 -0300)]
V4L/DVB (9898): v4l2: Add privacy control
The privacy control prevents video from being acquired by the camera. A true
value indicates that no image can be captured. Devices that implement the
privacy control must support read access and may support write access.
Laurent Pinchart [Sun, 14 Dec 2008 19:21:16 +0000 (16:21 -0300)]
V4L/DVB (9897): v4l2: Add camera zoom controls
The zoom controls move the zoom lens group to a an absolute position, as a
relative displacement or at a given speed until reaching physical device
limits. Positive values move the zoom lens group towards the telephoto
direction, negative values towards the wide-angle direction.
Andy Walls [Mon, 15 Dec 2008 00:26:25 +0000 (21:26 -0300)]
V4L/DVB (9895): cx18: Refine the firmware load and firmware startup process
Refine the firmware load and firmware startup process. Significant changes
are to ensure the SCB and IPC area are correct before starting up the firmware,
and letting the CPU firmware start up the APU firmware for us.
Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Andy Walls [Sun, 23 Nov 2008 22:16:44 +0000 (19:16 -0300)]
V4L/DVB (9894): cx18: Use a known open task handle when setting stream CX2341x parameters
cx18: Use a known open task handle when setting stream CX2341x parameters
Sometimes, we might only have VBI or YUV stream open instead of an MPEG stream.
Let's make sure we use a valid task handle to perform the CX2341x control
settings.
Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Jean-Francois Moine [Mon, 8 Dec 2008 09:41:04 +0000 (06:41 -0300)]
V4L/DVB (9869): gspca - zc3xx: Change the USB exchanges for the sensor pas202b.
This sensor was declared as hdcs2020.
The new exchanges have been extracted from the ms-win file usbvm31b.inf.
The light frequency control has been added.
Jim Paris [Thu, 4 Dec 2008 07:52:40 +0000 (04:52 -0300)]
V4L/DVB (9860): gspca - ov534: Frame transfer improvements.
The indirect registers at 0x1c/0x1d control frame settings. If we
leave the values at 0x0a and 0x0b at their reset-time defaults, frame
data from the camera matches the UVC payload format. This lets us
better reassemble the data into frames and know when data was lost.
This also lets us relax the bulk_size requirement from 600K to 2K,
which should help systems on with limited RAM (like the PS3).
Signed-off-by: Jim Paris <jim@jtan.com> Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>