There was a bug where enumerating the i2c for devices would result in false
positives. The root of the issue was the scanning was using SMBUS_QUICK
messages, which are zero length write requests (which our i2c adapter
implementation didn't handle). Because we never strobed any bytes onto the
bus, the status register would still contain the value from the previous
request.
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
V4L/DVB (11071): tveeprom: add the xc5000 tuner to the tveeprom definition
Prior to now, we never relied on the Hauppauge tveeprom to identify which
tuner is associated with the board. Now that the HVR-950q determines what
the tuner is based on the eeprom, set the tuner ID appropriately.
Thanks to Michael Krufky <mkrufky@linuxtv.org> for providing information on
the tveeprom organization.
V4L/DVB (11068): au0828: add analog profile for the HVR-850
Add the analog parameters to the device profile for the HVR-850
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
V4L/DVB (11067): au0828: workaround a bug in the au0828 i2c handling
There is an issue related to the i2c clock for addressing the xc5000. The
au0828 chip does not support clock stretching, which the xc5000 makes use of.
This results in cases where we silently get back garbage in i2c read
operations. To work around this issue until we slow down the i2c clock when
talking with that specific device.
This was not an issue before we had analog support because we never needed to
enumerate the i2c bus, and digital tuning never actually needed to perform
read operations against the xc5000.
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
V4L/DVB (11066): au0828: add support for analog functionality in bridge
Add support for the analog functionality found in the au0828 bridge
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
[mchehab@redhat.com: fix compilation by adding linux/version.h] Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
V4L/DVB (11065): au8522: add support for analog side of demodulator
Add support for the analog functionality in the au8522 analog/digital
demodulator
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
[mchehab: renamed drivers/media/video/au8522_decoder.c as drivers/media/dvb/frontends/au8522_decoder.c to avoid breaking bisect] Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
V4L/DVB (11064): au8522: make use of hybrid framework so analog/digital demod can share state
Make use of the hybrid tuner framework so the analog and digital parts of the
au8522 demodulator can make use of the same shared state.
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
V4L/DVB (11063): au8522: power down the digital demod when not in use
When the au8522 is idle, put the chip into a low power mode (reduces power
consumption from 450ma to 346ma)
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
V4L/DVB (11062): au8522: fix register read/write high bits
For the i2c messages to read and write registers, the two high order bits
of the first byte dictates whether it is a read or a write operation.
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
V4L/DVB (11061): au8522: move shared state and common functions into a separate header files
Move the au8522 state structure, as well as exposing functions needed by the
analog side of the demodulator into a common header file.
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
V4L/DVB (11060): au8522: rename the au8522.c source file
Rename the au8522.c file to au8522_dig.c so that more source files can be
added to the driver while preserving the original name of au8522.ko
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
V4L/DVB (11059): xc5000: fix bug for hybrid xc5000 devices with IF other than 5380
The xc5000 driver has a bug where the IF is always set to whatever the first
caller to dvb_attach() provides. This fails when the device requires an IF
other than 5380 and the analog driver is loaded first through tuner-core
(which always supplies the hard-coded value of 5380).
Thanks to Michael Krufky <mkrufky@linuxtv.org> and Steven Toth
<stoth@linuxtv.org> for providing sample hardware, engineering level support,
and testing.
Call v4l2_device_disconnect when the parent of a hotpluggable device
disconnects. This ensures that you do not have a pointer to a device that
is no longer present.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Andy Walls [Sat, 14 Mar 2009 20:06:07 +0000 (17:06 -0300)]
V4L/DVB (11042): v4l2-api: Add definitions for V4L2_MPEG_STREAM_VBI_FMT_IVTV payloads
This addition to the v4l2-api add definitions for the constants and
data structures used for sliced VBI data insertion into MPEG streams triggered
by V4L2_MPEG_STREAM_VBI_FMT_IVTV. This simply declares what the ivtv and
cx18 drivers and MythTV have already been doing and provides a proper data
structure definition to user space.
Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Sascha Hauer [Fri, 13 Mar 2009 09:08:20 +0000 (06:08 -0300)]
V4L/DVB (11031): pcm990 baseboard: add camera bus width switch setting
Some Phytec cameras have a I2C GPIO expander which allows it to
switch between different sensor bus widths. This was previously
handled in the camera driver. Since handling of this switch
varies on several boards the cameras are used on, the board
support seems a better place to handle the switch
Sascha Hauer [Fri, 13 Mar 2009 09:08:20 +0000 (06:08 -0300)]
V4L/DVB (11030): soc-camera: add board hook to specify the buswidth for camera sensors
Camera sensors have a native bus width say support, but on some
boards not all sensor data lines are connected to the image
interface and thus support a different bus width than the sensors
native one. Some boards even have a bus driver which dynamically
switches between different bus widths with a GPIO.
This patch adds a hook which board code can use to support different
bus widths.
Magnus Damm [Fri, 13 Mar 2009 09:08:20 +0000 (06:08 -0300)]
V4L/DVB (11029): video: use videobuf_waiton() in sh_mobile_ceu free_buffer()
Make sure videobuf_waiton() is used before freeing a buffer.
Without this fix we may return the buffer to the allocator
before the bus mastering operation is finished.
V4L/DVB (11027): soc-camera: configure drivers with a default format at probe time
Currently soc-camera doesn't set up any image format without an explicit
S_FMT. According to the API this should be supported, for example,
capture-example.c from v4l2-apps by default doesn't issue an S_FMT. This
patch moves negotiating of available host-camera format translations to
probe() time, and restores the state from the last close() on the next
open(). This is needed for some drivers, which power down or reset
hardware after the last user closes the interface. This patch also has a
nice side-effect of avoiding multiple allocation anf freeing of format
translation tables.
V4L/DVB (11026): sh-mobile-ceu-camera: set field to the value, configured at open()
For the case, that we have to capture with a default format, i.e., when the
user doesn't call S_FMT, we have to use the field value according to the
default, configured at open() time.
V4L/DVB (11025): soc-camera: configure drivers with a default format on open
Currently soc-camera doesn't set up any image format without an explicit S_FMT.
It seems this should be supported, since, for example, capture-example.c from
v4l2-apps by default doesn't issue an S_FMT. This patch configures a default
image format on open().
Hans Verkuil [Fri, 13 Mar 2009 13:03:04 +0000 (10:03 -0300)]
V4L/DVB (10988): v4l2-dev: use parent field if the v4l2_device has no parent set.
Normally the parent device of v4l2_device is used as the video device
node's parent. But if it was not set, then use the parent field in the
video_device struct.
This is needed in the cx88 driver, which has one core v4l2_device but
creates multiple pci devices (one each for raw and mpeg video).
So you cannot associate the core v4l2_device with a particular PCI device,
but you can do that for each video_device.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil [Fri, 13 Mar 2009 16:24:19 +0000 (13:24 -0300)]
V4L/DVB (10987): cx23885: fix crash on non-netup cards
The new support for the CX23885_BOARD_NETUP_DUAL_DVBS2_CI board broke the
existing boards. Interrupts for the netup part were enabled and handled
without testing whether the current board actually had a netup -> instant
and fatal crash.
I've added tests to do this only for the CX23885_BOARD_NETUP_DUAL_DVBS2_CI
board.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Reviewed-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
If the i2c sub-device cannot be found, then we must unregister the i2c_client.
Otherwise this will prevent a possible probe for a different device on that same
address.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil [Wed, 11 Mar 2009 07:34:09 +0000 (04:34 -0300)]
V4L/DVB (10960): omap24xxcam: don't set vfl_type.
The vfl_type field is set by the core, so anything you fill in here will
be overwritten. And it will be set to a VFL_TYPE_ value, not a VID_TYPE_
value which is an obsolete V4L1 type.
Since these V4L1 types have been made unavailable for V4L2 drivers, this
driver stopped compiling.
In this case the fix is just removing this assignment.
Cc: Sakari Ailus <sakari.ailus@nokia.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Stephan Wienczny [Tue, 10 Mar 2009 22:08:06 +0000 (19:08 -0300)]
V4L/DVB (10949): Add support for Terratec Cinergy HT PCI MKII
This patch adds support for Terratec Cinergy HT PCI MKII with card id 79.
Its more or less a copy of Pinnacle Hybrid PCTV.
Thanks to k1ngf1sher on forum.ubuntuusers.de for the idea to copy that card.
Signed-off-by: Stephan Wienczny <stephan@wienczny.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
V4L/DVB (10947): Auto-load videodev module when device opened.
The videodev module is missing the char-major-81-* alias that would
cause it to be auto-loaded when a device of that type is opened. This
patch adds the alias.
Signed-off-by: Scott James Remnant <scott@canonical.com> Signed-off-by: Tim Gardner <tim.gardner@canonical.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Jean Delvare [Sat, 7 Mar 2009 10:42:12 +0000 (07:42 -0300)]
V4L/DVB (10943): cx88: Prevent general protection fault on rmmod
When unloading the cx8800 driver I sometimes get a general protection
fault. Analysis revealed a race in cx88_ir_stop(). It can be solved by
using a delayed work instead of a timer for infrared input polling.
Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Trent Piepho [Wed, 11 Mar 2009 02:28:31 +0000 (23:28 -0300)]
V4L/DVB (10933): zoran: Pass zoran_fh pointers instead of file pointers
Many functions had a struct file pointer argument, but all they wants is
the struct zoran_fh pointer from the file's private data. Since every
caller of those functions already has the zoran_fh, just pass the that
instead. This saves a dereference in each function change.
While I'm at it, change the code formatting of affected functions to be
kernel standard style.
Jean Delvare [Wed, 11 Mar 2009 02:28:20 +0000 (23:28 -0300)]
V4L/DVB (10932): zoran: Don't frighten users with failed buffer allocation
kmalloc() can fail for large video buffers. By default the kernel
complains loudly about allocation failures, but we don't want to
frighten the user, so ask kmalloc() to keep quiet on such failures.
Cc: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Jean Delvare [Wed, 11 Mar 2009 02:28:17 +0000 (23:28 -0300)]
V4L/DVB (10931): zoran: Drop the lock_norm module parameter
The lock_norm module parameter doesn't look terribly useful. If you
don't want to change the norm, just don't change it. As a matter of
fact, no other v4l driver has such a parameter.
Cc: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
The code to optimize the usercopy only checked the ioctl NR field. However,
this code is also called for non-V4L2 ioctls (either private or ioctls from
linux/dvb/audio.h and linux/dvb/video.h for decoder drivers like ivtv).
If such an ioctl has the same NR as a V4L2 ioctl, then disaster strikes.
Modified the code to check on the full command ID.
Thanks to Martin Dauskardt for tracing the ivtv breakage to this particular
change.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
V4L/DVB (10870a): remove all references for video_decoder.h
changeset 04934e44e3784a1b969582e2d59afcec278470c6 removed the last implementation
that were still using the V4L1 obsoleted header.
Now, video_decoder.h is not used anymore by any driver.
Let's remove it and all references for it in Kernel.
Michael Krufky [Tue, 10 Mar 2009 04:21:14 +0000 (01:21 -0300)]
V4L/DVB (10905): dib0700: enable DVB_FE_CUSTOMISE for dibcom frontends
There was never any build-time dependency of the dib0700 usb module on the
dib0070 tuner module. Now that the build-time dependencies of dib0700 on
dib3000mc, dib7000p and dib7000m have been removed in the previous changesets,
we can enable DVB_FE_CUSTOMISE for these modules under config DVB_USB_DIB0700
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>