[linux-dvb] Twinhan Cab/CI 2031: always need to tune twice

Zoilo Gomez zoilo at xs4all.nl
Wed Aug 16 00:34:29 CEST 2006


With the locking problem fixed, it's time to move to the next problem 
with the Twinhan Cab/CI 2031 card.

I have a Twinhan Cab/CI 2031 (well, actually I have 3 of them) and a KNC1.

Using vlc, on the KNC1, when I tell the card to start streaming a 
program, it may take several seconds before it starts, but it works the 
first time.

Using the Twinhan, I always have to enter the command twice; the first 
time nothing will happen. Then I Ctrl-C, rerun the same command and it 
works.

So far I hav not been able to figure out where things go wrong.

Sample dst output with verbose-5 during such a failing 'first tune':

>dst_ca_open:  Device opened [df682140] 
>dst_ca_ioctl:  Getting Slot capabilities
>put_checksum:  Computing string checksum.
>put_checksum:   -> string length : 0x07
>put_checksum:   -> checksum      : 0xb5
>dst_put_ci:  Put Command
>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_set_freq: set Frequency 354750000
>dst(0) dst_set_frontend: Set Frequency=[354750000]
>dst(0) dst_set_symbolrate: set symrate 6900000
>dst(0) dst_set_symbolrate: DCT-CI
>dst(0) dst_write_tuna: type_flags 0x1219 
>dst(0) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
>writing [ 07 40 02 00 02 00 00 b5 ]
>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 0xa
> 0x40 0x0 0x0 0x2 0x3 0x0 0x1 0x18 0x1 0x97 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
>ca_get_slot_caps:  -->dst_put_ci SUCCESS !
>ca_get_slot_caps:  Slot cap = [1]
>===================================
> 10 64 0 0 2 3 0 1 24 1 151
>dst_ca_ioctl:  -->CA_GET_CAP Success !
>dst_ca_ioctl:  Getting Slot info
>put_checksum:  Computing string checksum.
>put_checksum:   -> string length : 0x07
>put_checksum:   -> checksum      : 0xfb
>dst_put_ci:  Put Command
>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 05 00 00 00 00 00 fb ]
>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 2
>dst(0) read_dst: reply is 0x0
> 0x5 0x0 0x14 0x88 0x51 0x0 0xe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
>ca_get_slot_info:  -->dst_put_ci SUCCESS !
>ca_get_slot_info:  Slot info = [20]
>===================================
> 0 5 0 20 136 81 0 14
>dst_ca_ioctl:  -->CA_GET_SLOT_INFO Success !
>dst_ca_ioctl:  Sending message
>ca_send_message:  
>ca_send_message:  Command=[0x9f8020]
>
>ca_send_message:  Getting Cam Application information
>put_checksum:  Computing string checksum.
>put_checksum:   -> string length : 0x07
>put_checksum:   -> checksum      : 0xb7
>dst_put_ci:  Put Command
>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 [ 07 40 01 00 01 00 00 b7 ]
>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 0xd
> 0x40 0x0 0x0 0x1 0x6 0x0 0x0 0x3 0x1 0x0 0x41 0x0 0x67 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
>ca_get_app_info:  -->dst_put_ci SUCCESS !
>ca_get_app_info:  ================================ CI Module Application Info ======================================
>ca_get_app_info:  Application Type=[0], Application Vendor=[769], Vendor Code=[65]
>ca_get_app_info: Application info=[]
>ca_get_app_info:  ==================================================================================================
>ca_send_message:  -->CA_APP_INFO_ENQUIRY Success !
>dst_ca_ioctl:  Getting message
>ca_get_message:  Message = [9f 80 21]
>ca_get_message:  Command=[0x9f8021]
>dst_ca_ioctl:  -->CA_GET_MSG Success !
>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 [ 09 00 05 69 be 00 1a f4 40 7d ]
>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 42
>dst(0) read_dst: reply is 0x9
> 0x0 0x5 0x69 0xbe 0x0 0x1a 0xf4 0x40 0x7d
>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 05 00 00 00 00 00 fb ]
>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
> 0x5 0x0 0x0 0x88 0x2 0x0 0x71
>dst_ca_release:  Device closed.
>

Raido: do you have the same problem with you Twinhan?

Z.



More information about the linux-dvb mailing list