[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
defined.
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.
Regards,
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