[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