[linux-dvb] Dvico Dual 4 card not working.

Michael Krufky mkrufky at linuxtv.org
Tue Apr 1 22:19:45 CEST 2008

On Tue, Apr 1, 2008 at 11:41 AM, Ben Caldwell <benny.caldwell at gmail.com> wrote:
> On Tue, Apr 1, 2008 at 10:31 AM, Nicholas Magers <
>  After much plodding through changesets I have something to report. It seems
>  that the the dvico dual digital 4 card is broken in changesets after
>  d4df22377e83 (11 days ago).
>  It is interesting to note that the next change (the one that breaks it) is
>  "Removes video_dev from tuner-xc3028 config struct" - the dvico dual digital
>  4 has an xc3028.
>  So to get it working:
>  *hg update -r d4df22377e83
>  make clean
>  make rminstall
>  make release
>  make
>  make install*
>  Then reboot. One other interesting thing I have found is that sometimes
>  after compiling new modules I actually have to turn the PC off then on again
>  (rather than just a reboot) to get everything working properly.
>  - Ben

Can you try using the v4l-dvb master branch hg repository on
linuxtv.org again, after applying the attached patch (see below)

It is clear what went wrong on the Dual Digital 4 --

Mauro did some changes recently that use a "magic number" (yuck) to
differentiate between devices and manage multiple instances of the
xc2028 driver on a hybrid design.

He used i2c_adapter->algo_data to generate this "magic number" ,
which, IMHO is a very bad idea, especially since some digital-only
devices do not even define algo_data.  On the other hand,
i2c_adap->algo_data is a reasonable structure to use for the
"video_dev" pointer in the tuner_callback function, *if* it is

The patch in the link above uses the 'hybrid_tuner_request_state"
method to manage multiple instances of the device driver on a hybrid
design.  This uses a *much* safer method, using the i2c_adapter ID
along with the device i2c address to identify unique instances.  For
the "video_dev" pointer, the patch also uses a safer method:  If the
dvb_adapter device is defined, use fe->dvb->priv, otherwise, fall back
to Mauro's previous method of using i2c_adap->algo_data.

Please note:  This patch is intended for testing purposes only --
there is a remaining issue in this patch, where it doesn't destroy
some memory properly when tuner instances are destroyed.  I'll be
happy to fix that remaining issue after I receive some reports that
the larger issue is actually remedied by this patch.

Please let me know if this fixes the problem, and I'll produce a new
patch afterwards.


Mike Krufky
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xc-instance.patch
Type: text/x-diff
Size: 3766 bytes
Desc: not available
Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20080401/ae429a3b/attachment.patch 

More information about the linux-dvb mailing list