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) > (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 !!!). 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. I mean szap is sending me lines like : ... | LOCKED ... | ... | LOCKED ... | LOCKED ... | ....| LOCKED And so on... 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... 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 :((( 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 :) 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... > 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 :/ > 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 : --------------------------------8<--------------------------------- ambre:/home/corwin/work/sv/alcyone/kernel/v4l-dvb# modprobe budget Segmentation fault ambre:/home/corwin/work/sv/alcyone/kernel/v4l-dvb# ambre:/home/corwin/work/sv/alcyone/kernel/v4l-dvb# dmesg [...] saa7146: register extension 'budget dvb'. ACPI: PCI Interrupt 0000:03:0c.0[A] -> GSI 53 (level, low) -> IRQ 225 saa7146: found saa7146 @ mem f8976e00 (revision 1, irq 225) (0x13c2,0x1017). DVB: registering new adapter (TT-Budget/WinTV-NOVA-S PCI (rev AL/alps bsbe1 lnbp21 frontend)). adapter has MAC addr = 00:d0:5c:04:70:3a Unable to handle kernel NULL pointer dereference at virtual address 00000020 printing eip: f8948596 *pde = 00000000 Oops: 0000 [#1] PREEMPT SMP Modules linked in: budget s5h1420 l64781 ves1820 budget_core saa7146 ttpci_eeprom stv0299 tda8083 ves1x93 dvb_core i2c_core nls_cp437 nvidia ext2 CPU: 1 EIP: 0060:[<f8948596>] Tainted: P VLI EFLAGS: 00010292 (2.6.15) EIP is at lnbp21_enable_high_lnb_voltage+0xc/0x9a [budget] eax: 00000000 ebx: ea101000 ecx: 00000001 edx: 00000001 esi: 00000000 edi: f7e71d80 ebp: f894a900 esp: d81afdf4 ds: 007b es: 007b ss: 0068 Process modprobe (pid: 14690, threadinfo=d81ae000 task=e7619030) Stack: ea101000 f894866a ea101088 d81afe08 00000001 00000008 00000001 ea101000 00000000 f8948ff2 f7455b04 00000001 00000001 ea101000 fffffff4 ea101000 00000000 f89490c6 ea101000 f7e71d80 f894a900 f894ac00 f894aa80 f8976e00 Call Trace: [<f894866a>] lnbp21_init+0x46/0x57 [budget] [<f8948ff2>] frontend_init+0x2c8/0x335 [budget] [<f89490c6>] budget_attach+0x67/0xc8 [budget] [<f8950a1f>] saa7146_init_one+0x558/0x69a [saa7146] [<c021ba6b>] __pci_device_probe+0x4a/0x55 [<c021ba9f>] pci_device_probe+0x29/0x3f [<c027d0ae>] driver_probe_device+0x3d/0xa7 [<c027d185>] __driver_attach+0x0/0x45 [<c027d1c8>] __driver_attach+0x43/0x45 [<c027c77d>] bus_for_each_dev+0x58/0x78 [<c027d1f0>] driver_attach+0x26/0x2a [<c027d185>] __driver_attach+0x0/0x45 [<c027cc0a>] bus_add_driver+0x6b/0xc8 [<c021bcdf>] __pci_register_driver+0x96/0xba [<c011d0e4>] printk+0x1b/0x1f [<f8950d4f>] saa7146_register_extension+0x7a/0x7f [saa7146] [<f895d00f>] budget_init+0xf/0x13 [budget] [<c01386b6>] sys_init_module+0xce/0x22a [<c0102e85>] syscall_call+0x7/0xb Code: 5f c3 0f b6 44 24 1b 24 f3 0c 04 88 44 24 1b eb c6 80 4c 24 1b 0c eb bf 80 64 24 1b f3 eb b8 56 53 83 ec 1c 8b 44 24 28 8b 40 04 <8b> 50 20 66 c7 44 24 0c 08 00 66 c7 44 24 0e 01 00 66 c7 44 24 --------------------------------8<--------------------------------- Sob ! :( 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 :) Thanks for reading me so far !! :) Perceval. _______________________________________________ linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb