Hi Manu,
Zoilo Gomez wrote:
Manu Abraham wrote:
Zoilo Gomez wrote:
Manu Abraham wrote:
Zoilo Gomez wrote:
<...>
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)
<...>
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.
As mentioned, the tuning problem persists, with msleep(20) as well as
msleep(100).
I think that it has something to do with CA initialization.
Here is a dmesg dump while trying to change freq 322,750,000 (pid=12183)
to 306,750,000 (pid=12242).
dst_ca_open: Device opened [dd29b3c0]
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(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_set_freq: set Frequency 306750000
dst(1) dst_set_frontend: Set Frequency=[306750000]
dst(1) dst_set_symbolrate: set symrate 6900000
dst(1) dst_set_symbolrate: DCT-CI
dst(1) dst_write_tuna: type_flags 0x1219
dst(1) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 07 40 02 00 02 00 00 b5 ]
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 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(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 05 00 00 00 00 00 fb ]
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 2
dst(1) read_dst: reply is 0x0
0x5 0x0 0x14 0x88 0x4b 0x0 0x14 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 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 75 0 20
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(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 [ 07 40 01 00 01 00 00 b7 ]
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 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(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_ca_ioctl: Getting message
ca_get_message: Message = [9f 80 21]
ca_get_message: Command=[0x9f8021]
dst_ca_ioctl: -->CA_GET_MSG Success !
dst(1) dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 09 00 04 ae 3e 00 1a f4 40 b9 ]
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 42
dst(1) read_dst: reply is 0x9
0x0 0x4 0xae 0x3e 0x0 0x1a 0xf4 0x40 0xb9
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 05 00 00 00 00 00 fb ]
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
0x5 0x0 0x0 0x88 0x2 0x0 0x71
At this point things stop ...
When I tune again to the same very channel (successfully), dmesg output
does not stop at this point, but continues as follows:
dst_ca_ioctl: Sending message
ca_send_message:
ca_send_message: Command=[0x9f8032]
ca_send_message: Command = SEND_CA_PMT
asn_1_decode: Length field=[21]
asn_1_decode: Length=[21]
ca_set_pmt: CA Message length=[33]
String=[ 03 2f 6e 01 00 07 01 09 04 18 01 e0 23 02 08 fd 00 00 04 09 08 00 00 06 09 c5 00 00 06 09 05 00 00 ]
put_checksum: Computing string checksum.
put_checksum: -> string length : 0x28
put_checksum: -> checksum : 0x9b
String=[ 28 40 03 00 03 21 00 03 2f 6e 01 00 07 01 09 04 18 01 e0 23 02 08 fd 00 00 04 09 08 00 00 06 09 c5 00 00 06 09 05 00 00 9b ]
dst_put_ci: Put Command
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 [ 28 40 03 00 03 21 00 03 2f 6e 01 00 07 01 09 04 18 01 e0 23 02 08 fd 00 00 04 09 08 00 00 06 09 c5 00 00 06 09 05 00 00 9b ]
dst(1) dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
dst(1) read_dst: reply is 0xff
write_to_8820: DST-CI Command success.
ca_send_message: -->CA_PMT Success !
So I think that there is a CA problem.
Any idea why the dst_ca_ioctl call does not occur?
Z.
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb