[linux-dvb] HVR-4000 driver problems - i2c error
Steven Toth
stoth at linuxtv.org
Thu Sep 25 02:22:26 CEST 2008
Mika Laitio wrote:
>> The ~stoth/hg/s2 has no DVB-T support on the HVR4000 yet. Those
>> patches will appear very shortly in ~stoth/hg/s2-mfe.
>
> Thanks,
>
> I build and installed drivers from s2-mfe branch and now atleast the
> dvb-t and dvb-s scan were working both for hvr-1300 and hvr-4000.
> With hvr-4000, the scan worked with
> "./scan -a 1 -f 1 "... parameters.
>
>>> WIth liplianinis multiproto version the selection between DVB-S and
>>> DVB-T
>>> works by using the "options cx88-dvb frontend=1" but I am seeing the
>>> i2c
>>> errors described below.
>>>
>>> Could you have any URL and changeset tag to patch in some repository
>>> where
>>> this I2C thing has been fixed?
>>
>> I'm speculating that your issue is the same issue I fixed sometime ago
>> (2-3 months in the master repo). I'd suggest you wait for the ~
>> stoth/hg/s2-mfe patches to appear later tonight and test again.
>>
>> That tree (and ~stoth/hg/s2 for that matter) have the i2c fix I'm
>> referring to.
>
> I tried to find the fix by checking from the log your commits for cx88
> couple of months ago and could not find the one you were referring.
> Then I remembered that in 2.6.25 kernel, similar errors for HVR-1300
> could be fixed by defining the radio information for the board structure.
>
> So I tried the same trick also for hvr-4000, and that made dvb-t working
> without I2C errors also for HVR4000. ( with liplianis version of
> multiproto tree.)
>
> --- cx88-cards.c_old 2008-09-25 00:51:18.000000000 +0300
> +++ cx88-cards.c 2008-09-24 10:44:15.000000000 +0300
> @@ -1480,6 +1480,10 @@
> }},
> /* fixme: Add radio support */
> .mpeg = CX88_MPEG_DVB,
> + .radio = {
> + .type = CX88_RADIO,
> + .gpio0 = 0xe780,
> + },
> },
> [CX88_BOARD_HAUPPAUGE_HVR4000LITE] = {
> .name = "Hauppauge WinTV-HVR4000(Lite) DVB-S/S2",
>
> In S2 and S2-mfe, the dvb-t worked even without radio data defined for
> hvr-4000.
>
> Other non-API related changes that I could found between multiproto and
> s2 trees for CX88 were pretty small. Is this udelay really needed?
>
> @@ -2594,8 +2598,9 @@
> break;
> case CX88_BOARD_HAUPPAUGE_HVR3000: /* ? */
> case CX88_BOARD_HAUPPAUGE_HVR4000:
> - /* Init GPIO for DVB-S/S2/Analog */
> - cx_write(MO_GP0_IO,core->board.input[0].gpio0);
> + /* Init GPIO */
> + cx_write(MO_GP0_IO, core->board.input[0].gpio0);
> + udelay(1000);
> break;
>
> case CX88_BOARD_PROLINK_PV_8000GT:
> @@ -2939,6 +2944,7 @@
> cx88_card_list(core, pci);
> }
>
> + memset(&core->board, 0, sizeof(core->board));
> memcpy(&core->board, &cx88_boards[core->boardnr],
> sizeof(core->board));
>
> info_printk(core, "subsystem: %04x:%04x, board: %s [card=%d,%s]\n",
>
> Those did not help
Thanks.
I'm going to rebase the s2-mfe tree from master (containing the s2api).
Darron also has a i2c related fix (which isn't perfect) but does address
an issue like this.
I'll rebase and push both of those patches into ~stoth/s2-mfe, if you
can retest after this then that would be useful.
Watch for changes to this tree tonight, it may help.
Regards,
- Steve
More information about the linux-dvb
mailing list