DVICO FusionHDTV DVB-T Pro
Quoted 1 line · Daniel Gimpelevich
Looking at
cx88-cards.c, I see that the definition there
for your
Quoted 1 line
card is quite broken. I'm amazed it ever worked at all
with such
Quoted 1 line
incomplete support.
There was some preliminary work in
http://linuxtv.org/hg/~pascoe/xc-test/ that got DVB-T working with this card in 2.6.24. Analog TV, composite, svideo, remote controls, etc didn't work (or at least I was told they wouldn't work and I never tried them). Is that what you mean by 'quite broken'? I'm not familiar enough with the linuxtv codebase to make judgements of what you mean for myself, but am willing to learn. All I've really done is applied patches that Chris supplied me.
Quoted 1 line
Fundamental portions of the cx88 driver need to be redone,
and for
Quoted 1 line
your card, that will mean going back to Windows to see
what the
Quoted 1 line
vendor's driver is doing with GPIO in response to
different inputs,
Quoted 1 line
as well as some experimentation. If you're up for things
like that,
Quoted 2 lines
you can start by:
1) Gathering GPIO register values in Windows with RegSpy
from
Quoted 1 line
dscaler.org, recording what they are with each card input
selected
Quoted 1 line
(DVB, analog TV, composite, S-video, FM radio, SCART,
etc.), as well
Quoted 1 line
as the values after closing all apps related to the card,
so that the
Quoted 1 line
card is idle.
Done, at least some preliminary (i.e. non-exhaustive) results. See answer to 3) below.
Quoted 3 lines
2) Applying this patch:
http://thread.gmane.org/gmane.comp.video.video4linux/38536
Note that with the card definition as it currently is,
this patch
Quoted 1 line
will make the card stop working altogether. You will need
to redo the
Quoted 1 line
card definition to include all the info gathered in #1
above.
What revision should I apply this patch to?
Quoted 1 line
3) Reporting your findings from #1 and #2 above. I will be
submitting
Quoted 1 line
a patch to the tuner-core that will pave the way for some
real fixing
Quoted 1 line
of cx88, and info on as many cx88 cards as possible will
be a plus
Quoted 1 line
during that fixing.
Where should I report my findings? On-list or off-list?
Quoted 1 line
4) Testing future cutting-edge patches to see how they
affect the use
Quoted 1 line
of the card, before those patches make it into the tree.
Fine by me.
Quoted 2 lines
Have fun!
Thanks,
Adam
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 5 lines · Adam Burdeniuk
Daniel,
Please read my comments scattered below. I had posted this to the linux-dvb mailing list (albeit in a new thread) but it seems to have got lost in the noise.
I am CC'ing the list.
Quoted 8 lines
Quoted 3 lines · Daniel Gimpelevich
Looking at
cx88-cards.c, I see that the definition there for your card is quite broken. I'm amazed it ever worked at all with such incomplete support.There was some preliminary work in
http://linuxtv.org/hg/~pascoe/xc-test/ that got DVB-T working with this card in 2.6.24.
That tree was merged into the main v4l-dvb tree.
Quoted 6 lines
Analog TV, composite, svideo, remote controls, etc
didn't work (or at least I was told they wouldn't work and I never tried them). Is that what you mean by 'quite broken'? I'm not familiar enough with the linuxtv codebase to make judgements of what you mean for myself, but am willing to learn. All I've really done is applied patches that Chris supplied me.
There is that, but also, I bet that any attempt to try them would have made DVB also stop working.
Quoted 10 lines
Quoted 9 lines
Fundamental portions of the cx88 driver need to be redone, and for your card, that will mean going back to Windows to see what the vendor's driver is doing with GPIO in response to different inputs, as well as some experimentation. If you're up for things like that, you can start by: 1) Gathering GPIO register values in Windows with RegSpy from dscaler.org, recording what they are with each card input selected (DVB, analog TV, composite, S-video, FM radio, SCART, etc.), as well as the values after closing all apps related to the card, so that the card is idle.
Quoted 2 lines
Done, at least some preliminary (i.e. non-exhaustive) results. See the attachment for processed results.
Excellent!
Quoted 2 lines
Even when the card is idle it seems to be doing DMA transfers (as the *DMA* values keep changing).
That is to be expected.
Quoted 10 lines
The one issue that Chris told me about with this card (I don't know if there were any others that he solved before I came along) was:
Quoted 7 lines
...There was some code someone else added to the zl10353 driver that makes it give up control of the I2C bus. This isn't appropriate for this board, because the zl10353 provides the bus power. If it does this, everything stops responding - including the eeprom - so things are messed up... I have disabled this functionality for this board and put a patch in with the right GPIO settings into:
http://linuxtv.org/hg/~pascoe/xc-test/
This would also be addressed in the fundamental changes I mentioned above.
Quoted 8 lines
Quoted 5 lines
2) Applying this patch:
http://thread.gmane.org/gmane.comp.video.video4linux/38536 Note that with the card definition as it currently is, this patch will make the card stop working altogether. You will need to redo the card definition to include all the info gathered in #1 above.What revision should I apply this patch to? What information do I put where?
It would be applied to the current mercurial tip of the main v4l-dvb tree. After doing that, replace the card definition in cx88-cards.c for your card with one based on the data you provided. That would be:
[CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO] = {
.name = "DViCO FusionHDTV DVB-T PRO",
.tuner_type = TUNER_ABSENT, /* XXX: Has XC3028 */
.radio_type = UNSET,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.input = { {
.type = CX88_VMUX_TELEVISION,
.vmux = 0,
.gpio0 = 0x00001ef5,
}, {
.type = CX88_VMUX_COMPOSITE1,
.vmux = 1,
.gpio0 = 0x00001ef1,
}, {
.type = CX88_VMUX_SVIDEO,
.vmux = 2,
.gpio0 = 0x00001ef1,
}, {
.type = CX88_VMUX_DVB,
.gpio0 = 0x00001ef5,
} },
.off = {
.type = CX88_OFF,
.gpio0 = 0x00001ef5,
},
.mpeg = CX88_MPEG_DVB,
},Quoted 8 lines
Quoted 7 lines
3) Reporting your findings from #1 and #2 above. I will be submitting a patch to the tuner-core that will pave the way for some real fixing of cx88, and info on as many cx88 cards as possible will be a plus during that fixing.
4) Testing future cutting-edge patches to see how
they affect the use of the card, before those patches make it into the tree.
Quoted 6 lines
Fine by me.
Quoted 1 line
Have fun!
Thanks,
Adam
OK, after applying the patch and replacing the card definition, please try under Linux everything you did under Windows, so that you may report back any observable differences between the two. While they might not all be taken care of in the short term, a catalog of them now would be a resource for future improvements.
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Daniel Gimpelevich wrote:
[...snip...]
Quoted 5 lines
OK, after applying the patch and replacing the card definition, please try under Linux everything you did under Windows, so that you may report back any observable differences between the two. While they might not all be taken care of in the short term, a catalog of them now would be a resource for future improvements.
Daniel,
I've updated to head, applied the patch and replaced the card definition. The behaviour of failing to tune is still the same. dmesg still says "cx88[0]: Error: Calling callback for tuner 4".
Trying to use vlc to view analog TV, composite or svideo resulted in messages similar to the following in dmesg:
Quoted 32 lines
Jul 4 07:56:24 localhost kernel: cx88[0]: video y / packed - dma channel status dump Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: initial risc: 0x10901000 Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: cdt base : 0x00180440 Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: cdt size : 0x0000000c Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: iq base : 0x00180400 Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: iq size : 0x00000010 Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: risc pc : 0x10901034 Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: iq wr ptr : 0x0000010d Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: iq rd ptr : 0x00000101 Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: cdt current : 0x00000448 Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: pci target : 0x00000000 Jul 4 07:56:24 localhost kernel: cx88[0]: cmds: line / byte : 0x00000000 Jul 4 07:56:24 localhost kernel: cx88[0]: risc0: 0x80008000 [ sync resync count=0 ] Jul 4 07:56:24 localhost kernel: cx88[0]: risc1: 0x1c0003c0 [ write sol eol count=960 ] Jul 4 07:56:24 localhost kernel: cx88[0]: risc2: 0x1088d000 [ arg #1 ] Jul 4 07:56:24 localhost kernel: cx88[0]: risc3: 0x1c0003c0 [ write sol eol count=960 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq 0: 0x80008000 [ sync resync count=0 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq 1: 0x1c0003c0 [ write sol eol count=960 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq 2: 0x1088d000 [ arg #1 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq 3: 0x1c0003c0 [ write sol eol count=960 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq 4: 0x1088d780 [ arg #1 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq 5: 0x18000100 [ write sol count=256 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq 6: 0x1088df00 [ arg #1 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq 7: 0x140002c0 [ write eol count=704 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq 8: 0x1088c000 [ arg #1 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq 9: 0x1c0003c0 [ write sol eol count=960 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq a: 0x1088c680 [ arg #1 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq b: 0x18000200 [ write sol count=512 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq c: 0x1088ce00 [ arg #1 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq d: 0x7248ca28 [ jump irq2 22 19 resync 14 count=2600 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq e: 0x72377f63 [ arg #1 ] Jul 4 07:56:24 localhost kernel: cx88[0]: iq f: 0x03b40a5b [ INVALID irq2 irq1 23 21 20 18 count=2651 ]
Quoted 8 lines
Jul 4 07:56:24 localhost kernel: cx88[0]: fifo: 0x00180c00 -> 0x183400 Jul 4 07:56:24 localhost kernel: cx88[0]: ctrl: 0x00180400 -> 0x180460 Jul 4 07:56:24 localhost kernel: cx88[0]: ptr1_reg: 0x001812a8 Jul 4 07:56:24 localhost kernel: cx88[0]: ptr2_reg: 0x00180458 Jul 4 07:56:24 localhost kernel: cx88[0]: cnt1_reg: 0x00000064 Jul 4 07:56:24 localhost kernel: cx88[0]: cnt2_reg: 0x00000000 Jul 4 07:56:24 localhost kernel: cx88[0]/0: [ebfe9e40/0] timeout - dma=0x10901000 Jul 4 07:56:24 localhost kernel: cx88[0]/0: [ebfe99c0/1] timeout - dma=0x1097b000
Adam
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 5 lines · Adam
Daniel,
I've updated to head, applied the patch and replaced the card definition. The behaviour of failing to tune is still the same. dmesg still says "cx88[0]: Error: Calling callback for tuner 4".
Yes, it seems Chris Pascoe's tree was only partially merged after all. I'll try to come up with a patch that reintroduces the rest of his code during the coming week, but it'll involve a fair amount of guesswork. since I don't have the actual hardware.
Quoted 2 lines
Trying to use vlc to view analog TV, composite or svideo resulted in messages similar to the following in dmesg:
Hmm, that's not encouraging...
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb