[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:16:20 CEST 2006


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 .....

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

Z.




More information about the linux-dvb mailing list