Bug 9476

Summary: [PATCH]Hauppauge Nova-S-Plus DVB-S does not lock on horizontal polarisation
Product: v4l-dvb Reporter: Fabian Sturm (f)
Component: cx88Assignee: 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
Most recent kernel where this bug did not occur: some 2.6.20 version
Distribution: Ubuntu
Hardware Environment: Standard PC with  Nova-S-Plus DVB-S
Software Environment: Ubuntu Gutsy
Problem Description:

The Hauppauge video card worked fine with Ubuntu Feisty but stopped working with Gutsy. Further investigation seems to indicate that the voltage for horizontal 
polarisation does not get activated.

I can tune a channel with vertical polarisation and get 13V.
But on tuning in a horizontal I get 0V.

Same happens with the vanilla 2.6.22 kernel.

If you need I can test various patches. Maybe it is even possible to force
the driver to switch on the voltage. Then I an test more relyable

Additional info is pasted below. Thanks, Fabian

When I try to scan for channels in kaffeine I get the following output.
The kaffeine scan suggests it is trying to scan a vertical polarisation and does not get a lock. Which is strange since tuning in a preselected vertical station works, only the horizontal don't.


/dev/dvb/adapter0/frontend0 : opened ( Conexant CX24123/CX24109 )
/dev/dvb/adapter0/frontend1 : : No such file or directory
/dev/dvb/adapter1/frontend0 : : No such file or directory
QSettings::sync: filename is null/empty
QSettings::sync: filename is null/empty
QSettings::sync: filename is null/empty
QSettings::sync: filename is null/empty
QLayout "unnamed" added to QWidget "unnamed", which already has a layout
kio (KMimeType): WARNING: KServiceType::offers : servicetype ThumbCreator not found
kio (KMimeType): WARNING: KServiceType::offers : servicetype ThumbCreator not found
vdr-desktop:~$ DvbCam::probe(): /dev/dvb/adapter0/ca0: : No such file or directory
Using DVB device 0:0 "Conexant CX24123/CX24109"
tuning DVB-S to 12551000 v 22000000
inv:2 fecH:5
DiSEqC: switch pos 0, 13V, hiband (index 2)
DiSEqC: e0 10 38 f1 00 00
...............
Not able to lock to the signal on the given frequency
Frontend closed
dvbsi: Cant tune DVB
Transponders: 1
dvbsi: The end smile
Channels found: 0

Btw. the same works with a Nova-S DVB card. So the cable and satellite dish work properly.

The output from lspci is:

00:00.0 Host bridge: nVidia Corporation nForce2 AGP (different version?) (rev a2)
00:00.1 RAM memory: nVidia Corporation nForce2 Memory Controller 1 (rev a2)
00:00.2 RAM memory: nVidia Corporation nForce2 Memory Controller 4 (rev a2)
00:00.3 RAM memory: nVidia Corporation nForce2 Memory Controller 3 (rev a2)
00:00.4 RAM memory: nVidia Corporation nForce2 Memory Controller 2 (rev a2)
00:00.5 RAM memory: nVidia Corporation nForce2 Memory Controller 5 (rev a2)
00:01.0 ISA bridge: nVidia Corporation nForce2 ISA Bridge (rev a3)
00:01.1 SMBus: nVidia Corporation nForce2 SMBus (MCP) (rev a2)
00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev a3)
00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev a3)
00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev a3)
00:04.0 Ethernet controller: nVidia Corporation nForce2 Ethernet Controller (rev a1)
00:05.0 Multimedia audio controller: nVidia Corporation nForce Audio Processing Unit (rev a2)
00:06.0 Multimedia audio controller: nVidia Corporation nForce2 AC97 Audio Controler (MCP) (rev a1)
00:08.0 PCI bridge: nVidia Corporation nForce2 External PCI Bridge (rev a3)
00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2)
00:0c.0 PCI bridge: nVidia Corporation nForce2 PCI Bridge (rev a3)
00:0d.0 FireWire (IEEE 1394): nVidia Corporation nForce2 FireWire (IEEE 1394) Controller (rev a3)
00:1e.0 PCI bridge: nVidia Corporation nForce2 AGP (rev a2)
01:08.0 Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
01:08.1 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (rev 05)
01:08.2 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05)
01:08.4 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (rev 05)
01:0a.0 SCSI storage controller: Adaptec AHA-2940U/UW/D / AIC-7881U (rev 01)
02:01.0 Ethernet controller: 3Com Corporation 3C920B-EMB Integrated Fast Ethernet Controller [Tornado] (rev 40)
03:00.0 VGA compatible controller: nVidia Corporation NV34 [GeForce FX 5200] (rev a1)

And the kernel dmesg is:

[ 72.854514] Linux video capture interface: v2.00
[ 72.990139] cx2388x alsa driver version 0.0.6 loaded
[ 72.990590] ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
[ 72.990605] ACPI: PCI Interrupt 0000:01:08.1[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 20
[ 72.990699] CORE cx88[0]: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37,autodetected]
[ 72.990705] TV tuner 4 at 0x1fe, Radio tuner -1 at 0x1fe
[ 73.001311] cx2388x cx88-mpeg Driver Manager version 0.0.6 loaded
[ 73.078757] nvidia: module license 'NVIDIA' taints kernel.
[ 73.147246] tveeprom 2-0050: Hauppauge model 92001, rev C1B1, serial# 1426684
[ 73.147254] tveeprom 2-0050: MAC address is 00-0D-FE-15-C4-FC
[ 73.147259] tveeprom 2-0050: tuner model is Conexant_CX24109 (idx 111, type 4)
[ 73.147264] tveeprom 2-0050: TV standards ATSC/DVB Digital (eeprom 0x80)
[ 73.147269] tveeprom 2-0050: audio processor is CX883 (idx 32)
[ 73.147272] tveeprom 2-0050: decoder processor is CX883 (idx 22)
[ 73.147276] tveeprom 2-0050: has no radio, has IR receiver, has no IR transmitter
[ 73.147281] cx88[0]: hauppauge eeprom: model=92001
[ 73.147451] input: cx88 IR (Hauppauge Nova-S-Plus as /class/input/input2
[ 73.147567] cx88[0]/1: CX88x/0: ALSA support for cx2388x boards
[ 73.148008] cx88[0]/2: cx2388x 8802 Driver Manager
[ 73.148040] ACPI: PCI Interrupt 0000:01:08.2[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 20
[ 73.148055] cx88[0]/2: found at 0000:01:08.2, rev: 5, irq: 20, latency: 32, mmio: 0xe2000000
[ 73.405260] ACPI: PCI Interrupt Link [APC4] enabled at IRQ 19
[ 73.405277] ACPI: PCI Interrupt 0000:03:00.0[A] -> Link [APC4] -> GSI 19 (level, high) -> IRQ 21
[ 73.405893] NVRM: loading NVIDIA Linux x86 Kernel Module 1.0-9631 Thu Nov 9 17:38:10 PST 2006
[ 73.514374] cx2388x v4l2 driver version 0.0.6 loaded
[ 73.514488] ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 20
[ 73.514506] cx88[0]/0: found at 0000:01:08.0, rev: 5, irq: 20, latency: 32, mmio: 0xe0000000
[ 73.514582] cx88[0]/0: registered device video0 [v4l2]
[ 73.514627] cx88[0]/0: registered device vbi0
[...]
[ 74.634119] cx2388x dvb driver version 0.0.6 loaded
[ 74.634157] cx8802_register_driver() ->registering driver type=dvb access=shared
[ 74.634165] CORE cx88[0]: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37]
[ 74.634199] cx88[0]/2: cx2388x based dvb card
[ 74.742711] DVB: registering new adapter (cx88[0]).
[ 74.742723] DVB: registering frontend 0 (Conexant CX24123/CX24109)...
[ 74.828923] Adding 506032k swap on /dev/disk/by-uuid/a27fa2d5-8459-456e-99f8-20d8c76decb0. Priority:-1 extents:1 across:506032k
[...]
Comment 1 Natalie Protasevich 2008-05-19 23:25:28 UTC
Fabian, does it still fail with recent kernels?
Comment 2 Fabian Sturm 2008-06-04 12:26:39 UTC
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
Comment 3 Will Cooke 2008-06-18 13:43:02 UTC
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
Comment 4 Will Cooke 2008-06-18 13:57:39 UTC
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
Comment 5 Mauro Carvalho Chehab 2008-06-18 14:21:11 UTC
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.
Comment 6 Will Cooke 2008-06-20 02:29:20 UTC
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.
Comment 7 Henrik Hobein 2008-10-06 08:31:25 UTC
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
Comment 8 John Donoghue 2009-01-17 04:29:08 UTC
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
Comment 9 John Donoghue 2009-01-17 10:06:46 UTC
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
Comment 10 Will Cooke 2009-01-18 04:45:27 UTC
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.
Comment 11 Michel Meyers 2009-06-13 22:00:13 UTC
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.)
Comment 12 Michel Meyers 2009-06-13 22:04:05 UTC
Created attachment 21905 [details]
Putting John Donoghue's modifications in patch form.
Comment 13 Andrew Stevens 2009-08-18 22:17:37 UTC
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...
Comment 14 John Donoghue 2009-08-19 09:39:53 UTC
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.
Comment 15 Andrew Stevens 2009-08-19 16:05:10 UTC
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
Comment 16 John Donoghue 2009-08-20 13:16:00 UTC
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
Comment 17 Michel Meyers 2009-09-08 13:25:34 UTC
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...
Comment 18 Andrew Stevens 2009-09-11 07:20:47 UTC
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
Comment 19 Michel Meyers 2009-09-11 07:53:57 UTC
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
Comment 20 Andrew Stevens 2009-11-28 21:21:15 UTC
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
Comment 21 Karl Szmutny 2011-08-05 09:10:16 UTC
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
Comment 22 Adam Sampson 2012-10-28 11:06:59 UTC
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.)