[linux-dvb] [PATCH] TT Budget 1500 S

Perceval Anichini perceval.anichini at streamvision.fr
Mon Feb 20 09:58:08 CET 2006


On Sat, 2006-02-18 at 22:13 +0100, Oliver Endriss wrote:
> Perceval Anichini wrote:
> > Attached 2 patches :
> > 
> >   ttpci-lnbp21-set-voltage-fixed-masks sets more precisely the
> > masks for the function lnbp21_set_voltage () function. This is
> > an almost cosmetic patch.
> 
> Bit 2 is set anyway, bits 0 and 1 are read-only.
> Your patch would not change anything...
	Well, agreed. It would not change the functionnality... But
the mask _was_ wrong :)

> I suggest to delay that until the LNBP21 code is factored out into a
> separate file. Currently there are at least 3 lnbp21 implementations
> in the driver tree.
	Yep ! That'd be great ! But for the moment, the S1500 is _not_
working properly. That's why I send these patches.

> >   ttpci-tt-budget-1500s-fix fixed a S1500 issue : When set in
> > vertical mode, the card loose the signal sync. The fix is to
> > set the card in "high voltage mode". This has been confirmed
> > from TechnoTrend. (Many thanks for their help)
> 
> Nak. You must not enable high voltage by default.

	If you don't enable high voltage, the card won't work.
This is the mail I had from Technotrend :

------------------------------------------------------------
Dear Mr. Perceval Anichini,

I have got an other comment from our developer.
Maybe it solve your problem ...

_____


Yes, we always set the LLC bit to 1.
No doing that is the bug in the linux driver.

// 0 - Low/Off/Horiz, 1 - High/On/Vert, -1 don't change/set
BOOL CDVBIoI2c::SetLnbPwrPolF22(int iPwr, int iPol, int iFEChipType)
{
int             WrSeq[] = {0x00, 0x1f, 0x00};
BYTE    CTRL;
WORD Com[3] = {0, 0, 0};
BOOL res = TRUE;

switch (iFEChipType)
{
...
case FE_0299_LNBP21: // 0 = False = H (18V); 1 = True = V (14V)
case FE_BSBE1_LNBP21:
        if((iPwr != -1) || (iPol != -1))
        {
                int test = 0;
                i2cRead(SA_LNBP21, &test, 1);
                test = (test & 0x1F) | 0x00; // PCL = 0; ISEL = 0; TEN =
0;
                if(iPol != -1)
                {
                        if(iPol)
                         test = (test & 0xE7) | 0x00; // V, LLC = 0;
VSEL = 0;
                        else
                         test = (test & 0xE7) | 0x08; // H, LLC = 0;
VSEL = 1;

                }
                if(iPwr != -1)
                {
                        if(iPwr)
                                test = (test & 0xFB) | 0x04; // EN = 1;
                        else
                                test = (test & 0xFB) | 0x00; // EN = 0;
                }
                test |= 0x10; // LLC==1 ->
+1Volt !!!!!!!!!!!!!!!!!!!!!!!!!!

                i2cWrite(SA_LNBP21, &test, 1);
        }
...
}

_____


Regards
Hagen
------------------------------------------------------------

> Maybe it would be useful to add a module parameter 'high_lnb_voltage'
> to dvb_frontend.c. This way cable length compensation could be enabled
> if the application software does not support the ioctl.
	This is a side effect of the hardware. If you don't enable the LLC
bit, the card won't work properly...

Regards !

Perceval.




More information about the linux-dvb mailing list