Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Question regarding stv0299_send_diseqc_msg
Hi all,
I'm trying to solve a problem with the 2.4 DVB driver and WinTV Nova-CI cards
and Technistat Gigaswitch 11/20G DiSEqC's. The 2.4 version of the driver cannot
tune with these switches. The 2.6 version works fine. WinTV Nexus cards with
2.4 driver also work.
I traced down the I2C dialog. I did a small modification to the SU1278
initialization, to make it identical to what the 2.6 driver does.
There's a difference between the 2.4 and 2.6 version when it comes to sending
the DiSEqC message:
2.4 driver in stv0299_send_diseqc_msg()
R 0x0a -> 0xc2 Is Idle (&0x2 == 0x2) stv0299_wait_diseqc_idle()
R 0x08 -> 0x42 Get DiSEqC mode
W 0x08 -> 0x46 Set mode to (0x42&~0x7) | 0x6
Send DiSEqC message:
R 0x0a -> 0xc2 Fifo ready (0xc2&0x01 == 0x00)
W 0x09 -> 0xe0 Octet #0
R 0x0a -> 0xc0 Fifo ready (0xc0&0x01 == 0x00)
W 0x09 -> 0x10 Octet #1
R 0x0a -> 0xe0 Fifo ready (0xe0&0x01 == 0x00) !!!??
.
.
.
In the 2.6 driver, the last line is
R 0x0a -> 0xe1 Fifo NOT ready
R 0x0a -> 0xc0 Fifo Ready
.
.
.
It's reproducible, I don't think, that this is a timing issue. Can someone
explain me that or give me a hint where to search? It seems that the STV0299
is just ignoring the command...?
The complete stv0299_send_diseqc_msg() in the non-working 2.4 is:
R 0x0a -> 0xc2
R 0x08 -> 0x42
W 0x08 -> 0x46
R 0x0a -> 0xc2
W 0x09 -> 0xe0
R 0x0a -> 0xc2
W 0x09 -> 0x10
R 0x0a -> 0xc2
W 0x09 -> 0x38
R 0x0a -> 0xc2
W 0x09 -> 0xf3
R 0x0a -> 0xc0
R 0x0a -> 0xc2
And for the working 2.6 version:
R 0x0a -> 0xc2
R 0x08 -> 0x42
W 0x08 -> 0x46
R 0x0a -> 0xc2
W 0x09 -> 0xe0
R 0x0a -> 0xc0
W 0x09 -> 0x10
R 0x0a -> 0xe1
R 0x0a -> 0xc0
W 0x09 -> 0x38
R 0x0a -> 0xc0
W 0x09 -> 0xf3
R 0x0a -> 0xc1
R 0x0a -> 0xe0
The DiSEqC is o.k. The same Nova card is functioning in a Windoze machine with
the
TT software.
pm
Home |
Main Index |
Thread Index