[linux-dvb] Re: %5Blinux-dvb%5D%20Twinhan%20Cab%2FCI%202031%3A%20frontend%20entry%20sometimes%20missing

Zoilo Gomez zoilo at xs4all.nl
Wed Sep 27 01:57:52 CEST 2006


Manu Abraham wrote:

>Zoilo Gomez wrote:
>  
>
>>Manu Abraham wrote:
>>
>>    
>>
>>>Zoilo Gomez wrote:
>>> 
>>>
>>>      
>>>
>>>>Hi Marcus,
>>>>
>>>>The problems with 2031 were unfortunately never fixed. IIRC we were left
>>>>with the following problems:
>>>>1) tuner device sometimes missing in /dev/dvb/adapterX/ on boot (app.
>>>>20% of the boots, tested on 2 different machines)
>>>>2) needed to tune twice in case of freq change; the first time would
>>>>almost never give a lock (but sometimes it did strangely enough)
>>>>3) unstable signal, where signal would be lost after some time (hours);
>>>>this problem I never investigated thoroughly, because of 1) and 2) which
>>>>needed a solution first
>>>>
>>>>        
>>>>
>><....>
>>
>>    
>>
>>>http://linuxtv.org/hg/v4l-dvb?f=4f65bdd94527;file=linux/drivers/media/dvb/bt8xx/dst.c;style=gitweb
>>>
>>>
>>>at line #1648, does adding a msleep(20) or something around that order
>>>help ? for your problem (2) mentioned
>>>for (1) try using dst_addons=0x20 as module parameter.
>>>
>>>You will need this patch as well (for fixing the dvb-attach). Apply this
>>>patch first
>>>http://article.gmane.org/gmane.linux.drivers.dvb/27792/match=
>>>
>>>Alongwith one of the previous patches, commenting out one line for
>>>DCT-CI cards
>>>
>>>
>>> 
>>>
>>>      
>>>
>>Unfortunately using dst_addons=0x20 for problem (1) does not seem to help.
>>
>>I dug up 2 of my 2031 cards, and put them in a machine. First time after
>>boot, both cards did show a tuner; but the second time the tuner of
>>adapter0 failed as follows:
>>
>>    
>>
>>>/dev/dvb/
>>>/dev/dvb/adapter1
>>>/dev/dvb/adapter1/frontend0
>>>/dev/dvb/adapter1/ca0
>>>/dev/dvb/adapter1/net0
>>>/dev/dvb/adapter1/dvr0
>>>/dev/dvb/adapter1/demux0
>>>/dev/dvb/adapter0
>>>/dev/dvb/adapter0/dvr0
>>>/dev/dvb/adapter0/net0
>>>/dev/dvb/adapter0/demux0
>>> 
>>>
>>>      
>>>
>>Here is how I loaded my modules:
>>
>>    
>>
>>>dvb_core dvb_shutdown_timeout=0
>>>bttv i2c_hw=1 card=0x71
>>>bt878
>>>dst verbose=5 dst_addons=0x20
>>>dst_ca
>>>dvb-bt8xx
>>> 
>>>
>>>      
>>>
>>Relevant part of dmesg:
>>
>>    
>>
>>>Linux video capture interface: v2.00
>>>bttv: driver version 0.9.16 loaded
>>>bttv: using 8 buffers with 2080k (520 pages) each for capture
>>>bttv: Bt8xx card found (0).
>>>ACPI: PCI Interrupt 0000:00:09.0[A] -> GSI 17 (level, low) -> IRQ 16
>>>bttv0: Bt878 (rev 17) at 0000:00:09.0, irq: 16, latency: 32, mmio:
>>>0xef000000
>>>bttv0: detected: Twinhan VisionPlus DVB [card=113], PCI subsystem ID
>>>is 1822:0001
>>>bttv0: using: Twinhan DST + clones [card=113,insmod option]
>>>bttv0: gpio: en=00000000, out=00000000 in=00f100fd [init]
>>>bttv0: using tuner=4
>>>bttv0: add subdevice "dvb0"
>>>bttv: Bt8xx card found (1).
>>>ACPI: PCI Interrupt 0000:00:0a.0[A] -> GSI 18 (level, low) -> IRQ 18
>>>bttv1: Bt878 (rev 17) at 0000:00:0a.0, irq: 18, latency: 32, mmio:
>>>0xee000000
>>>bttv1: detected: Twinhan VisionPlus DVB [card=113], PCI subsystem ID
>>>is 1822:0001
>>>bttv1: using: Twinhan DST + clones [card=113,autodetected]
>>>bttv1: gpio: en=00000000, out=00000000 in=00f100fd [init]
>>>bttv1: using tuner=4
>>>bttv1: add subdevice "dvb1"
>>>bt878: AUDIO driver version 0.0.0 loaded
>>>bt878: Bt878 AUDIO function found (0).
>>>ACPI: PCI Interrupt 0000:00:09.1[A] -> GSI 17 (level, low) -> IRQ 16
>>>bt878_probe: card id=[0x11822],[ Twinhan VisionPlus DVB ] has DVB
>>>functions.
>>>bt878(0): Bt878 (rev 17) at 00:09.1, irq: 16, latency: 32, memory:
>>>0xee800000
>>>bt878: Bt878 AUDIO function found (1).
>>>ACPI: PCI Interrupt 0000:00:0a.1[A] -> GSI 18 (level, low) -> IRQ 18
>>>bt878_probe: card id=[0x11822],[ Twinhan VisionPlus DVB ] has DVB
>>>functions.
>>>bt878(1): Bt878 (rev 17) at 00:0a.1, irq: 18, latency: 32, memory:
>>>0xed800000
>>>DVB: registering new adapter (bttv0).
>>>dst(0) rdc_8820_reset: Resetting DST
>>>dst(0) dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0000]
>>>dst(0) dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0004]
>>>dst(0) dst_comm_init: Initializing DST.
>>>dst(0) dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
>>>dst(0) rdc_reset_state: Resetting state machine
>>>dst(0) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
>>>dst(0) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
>>>writing [ 00 06 00 00 00 00 00 fa ]
>>>dst(0) dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
>>>dst(0) read_dst: reply is 0xff
>>>dst(0) dst_wait_dst_ready: dst wait ready after 1
>>>dst(0) read_dst: reply is 0x0
>>>0x44 0x43 0x54 0xd 0x43 0x49 0x6c
>>>dst(0) dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
>>>dst(0) dst_get_device_id: Checksum failure!
>>>dst(0) dst_probe: unknown device.
>>>frontend_init: Could not find a Twinhan DST.
>>>dvb-bt8xx: A frontend driver was not found for device 109e/0878
>>>subsystem 1822/0001
>>>DVB: registering new adapter (bttv1).
>>>dst(1) rdc_8820_reset: Resetting DST
>>>dst(1) dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0000]
>>>dst(1) dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0004]
>>>dst(1) dst_comm_init: Initializing DST.
>>>dst(1) dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
>>>dst(1) rdc_reset_state: Resetting state machine
>>>dst(1) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
>>>dst(1) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
>>>writing [ 00 06 00 00 00 00 00 fa ]
>>>dst(1) dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
>>>dst(1) read_dst: reply is 0xff
>>>dst(1) dst_wait_dst_ready: dst wait ready after 1
>>>dst(1) read_dst: reply is 0x0
>>>0x44 0x43 0x54 0x2d 0x43 0x49 0x6c
>>>dst(1) dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
>>>dst(1) dst_get_device_id: Recognise [DCT-CI]
>>>dst(1) dst_type_print: DST type: cable
>>>DST type flags : 0x1000 VLF 0x8 firmware version = 1 0x10 firmware
>>>version = 2
>>>dst(1) dst_comm_init: Initializing DST.
>>>dst(1) dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
>>>dst(1) rdc_reset_state: Resetting state machine
>>>dst(1) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
>>>dst(1) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
>>>writing [ 00 0a 00 00 00 00 00 f6 ]
>>>dst(1) dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
>>>dst(1) read_dst: reply is 0xff
>>>dst(1) dst_wait_dst_ready: dst wait ready after 0
>>>dst(1) read_dst: reply is 0x0
>>>0x8 0xca 0x10 0x16 0x15 0xaf 0x44
>>>dst(1) dst_get_mac: MAC Address=[00:08:ca:16:15:00]
>>>dst(1) dst_get_tuner_info: DST TYpe = MULTI FE
>>>dst(1) dst_comm_init: Initializing DST.
>>>dst(1) dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
>>>dst(1) rdc_reset_state: Resetting state machine
>>>dst(1) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
>>>dst(1) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
>>>writing [ 00 13 00 00 00 00 00 ed ]
>>>dst(1) dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
>>>dst(1) read_dst: reply is 0xff
>>>dst(1) dst_wait_dst_ready: dst wait ready after 0
>>>dst(1) read_dst: reply is 0xbc
>>>0x1 0x0 0x0 0x0 0x0 0x0 0x43
>>>dst(1) dst_get_tuner_info: DST type has TS=188
>>>dst(1) dst_get_tuner_info: DST has Daughterboard
>>>dst_ca_attach: registering DST-CA device
>>>DVB: registering frontend 1 (DST DVB-C)...
>>> 
>>>
>>>      
>>>
>>Apparently there is some checksum failure reported on adapter0. However,
>>if I boot it again then there is 80% chance that the problem does not
>>occur .....
>>    
>>
>
>request a replacement for that card. If you see that checksum error once
>and then not
>That is a hardware failure, most probably
>  
>

I have 4 of these cards, and I am quite sure that I have seen this 
problem on all of them over the last months ...

But perhaps I am wrong.

Will do some more testing and report results.


>>Now I will go and see if msleep(20) makes a difference for problem (2).
>>    
>>

msleep(20) does not seem to make any difference for problem (2). If I 
change frequencies, I have to select twice in order to obtain a lock ... 
Also msleep(100) make no change.

I wonder if this problem has to do with CA initialization after tuner 
freq change, but unfortunately I have no FTA-channels so I cannot 
compare it.

Z.




More information about the linux-dvb mailing list