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

Oliver Endriss o.endriss at gmx.de
Tue Feb 21 15:53:39 CET 2006

Perceval Anichini wrote:
> Hello !
> [...]
> > Sorry, I'm still not sure whether it is correct. :-(
> 	No problems :)
> > The question is (@all: Please correct me if I'm wrong):
> > (1) Does Hauppauge enable line-length-compensation for all cards, or
> 	This is not a problem with Hauppauge cards, just with TT 1500S.
> (TechnoTrend)

Sorry, I messed them up.

> > (2) is this a work-around for a design flaw of this specific card type?
> 	To my mind, this is a work around for a design flaw of the
> TechnoTrend Budget 1500 S. (I can't figure out why the LNB LLC flag do
> mess with the tuning capabilities of the card !!!).

The LLC flag increases the output voltage of the LNBP21 by 1V.
Nominal values are 13V/18V, with LLC you get 14V/19V.

The most common problem is some voltage loss with long cables.
If the supply voltage at the LNB is too small you cannot tune to
transponders with horizontal polarization because the LNB does not
switch polarization...

With LLC 1V is added to compensate for that.

Unfortunately, I'm not sure whether some LNB hardware might be damaged
if LLC is enabled for the wrong card. That's why I am very careful. ;-)

> 	Let me re-explain the problem I, (and a few people of the
> list who mailed me) have.
> 	With the unmodified driver,
>   - When in Horizontal mode : everything works properly.
>   - When in Vertical mode : the signal "lock" is lost periodically.
> ...
> To perform more checks, here what we tried :
> 	MPTS player -> QPSK Modulator -> TT1500S card
> The QPSK modulator indeed does not mind the LNB control voltage :)
> And.... The same behavior occured ! No way to obtain a correct signal
> when set in vertical mode...

Hm - sounds like a hardware problem. Apparently the tuner needs a higher
voltage from the LNBP21 chip...

> After a few tries we set this "magical" LLC bit, and from then
> everything worked properly... And TechnoTrend confirmed this LLC bit
> was to be set...
> > Ad (1):
> > The DVB API has a special ioctl to compensate for voltage loss on the
> > LNB line. It is not correct to enable it by default (or the API has to
> > be changed).
> 	I _DO_ agree with that !!! But sadly, the card is not working when not
> enabled...
> > If (2) holds true, we must not enable LLC for all cards with the LNBP21.
> > It should only be done for the 1500 S.
> 	In fact I thought I did that :(((

Sure. My comment was not related to your patch.

> I thought that PCI subsystem ID 0x1017 was the 1500 S... :/
> > Obviously the card worked for the one who submitted the code.
> 	Well, maybe he tried only in horizontal mode ? Moreover he
> didn't tried the CI part of it :)

The Technotrend/Nexus rev 2.3 cards use the same BSBE1/LNBP21 setup.
There were no problem reports although it is widely used with vdr.

> 	It seems to me that the 1500 product line of TT (1500 T and
> 1500 C) are not working so well also. I have the 3 cards, therefore,
> I'll try to make theim work when I'll have more time...


> What I know is that three people on the list here had the same problem
> as me with this card, and that my patch seems to fix the problem. (but
> maybe it breaks other cards ???) I'm not enough implied yet in the
> driver to be sure about that :/
> > Could you please measure the voltage at the LNBP input for a vertical
> > and a horizontal transponder?
> 	Not easily... I don't have tools to do that at work... I'll
> try to do that at home next week end, if you really need this
> information...

My sleep would be better if you could check that. ;-)
Anyway, if TT recommends that fix it should be safe.

> > Btw, are we talking about the card with sub-system id 0x1016 (Samsung
> > tuner) or sub-system id 0x1017 (ALPS tuner)?
> 	We are talking about the 0x1017. My patch should only modify the
> behavior for this card. If it don't, it means I made a mistake :/

No, that's fine. I just wanted to be sure because the rev 2.3 av7110
cards don't have this kind of problem. It would have been easier to
understand if it was the 0x1016 card...

> > Imho the patch is way too complicated. A simple 	
> > |	lnbp21_enable_high_lnb_voltage(budget->dvb_frontend, 1);
> > after the lnbp21_init() call should do. Or did I miss something?
> 	Well, that's what I did in the first place :
> -------------------------------8<---------------------------------
> case 0x1017:
> [...]
> if (lnbp21_init(budget)) {
> 	printk("%s: No LNBP21 found!\n", __FUNCTION__);
> 	goto error_out;
> }
> if (lnbp21_enable_high_lnb_voltage (budget->dvb_frontend, 1)) {
> 	printk("%s: Couldn't enable LNBP21 high voltage mode!\n",
> __FUNCTION__);
> 	goto error_out;
> 	}
> }
> --------------------------------8<---------------------------------
> But when I try to use that :
> ...
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000020
> ...
> EIP is at lnbp21_enable_high_lnb_voltage+0xc/0x9a [budget]
> ...
> Call Trace:
>  [<f894866a>] lnbp21_init+0x46/0x57 [budget]
>  [<f8948ff2>] frontend_init+0x2c8/0x335 [budget]
> ...
> Sob ! :(

Oops. ;-)

Please test whether it works if you place something like
|	if (budget->dev->pci->subsystem_device == 0x1017)
|		lnbp21_enable_high_lnb_voltage(budget->dvb_frontend, 1)
after dvb_register_frontend().

> There is one more thing to do with this TT 1500 S card : move the code
> handling it in budget-ci -> it indeed has the CI part :)

Does the card work if you simply move the 'case 0x1017'/'high voltage'
stuff to budget-ci? Iirc there were some CI-related problems.
But if it works without CI these can be solved later...


VDR Remote Plugin available at

More information about the linux-dvb mailing list