Bug 9476
Summary: | [PATCH]Hauppauge Nova-S-Plus DVB-S does not lock on horizontal polarisation | ||
---|---|---|---|
Product: | v4l-dvb | Reporter: | Fabian Sturm (f) |
Component: | cx88 | Assignee: | v4l-dvb_cx88 |
Status: | NEW --- | ||
Severity: | normal | CC: | alan, andrew.stevens, ats-kernel, jdonog01, marco.roth, mchehab, protasnb, shadow, will |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.4.15 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Attachments: | Putting John Donoghue's modifications in patch form. |
Description
Fabian Sturm
2007-11-29 10:51:47 UTC
Fabian, does it still fail with recent kernels? Hi! Sorry for the delay. Right now I can't tell if it still fails, since I had to remove my dish from the balcony during a renovation. But this should be finished in a few days and then I will test it again. Thanks a lot, Fabian Hi, Still a problem on 2.6.24-19 Ubuntu Hardy, for me at least (SMP if that makes any difference). Happy to test any patches. Cheers, Will Sorry, I should have checked this before... I can pick up H & V polarised transponders - but this one... S 11778000 V 27500000 2/3 ...refuses to lock. I've done a scan on a STB and that locks on with no problems so dish/LNB is OK. scan output for the transponder that won't lock: using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' initial transponder 11778000 V 27500000 2 >>> tune to: 11778:v:0:27500 DiSEqC: switch pos 0, 13V, hiband (index 2) >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 WARNING: >>> tuning failed!!! >>> tune to: 11778:v:0:27500 (tuning failed) DiSEqC: switch pos 0, 13V, hiband (index 2) >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x03 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 >>> tuning status == 0x01 WARNING: >>> tuning failed!!! ERROR: initial tuning failed dumping lists (0 services) Done. Scan output from one that DOES work: using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' initial transponder 10773000 H 22000000 5 >>> tune to: 10773:h:0:22000 DiSEqC: switch pos 0, 18V, loband (index 1) >>> tuning status == 0x1f PAT PMT 0x0105 for service 0x189d VIDEO : PID 0x1388 AUDIO : PID 0x1389 AUDIO : PID 0x138a TELETEXT : PID 0x138b OTHER : PID 0x0f00 TYPE 0x05 OTHER : PID 0x0f01 TYPE 0x05 OTHER : PID 0x0f02 TYPE 0x05 OTHER : PID 0x0904 TYPE 0x05 OTHER : PID 0x0906 TYPE 0x05 OTHER : PID 0x0f03 TYPE 0x05 OTHER : PID 0x0f04 TYPE 0x05 OTHER : PID 0x0909 TYPE 0x05 OTHER : PID 0x090a TYPE 0x05 OTHER : PID 0x0f06 TYPE 0x0b OTHER : PID 0x0f07 TYPE 0x0b OTHER : PID 0x0f08 TYPE 0x0b OTHER : PID 0x090e TYPE 0x05 OTHER : PID 0x0f09 TYPE 0x0b OTHER : PID 0x0912 TYPE 0x05 OTHER : PID 0x0913 TYPE 0x05 SUBTITLING: PID 0x138c PMT 0x0107 for service 0x189e VIDEO : PID 0x13ec AUDIO : PID 0x13ed AUDIO : PID 0x13ee TELETEXT : PID 0x13ef OTHER : PID 0x0f00 TYPE 0x05 OTHER : PID 0x0f01 TYPE 0x05 OTHER : PID 0x0f02 TYPE 0x05 OTHER : PID 0x0904 TYPE 0x05 OTHER : PID 0x0906 TYPE 0x05 OTHER : PID 0x0f03 TYPE 0x05 OTHER : PID 0x0f04 TYPE 0x05 OTHER : PID 0x0909 TYPE 0x05 OTHER : PID 0x090a TYPE 0x05 OTHER : PID 0x0f06 TYPE 0x0b OTHER : PID 0x0f07 TYPE 0x0b OTHER : PID 0x0f08 TYPE 0x0b OTHER : PID 0x0f09 TYPE 0x0b OTHER : PID 0x0912 TYPE 0x05 OTHER : PID 0x0913 TYPE 0x05 OTHER : PID 0x091c TYPE 0x05 SUBTITLING: PID 0x13f0 PMT 0x010a for service 0x18a2 VIDEO : PID 0x14b4 AUDIO : PID 0x14b5 TELETEXT : PID 0x14b7 OTHER : PID 0x0f00 TYPE 0x05 OTHER : PID 0x0f01 TYPE 0x05 OTHER : PID 0x0f02 TYPE 0x05 OTHER : PID 0x0906 TYPE 0x05 OTHER : PID 0x0f03 TYPE 0x05 OTHER : PID 0x0f04 TYPE 0x05 OTHER : PID 0x0909 TYPE 0x05 OTHER : PID 0x090a TYPE 0x05 OTHER : PID 0x0f06 TYPE 0x0b OTHER : PID 0x0f07 TYPE 0x0b OTHER : PID 0x0f08 TYPE 0x0b OTHER : PID 0x0f09 TYPE 0x0b OTHER : PID 0x0912 TYPE 0x05 OTHER : PID 0x0913 TYPE 0x05 OTHER : PID 0x0926 TYPE 0x05 OTHER : PID 0x0927 TYPE 0x05 SUBTITLING: PID 0x14b8 PMT 0x0108 for service 0x18ab VIDEO : PID 0x1450 AUDIO : PID 0x1451 TELETEXT : PID 0x1453 OTHER : PID 0x0904 TYPE 0x05 OTHER : PID 0x0906 TYPE 0x05 OTHER : PID 0x0909 TYPE 0x05 OTHER : PID 0x090a TYPE 0x05 OTHER : PID 0x0912 TYPE 0x05 OTHER : PID 0x0913 TYPE 0x05 OTHER : PID 0x0922 TYPE 0x05 SDT (actual TS) 0x0000 0x18af: pmt_pid 0x010d BSkyB -- BBC THREE (running) 0x0000 0x18bb: pmt_pid 0x0106 BSkyB -- BBC 1 NI (running) PMT 0x010b for service 0x18ac VIDEO : PID 0x14b4 AUDIO : PID 0x14b5 AUDIO : PID 0x14b6 TELETEXT : PID 0x14b7 OTHER : PID 0x0f00 TYPE 0x05 OTHER : PID 0x0f01 TYPE 0x05 OTHER : PID 0x0f02 TYPE 0x05 OTHER : PID 0x0904 TYPE 0x05 OTHER : PID 0x0906 TYPE 0x05 OTHER : PID 0x0f03 TYPE 0x05 OTHER : PID 0x0f04 TYPE 0x05 OTHER : PID 0x0909 TYPE 0x05 OTHER : PID 0x090a TYPE 0x05 OTHER : PID 0x0f06 TYPE 0x0b OTHER : PID 0x0f07 TYPE 0x0b OTHER : PID 0x0f08 TYPE 0x0b OTHER : PID 0x0f09 TYPE 0x0b OTHER : PID 0x0912 TYPE 0x05 OTHER : PID 0x0913 TYPE 0x05 OTHER : PID 0x092b TYPE 0x05 SUBTITLING: PID 0x14b8 PMT 0x010d for service 0x18af VIDEO : PID 0x1450 AUDIO : PID 0x1451 AUDIO : PID 0x1452 TELETEXT : PID 0x1453 OTHER : PID 0x0f00 TYPE 0x05 OTHER : PID 0x0f01 TYPE 0x05 OTHER : PID 0x0f02 TYPE 0x05 OTHER : PID 0x0904 TYPE 0x05 OTHER : PID 0x0906 TYPE 0x05 OTHER : PID 0x0f03 TYPE 0x05 OTHER : PID 0x0f04 TYPE 0x05 OTHER : PID 0x0909 TYPE 0x05 OTHER : PID 0x090a TYPE 0x05 OTHER : PID 0x0f06 TYPE 0x0b OTHER : PID 0x0f07 TYPE 0x0b OTHER : PID 0x0f08 TYPE 0x0b OTHER : PID 0x0f09 TYPE 0x0b OTHER : PID 0x0912 TYPE 0x05 OTHER : PID 0x0913 TYPE 0x05 OTHER : PID 0x0922 TYPE 0x05 SUBTITLING: PID 0x1454 PMT 0x0106 for service 0x18bb VIDEO : PID 0x157c AUDIO : PID 0x157d TELETEXT : PID 0x157f OTHER : PID 0x0f00 TYPE 0x05 OTHER : PID 0x0f01 TYPE 0x05 OTHER : PID 0x0f02 TYPE 0x05 OTHER : PID 0x0904 TYPE 0x05 OTHER : PID 0x0906 TYPE 0x05 OTHER : PID 0x0f03 TYPE 0x05 OTHER : PID 0x0f04 TYPE 0x05 OTHER : PID 0x0909 TYPE 0x05 OTHER : PID 0x090a TYPE 0x05 OTHER : PID 0x0f06 TYPE 0x0b OTHER : PID 0x0f07 TYPE 0x0b OTHER : PID 0x0f08 TYPE 0x0b OTHER : PID 0x0f09 TYPE 0x0b OTHER : PID 0x0912 TYPE 0x05 OTHER : PID 0x0913 TYPE 0x05 OTHER : PID 0x0918 TYPE 0x05 SUBTITLING: PID 0x1580 SDT (actual TS) 0x0000 0x189d: pmt_pid 0x0105 BSkyB -- BBC 1 London (running) 0x0000 0x189e: pmt_pid 0x0107 BSkyB -- BBC 2 England (running) 0x0000 0x18a2: pmt_pid 0x010a BSkyB -- ETV (running) 0x0000 0x18a4: pmt_pid 0x0000 BSkyB -- BBC TES Test (not running) 0x0000 0x18a5: pmt_pid 0x0000 BSkyB -- BBC TES 2 (not running) 0x0000 0x18ab: pmt_pid 0x0108 BSkyB -- BBC TES 3 (running) 0x0000 0x18ac: pmt_pid 0x010b BSkyB -- BBC FOUR (running) 0x0000 0x18ad: pmt_pid 0x0000 BSkyB -- CBBC Channel (not running) 0x0000 0x18ae: pmt_pid 0x0000 BSkyB -- CBeebies (not running) ERROR: interrupted by SIGINT, dumping partial result... dumping lists (11 services) BBC 1 London:10773:h:0:22000:5000:5001:6301 BBC 2 England:10773:h:0:22000:5100:5101:6302 ETV:10773:h:0:22000:5300:5301:6306 BBC TES 3:10773:h:0:22000:5200:5201:6315 BBC FOUR:10773:h:0:22000:5300:5301:6316 BBC THREE:10773:h:0:22000:5200:5201:6319 BBC 1 NI:10773:h:0:22000:5500:5501:6331 BBC TES Test:10773:h:0:22000:0:0:6308 BBC TES 2:10773:h:0:22000:0:0:6309 CBBC Channel:10773:h:0:22000:0:0:6317 CBeebies:10773:h:0:22000:0:0:6318 Done. I notice that the one that does work is using 18V loband and the one that doesn't is using 13V hiband - but, I don't really understand what this means. As per the original post - it was working on this same box a month or so ago. I guess the moral of this story is it it ain't broke don't apt-get upgrade Thanks, Will The lack of locking of just one channel doesn't seem to be related to the driver. Maybe the provider is just encrypting the channel, the signal is weaker now or your dish moved a little bit, loosing some dB's. If you think it is a kernel issue, you'll need to backtrace and discover what patch broke it (although I'm confident that this is not a driver issue). The relevant part is drivers/media/dvb/frontends/cx24123.c. There aren't many patches on it since 2.6.20. You may try to revert each patch and check if it makes some difference. Thanks for getting back to me. I'll spend the weekend compiling kernels, I'll go back to .20 and if it doesn't work there I'll learn more about how dvb-s works and try to work out what's occurring. Interestingly I saw on the DVB wiki that someone had edit the Nova-S-Plus page to say it wasn't working, but the transponder in that example (i.e. not working) is the one I list above as working. I'll see what I can find out. Thanks. I think my Problem is related to the above Bug. My 2nd Nova S-Plus doesnt lock on horizontal freuqencies as well. I just changed to Kernel 2.6.26-3 which is the kernel i had this problem with for the first time. before i had kernel 2.6.16 which worked perfectly on both nova s-plus. the dish is ok - i just changed cables and the problem persists. if i do a transponder scan with svbsnoop for example i get plenty of dma failed messages on dmesg: cx8802_start_dma() Failed. Unsupported value in .mpeg (0x00000001) szap just gives me: root@server:/home/henno/mIRC# szap -a 1 "ZDF" reading channels from file '/root/.szap/channels.conf' zapping to 657 'ZDF': sat 0, frequency = 11953 MHz H, symbolrate 27500000, vpid = 0x006e, apid = 0x0078 using '/dev/dvb/adapter1/frontend0' and '/dev/dvb/adapter1/demux0' status 01 | signal ff00 | snr caf6 | ber 00000000 | unc fffffffe | status 01 | signal fe00 | snr afcb | ber 00000000 | unc fffffffe | status 01 | signal fe00 | snr c13f | ber 00000000 | unc fffffffe | ... (aso) part of the kernel-bootlog is: Sep 5 17:11:53 server kernel: cx88/0: cx2388x v4l2 driver version 0.0.6 loaded Sep 5 17:11:53 server kernel: cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded Sep 5 17:11:53 server kernel: cx2388x alsa driver version 0.0.6 loaded Sep 5 17:11:53 server kernel: Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled Sep 5 17:11:53 server kernel: serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A Sep 5 17:11:53 server kernel: serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A Sep 5 17:11:53 server kernel: 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A Sep 5 17:11:53 server kernel: 00:09: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A Sep 5 17:11:53 server kernel: p54: LM86 firmware Sep 5 17:11:53 server kernel: p54: FW rev 2.7.0.0 - Softmac protocol 4.1 Sep 5 17:11:53 server kernel: Marking TSC unstable due to: TSC halts in idle. Sep 5 17:11:53 server kernel: p54: unknown eeprom code : 0x1 Sep 5 17:11:53 server kernel: p54: unknown eeprom code : 0x3 Sep 5 17:11:53 server kernel: p54: unknown eeprom code : 0x1007 Sep 5 17:11:53 server kernel: p54: unknown eeprom code : 0x1008 Sep 5 17:11:53 server kernel: p54: unknown eeprom code : 0x1100 Sep 5 17:11:53 server kernel: p54: unknown eeprom code : 0x1905 Sep 5 17:11:53 server kernel: phy0: Selected rate control algorithm 'pid' Sep 5 17:11:53 server kernel: phy0: hwaddr 00:04:e2:dc:66:b8, isl3886 Sep 5 17:11:53 server kernel: cx88[0]: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37,autodetected] Sep 5 17:11:53 server kernel: cx88[0]: TV tuner type 4, Radio tuner type -1 Sep 5 17:11:53 server kernel: tveeprom 0-0050: Hauppauge model 92001, rev B2B1, serial# 741977 Sep 5 17:11:53 server kernel: tveeprom 0-0050: MAC address is 00-0D-FE-0B-52-59 Sep 5 17:11:53 server kernel: tveeprom 0-0050: tuner model is Conexant_CX24109 (idx 111, type 4) Sep 5 17:11:53 server kernel: tveeprom 0-0050: TV standards ATSC/DVB Digital (eeprom 0x80) Sep 5 17:11:53 server kernel: tveeprom 0-0050: audio processor is CX883 (idx 32) Sep 5 17:11:53 server kernel: tveeprom 0-0050: decoder processor is CX883 (idx 22) Sep 5 17:11:53 server kernel: tveeprom 0-0050: has no radio, has IR receiver, has no IR transmitter Sep 5 17:11:53 server kernel: cx88[0]: hauppauge eeprom: model=92001 Sep 5 17:11:53 server kernel: input: cx88 IR (Hauppauge Nova-S-Plus as /class/input/input4 Sep 5 17:11:53 server kernel: cx88[0]/0: found at 0000:00:0a.0, rev: 5, irq: 5, latency: 32, mmio: 0xda000000 Sep 5 17:11:53 server kernel: cx88[0]/0: registered device video0 [v4l2] Sep 5 17:11:53 server kernel: cx88[0]/0: registered device vbi0 Sep 5 17:11:53 server kernel: cx88[0]/1: CX88x/0: ALSA support for cx2388x boards Sep 5 17:11:53 server kernel: cx88[0]/2: cx2388x 8802 Driver Manager Sep 5 17:11:53 server kernel: cx88[0]/2: found at 0000:00:0a.2, rev: 5, irq: 5, latency: 32, mmio: 0xdc000000 Sep 5 17:11:53 server kernel: cx88[1]: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37,autodetected] Sep 5 17:11:53 server kernel: cx88[1]: TV tuner type 4, Radio tuner type -1 Sep 5 17:11:53 server kernel: tveeprom 1-0050: Hauppauge model 92001, rev C1B1, serial# 1888145 Sep 5 17:11:53 server kernel: tveeprom 1-0050: MAC address is 00-0D-FE-1C-CF-91 Sep 5 17:11:53 server kernel: tveeprom 1-0050: tuner model is Conexant_CX24109 (idx 111, type 4) Sep 5 17:11:53 server kernel: tveeprom 1-0050: TV standards ATSC/DVB Digital (eeprom 0x80) Sep 5 17:11:53 server kernel: tveeprom 1-0050: audio processor is CX883 (idx 32) Sep 5 17:11:53 server kernel: tveeprom 1-0050: decoder processor is CX883 (idx 22) Sep 5 17:11:53 server kernel: tveeprom 1-0050: has no radio, has IR receiver, has no IR transmitter Sep 5 17:11:53 server kernel: cx88[1]: hauppauge eeprom: model=92001 Sep 5 17:11:53 server kernel: input: cx88 IR (Hauppauge Nova-S-Plus as /class/input/input5 Sep 5 17:11:53 server kernel: cx88[1]/0: found at 0000:00:0c.0, rev: 5, irq: 10, latency: 32, mmio: 0xde000000 Sep 5 17:11:53 server kernel: cx88[1]/0: registered device video1 [v4l2] Sep 5 17:11:53 server kernel: cx88[1]/0: registered device vbi1 Sep 5 17:11:53 server kernel: cx88[1]/1: CX88x/1: ALSA support for cx2388x boards Sep 5 17:11:53 server kernel: cx88[1]/2: cx2388x 8802 Driver Manager Sep 5 17:11:53 server kernel: cx88[1]/2: found at 0000:00:0c.2, rev: 5, irq: 10, latency: 32, mmio: 0xe0000000 Sep 5 17:11:53 server kernel: PCI: Setting latency timer of device 0000:00:11.5 to 64 Sep 5 17:11:53 server kernel: cx88/2: cx2388x dvb driver version 0.0.6 loaded Sep 5 17:11:53 server kernel: cx88/2: registering cx8802 driver, type: dvb access: shared Sep 5 17:11:53 server kernel: cx88[0]/2: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37] Sep 5 17:11:53 server kernel: cx88[0]/2: cx2388x based DVB/ATSC card Sep 5 17:11:53 server kernel: CX24123: detected CX24123 Sep 5 17:11:53 server kernel: DVB: registering new adapter (cx88[0]) Sep 5 17:11:53 server kernel: DVB: registering frontend 0 (Conexant CX24123/CX24109)... Sep 5 17:11:53 server kernel: cx88[1]/2: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37] Sep 5 17:11:53 server kernel: cx88[1]/2: cx2388x based DVB/ATSC card Sep 5 17:11:53 server kernel: CX24123: detected CX24123 Sep 5 17:11:53 server kernel: DVB: registering new adapter (cx88[1]) Sep 5 17:11:53 server kernel: DVB: registering frontend 1 (Conexant CX24123/CX24109)... Any help would be appreciated. Regards, Henrik I believe this problem is that the card does not send out a 22kHz tone for high-band (>11.7GHz) transponders, rather than H or V polarization. I sent the following details to the linux-dvb list in November 2008, but somehow broke the thread to which I was responding! In any case, I guess this is the right place to update the bug report. The bug was created sometime before kernel 2.6.22. A patch at that time ("Fix cx24123 diseqc") apparently removed the code from the cx24123 module which used the ISL6421 tone generator to create the 22kHz tone. I presume the intention was to transfer this function to the isl6421 module, but this wasn't done. I tested this with the following function added to isl6421.c: static int isl6421_set_tone(struct dvb_frontend* fe, fe_sec_tone_mode_t tone) { struct isl6421 *isl6421 = (struct isl6421 *) fe->sec_priv; struct i2c_msg msg = { .addr = isl6421->i2c_addr, .flags = 0, .buf = &isl6421->config, .len = sizeof(isl6421->config) }; switch (tone) { case SEC_TONE_ON: isl6421->config |= ISL6421_ENT1; break; case SEC_TONE_OFF: isl6421->config &= ~ISL6421_ENT1; break; default: return -EINVAL; } isl6421->config |= isl6421->override_or; isl6421->config &= isl6421->override_and; return (i2c_transfer(isl6421->i2c, &msg, 1) == 1) ? 0 : -EIO; } I also added: .set_tone = cx24123_set_tone, to static struct dvb_frontend_ops cx24123_ops This works for me and I am now getting lock on high-band transponders. However, this is probably not a complete fix as I have no idea how DiSEqC Encoding should be handled, nor how to manage overrides for other cards which use the isl6421 driver, but may not want it to generate tones. Regards, John Apologies! I made a silly mistake in the note above! The reference to: static struct dvb_frontend_ops cx24123_ops should read: struct dvb_frontend *isl6421_attach which is part of isl6421.h Regards, John Confirmed that John's changes to the isl6421 module fixed my reported problem. I built a new isl6421 module and all my missing channels are coming in fine. Friend of mine has this issue, I've applied the patch above and now he can tune high-band vertical transponders. For some reason, high-band horizontal transponders fail. As far as I could see, both set_voltage and set_tone were being called correctly (added some printks), and he measured the output voltage, stating that it was correct (he had no way to see if the 22KHz tone was on the line). Is there anything special that needs to be done for high-band horizontal tuning? (The card does work properly under Windows, so it doesn't seem to be his rig.) Oh and one thing I noticed: The line to add in struct dvb_frontend *isl6421_attach should probably be: fe->ops.set_tone = isl6421_set_tone; (At least in his version, cx24123_set_tone didn't exist.) Created attachment 21905 [details]
Putting John Donoghue's modifications in patch form.
Hi, Inspired by John's patch I did a little more digging... The 'Fix cx24123 diseqc' changeset didn't really 'forget' to implement the 22KHz tone generation in the isl6421. Instead the isl is being setup so that 22KHz is controlled by its DSQIN pin. The cx24123 driver is switching (what appears to be - no comments!) an pcm output pin to constant high/low to turn tone on/off. This, presumably, connected to DSQIN on the cx24123 based boards on which the DISECQ stuff was (presumably) tested. My 'best guess' as to the underlying bug (based on my time as a video IC architect/concept engineer at Philips / NXP): - The cx24123 has more than one PCM/GPIO output (can't have too many of them marketing always used to say!). - The Hauppauge cards use a *different one* from cards the disecq support was tested on. - I.e. disecq signalling probably never worked on the Hauppauge cards but setting constant 22KHz on/off via the Intersil masked the fact that DSQIN was not connected to the the pin being programmed by the driver. For simple/common sat setups it 'just worked'. I suspect a 'proper' fix would entail figuring out how to program the PCM that Hauppage used. I don't suppose anyone out there has access to a cx24123 datasheet? Like my old Employers Conexant seem to think you sell more chips by making it a PIA to get the details of which 'yawn' feature of 5 year old designs is toggled by which bit of which register... The CX24123 software datasheet can be found at http://smue.org/us/uploads/datasheets/connexant_cx24123_102807B.pdf Your technical knowledge is clearly better than mine, and I don't quite understand everything you are saying. I have always assumed that Hauppauge have not connected any of the CX24123 DISEQC outputs, since all the necessary functionality is independently provided by the ISL6421. I guess it is possible to use the CX24123 to drive the ISL6421, but it seems an unnecessary complication! I am not aware of any other card which uses both the CX24123 and ISL6421 chips. Best of luck with the problem! My apologies for messing up the fix and thanks to Michel Meyers for cleaning it up. I have no idea why there should be a problem with high-band horizontal polarization. My only suggestion is to use a cheap satellite finder which indicates polarization and band. My setup continues to work fine on a wide selection of transponders (the Astra 2 and Eurobird 1 constellation). Just for the record, I have had private e-mails with 4 others using this card, 2 of whom reported that the fix worked fine and 2 had no success whatever, regardless of polarization or high/low band. Hi John, Well it was just an educated guess... and my guess wasn't far off. Except... doing the relevant fixes didn't help one bit! Note that your patch works just fine for me too (also on Astra-2 / Eurobird-1). Comparing driver with datasheet (one of the linuxTV-ers pointed me to the pdf) everything seem like it 'should work' except that the the driver left LNBMode (bits 0..1 of register 0x2A) at 0 the default 'Tone Mode'. Presumably in this mode the tone output is being toggled at 22KHz by the cx24123 itself. For the isl6421 setup on the S-plus the logical thing seemed to be to use the setting 1 'Envelope Mode' where the output simply indicates tone on/off. It was a nice theory. Unfortunately, in practice switching to Envelope Mode didn't help one little bit! No lock... force 22Khz via your patch. Bingo - lock right out of the can. In combination with the fact that your patch doesn't work for some people I'm beginning to wonder if there might be significant differences between different versions of the S-plus (two models are distinguished in the driver). Do we know if there's some correlation between the version (92001 or 92002) that people have and whether or not your patch worked? Also: given the failure of basic 22Khz modulation to work via the cx24123 driving the isp6421 DSQIN pin. I'm sure there's *zero* chance of folks of DiSEqC message transmission working. Folks with any kind of switched setup are probably doomed. What kind of switch/lnb gear did the 'patch didn't work for me' folks have? The whole thing is a little frustrating. The 'Linux datasheet' is only the register table of the real thing and we don't know what hanky-panky Hauppauge got up to at the board level. It could be a board design screw-up or cx24123 erratum means some/all S-plus don't actually have the DSQIN connected or some other pin is gating the input. Stranger things have been know than to completely by-pass some fancy IC functionality and hack it in SW using some old-and-reliable driver code... cheers, Andrew Hi Andrew, Both of the 'patch didn't work for me' folks had a simple single LNB, fixed dish setup. One was on Hotbird 13E and could not lock on any transponder (high or low, H or V) so I assume he had a basic problem with his setup. The other was on Optus D1 and also could not lock on any transponder, but since they are all high-band, he could not check low-band operation. I asked him to try using a satellite finder or otherwise check for 22kHz, but did not hear from him again. The current Hauppauge spec claims DiSEqC 1.0 support, but you may well be right that there are different older versions of the S-Plus. I think I have board version 9202, as this is one of the outputs from a udevadm command. However, I would be surprised if the method of generating constant 22kHz tone or polarization voltage changed between versions. On reading the ISL6421 datasheet again, I agree that if the ISL6421 DSQIN pin can't be controlled, then tone-burst generation seems impossible, but presumably the Windows driver can manage it somehow! If you are planning to attempt a comprehensive fix, you may want to try to work with some of the original designers on the linux-media mailing list at http://www.mail-archive.com/linux-media@vger.kernel.org, although most of their effort now seems to be aimed at DVB-S2 drivers. I believe one of them (Steven Toth) used to have Hauppauge connections. Best of luck, John Just a short update from my aforementioned friend: He transferred the card to another system, installed a fresh Debian, pulled the latest v4l-dvb stuff and the card suddently started working with no problems. At this point I am not sure what the heck is going on. This post on the MythTV users list suggests it might be a hardware failure of the card: http://mythtv.org/pipermail/mythtv-users/2009-September/263844.html This would of course wreak havoc with all the debugging that's gone on here... Hi Michel, Would it be possible for you to find out which model 92001 or 92002 your friend has got? dmesg | grep 92 should reveal a line like [ 49.873536] tveeprom 2-0050: Hauppauge model 92001, rev C1B1, serial# 2581003 [ 49.873551] cx88[0]: hauppauge eeprom: model=92001 So far (sample of 2 :-( ) it would seem 92002 cards work fine with the latest drivers and 92001 cards (like mine) do not but basic tone signalling works if driven directly from the tone generator. There may well be some board revision changes in play here (perhaps even a board defect on the 92001 cards)... If we can gather some data that suggests different handling is needed then the fix can be tidied up into slightly different driver options for 92001 and 92002. cheers, Andrew Hello, This is what he just sent me: [ 12.290338] cx88[0]: hauppauge eeprom: model=92001 [ 12.354339] cx88[0]/2: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37] - Michel Hi, After a bit of a pause (birth of daughter!) I did some more experimenting and hunting around. Basically, I'm pretty sure its some kind of common hardware defect too. The driver simply 'should' work but doesn't. Driving the tone generator ic direct is a work-around but of course only restores simply tone+voltage signalling. I've got a fairly clean patch now written that activates the work-around as an option to the isl6421 module. I'm going to see if it might make it into the v4l-dvb code-base. If the maintainers aren't happy I'll see if I can maintain it as a patch and hang it in findeable places. cheers, Andrew Hi, any news here? the problem is still there @ kernel 2.6.39... Applying the provided patch, seems to solve the problem for me. (Astra ony, single LNB, no DiSEqC) bye, Karl I can confirm that the "Putting John Donoghue's modifications in patch form" patch works for me as well, with kernel version 3.4.15. My card is: cx88[0]: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37,autodetected], frontend(s): 1 ... tveeprom 0-0050: Hauppauge model 92001, rev C1B1, serial# 1888307 tveeprom 0-0050: MAC address is 00:0d:fe:1c:d0:33 tveeprom 0-0050: tuner model is Conexant_CX24109 (idx 111, type 4) tveeprom 0-0050: TV standards ATSC/DVB Digital (eeprom 0x80) tveeprom 0-0050: audio processor is CX883 (idx 32) tveeprom 0-0050: decoder processor is CX883 (idx 22) tveeprom 0-0050: has no radio, has IR receiver, has no IR transmitter I'm using Astra 28.2/28.5 through a communal satellite system (i.e. no DiSEqC required; it just looks like a universal LNB to my receiver). I've compared the output from scan before and after applying the patch. Without the patch, the highest-frequency transponder it finds is at 11.68 GHz (i.e. it's only seeing low-band transponders). With the patch, it receives all the transponders listed on kingofsat.net, so it's working properly. Without the patch, it does find both H and V transponders -- so voltage switching works regardless. It's just tone switching that's broken. (It does actually report one highband transponder without the patch -- but it's spurious; it lists it at 12.070 H, but it's actually the one with BFBS Radio etc. at 11.222 H -- which is what you'd get if you tuned to 12.070 but didn't turn the tone on, as 12.070 - 0.85 = 11.220.) |