Hello As I can see - these chips look quite similar to mine AverTV Hybrid Volar HX. I've checked the official drivers from Aver (version 0.7) - I've even patched/upgraded the source to compile with 2.6.24 kernels - but never get pass the moment where driver is loadad - no device has been ever created on my T61. (no A828 device in the log) (even when I installed some Ubuntu6.06 which should be natively supported by their driver - module worked - but as with my patched 2.6.24 - no DVB device appeared in my system with 2.6.15) So I'd also like to make it working at least with DVB-T tuner. Is there any chance I could use similar steps and succeed ? Anyone had already tried ? Or is this Aver USB device somehow unsable with generic linux driver? Thanks for any hints Regards, Zdenek 2007/12/24, Steven Toth <stoth@xxxxxxxxxxx>: > Ronald DELOBEL wrote: > > On Sun, 23 Dec 2007 16:53:03 -0500 > > Steven Toth <stoth@xxxxxxxxxxx> wrote: > > > >> Ronald DELOBEL wrote: > >>> Hi, > >>> > >>> I have bought a tv/dvb-t card which is unsupported at this time, this > >>> is a leadtek winfast PxDVR 3200 H. > >>> Product summary (as far as i can tell): cx23885 bridge, cx23417 encoder, > >>> xc3028 tuner, zl10353 demod. > >>> > >>> I have looked around the v4l-dvb tree, and finally got some results > >>> today (ok, actually, I have just copied the parts I suspected to match > >>> the card, I don't *really* now what I am doing). > >> Welcome, you've come to the right place to learn. :) > >> > >> I would say this, the very best you can hope to achieve right now with > >> the card is to get DVB-T working. This should easily be acheivable. > >> Drivers for the analog parts are under development. > >> > >>> So I have some questions: > >>> > >>> Shouldn't the tuner (0xc2) be shown by the i2c scan? > >> No. This does not surprise me. > >> > >> The tuner will not show up in an i2c scan if it's being held > >> electrically in reset using a GPIO between the '885 and the tuner, or if > >> it's located behind an I2C gate which is closed on the 353. > >> > >> The best way to determine GPIO configuration is described below. > > > > I have followed your advice and created a small wiki page > > http://www.linuxtv.org/wiki/index.php/Leadtek_Winfast_PxDVR_3200_H > > > > with the 3 regspy's dumps (external links because I can't upload *.txt > > files or didn't found how) > > Hmm, can't you paste the content directly into the wiki page, they're > pretty small. > > > > >>> I've tried w_scan, unsucceffuly : > >>> w_scan version 20070909 > >>> Info: using DVB adapter auto detection. > >>> Found DVB-T frontend. Using adapter /dev/dvb/adapter0/frontend0 > >>> -_-_-_-_ Getting frontend capabilities-_-_-_-_ > >>> frontend Zarlink ZL10353 DVB-T supports > >>> INVERSION_AUTO > >>> QAM_AUTO > >>> TRANSMISSION_MODE_AUTO > >>> GUARD_INTERVAL_AUTO > >>> HIERARCHY_AUTO > >>> FEC_AUTO > >>> > >>> the frontend seems to be correctly recognized (no?) but a full scan show nothing. > >>> In the dmesg output there is nothing about firmware loading, doesn't xc3028 need one? > >> Yes, the 3028 expects to load firmware, but the 3028 driver is lot being > >> attached - so you're not seeing errors - yet. > >> > >>> About firmware, I have two *.rom files which I got from windows install: wf23885C.rom and wf416enc.rom, > >>> maybe xc2028 one is in this first, how to extract/use it? > >> No, neither of these files are for the 3028. The first is for the > >> bridge, but you don't need it yet. The second is for the encoder, and > >> you don't need that yet either. > >> > >> The 3028 firmware will be compiled directly into the leadtek driver. > >> However, that firmware is available on the web for download in other > >> places. I think the wiki at linuxtv.org describes this. If not, ask here. > > > > The v4l wiki doesn't provide much informations about this, the em2880 > > page redirects me to http://mcentral.de/wiki/index.php/Em2880 which I > > already know (I own a A16D card too), should I download firmwares from > > there? > > There is a firmware-tool in v4l2-apps/util/xc3028-firmware/ but I don't > > know what to provide to it. > > I'm not sure. You really need to use the xc3028 driver from linuxtv.org, > but I don't know where that firmware is - or can be downloaded from. > > Mauro, any comments here? > > > > >>> Last question: how can I know what to use portb or portc? > >> This will be answered along with my GPIO reference below. > > > > I think that's portc : VID_C_INT_MSK is 00011101 for digital whereas > > the same value is affected to VID_A_INT_MSK when in analog, am I on > > right track? > > Yes. > > > > >>> The following is dmesg output after modprobe cx23885 and tveeprom: > >>> > >>> cx23885 driver version 0.0.1 loaded > >>> ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 18 (level, low) -> IRQ 18 > >>> CORE cx23885[0]: subsystem: 107d:6681, board: Leadtek Winfast PxDVR > >>> 3200 H [card=7,autodetected] cx23885[0]: i2c bus 0 registered > >>> cx23885[0]: i2c scan: found device @ 0x1e [???] > >>> cx23885[0]: i2c scan: found device @ 0xa0 [eeprom] > >>> cx23885[0]: i2c bus 1 registered > >>> cx23885[0]: i2c bus 2 registered > >>> cx23885[0]: i2c scan: found device @ 0x66 [???] > >>> cx23885[0]: i2c scan: found device @ 0x88 [cx25837] > >>> cx23885[0]: i2c scan: found device @ 0x98 [???] > >>> tveeprom 1-0050: full 256-byte eeprom dump: > >>> tveeprom 1-0050: 00: 08 00 18 03 00 00 03 ff 20 00 13 00 00 00 00 00 > >>> tveeprom 1-0050: 10: 20 00 13 00 00 00 00 00 20 00 13 00 00 00 00 00 > >>> tveeprom 1-0050: 20: 20 00 13 00 00 00 00 00 20 00 13 00 00 00 00 00 > >>> tveeprom 1-0050: 30: 20 00 13 00 00 00 00 00 20 00 13 00 00 00 00 13 > >>> tveeprom 1-0050: 40: 20 00 13 00 00 00 00 00 20 00 13 00 00 00 00 00 > >>> tveeprom 1-0050: 50: 08 00 18 03 00 00 03 9d 0c 03 05 00 0e 01 00 00 > >>> tveeprom 1-0050: 60: 20 00 13 00 00 00 00 00 50 03 05 00 04 80 00 08 > >>> tveeprom 1-0050: 70: 2c 00 05 00 7d 10 81 66 0c 03 05 80 0e 01 00 00 > >>> tveeprom 1-0050: 80: 82 01 00 22 78 00 00 00 ff ff ff ff ff ff ff ff > >>> tveeprom 1-0050: 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > >>> tveeprom 1-0050: a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > >>> tveeprom 1-0050: b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > >>> tveeprom 1-0050: c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > >>> tveeprom 1-0050: d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > >>> tveeprom 1-0050: e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > >>> tveeprom 1-0050: f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > >>> cx23885[0]: cx23885 based dvb card > >>> xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner > >>> DVB: registering new adapter (cx23885[0]) > >>> DVB: registering frontend 0 (Zarlink ZL10353 DVB-T)... > >>> cx23885[0]/0: found at 0000:02:00.0, rev: 2, irq: 18, latency: 0, mmio: > >>> 0xfda00000 > >>> PCI: Setting latency timer of device 0000:02:00.0 to 64 > >>> > >>> And result of messing around: > >>> > >>> diff -r 3683fd95d4ad linux/drivers/media/video/cx23885/cx23885-cards.c > >>> --- a/linux/drivers/media/video/cx23885/cx23885-cards.c Sun Dec 23 08:15:42 2007 -0200 > >>> +++ b/linux/drivers/media/video/cx23885/cx23885-cards.c Sun Dec 23 20:57:57 2007 +0100 > >>> @@ -122,6 +122,22 @@ struct cx23885_board cx23885_boards[] = > >>> .name = "Hauppauge WinTV-HVR1500", > >>> .portc = CX23885_MPEG_DVB, > >>> }, > >>> + [CX23885_BOARD_LEADTEK_WINFAST3200] = { > >>> + .name = "Leadtek Winfast PxDVR 3200 H", > >>> + .portc = CX23885_MPEG_DVB, > >>> + /* > >>> + .input = {{ > >>> + .type = CX23885_VMUX_TELEVISION, > >>> + .vmux = 2, > >>> + },{ > >>> + .type = CX23885_VMUX_COMPOSITE1, > >>> + .vmux = 1, > >>> + },{ > >>> + .type = CX23885_VMUX_SVIDEO, > >>> + .vmux = 3, > >>> + }}, > >>> + */ > >>> + }, > >>> }; > >> For the time being, you don't need to define .input, they are not used > >> in the digital driver - although they will be used by analog. > > > > Ok, I leave this part aside for the moment. > > > >>> const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); > >>> > >>> @@ -161,7 +177,11 @@ struct cx23885_subid cx23885_subids[] = > >>> .subvendor = 0x0070, > >>> .subdevice = 0x7717, > >>> .card = CX23885_BOARD_HAUPPAUGE_HVR1500, > >>> - }, > >>> + },{ > >>> + .subvendor = 0x107d, > >>> + .subdevice = 0x6681, > >>> + .card = CX23885_BOARD_LEADTEK_WINFAST3200, > >>> + } > >>> }; > >>> const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); > >>> > >>> @@ -250,6 +270,9 @@ void cx23885_gpio_setup(struct cx23885_d > >>> > >>> cx_set(GP0_IO, 0x00040004); /* Bring the tuner out of reset */ > >>> break; > >>> + case CX23885_BOARD_LEADTEK_WINFAST3200: > >>> + cx_set(GP0_IO, 0x00040004); > >>> + break; > >>> } > >>> } > >> This is a guess, right? It's a bad idea to guess with GPIO's unless you > >> know what you're doing, you could be driving current into a part that > >> doesn't like it. This can break hardware. > > > > Yes this was a guess based on the content of the inf file: > > > > HKR,"DriverData","tuner_reset_gpio_bit", 0x00010001, 0x02, 0x00, 0x00, > > 0x00 > > > > and the following in cx23885-cards.c: > > > > /* GPIO-0 cx24227 demodulator */ > > /* GPIO-2 xc3028 tuner */ > > > > /* Put the parts into reset */ > > cx_set(GP0_IO, 0x00050000); > > cx_clear(GP0_IO, 0x00000005); > > > > for me this was 2^0 2^2, and since there is only an xc3028 on my card I > > have tried 2^2 alone. > > > > Hopefully this didn't break anything, but now I know it's better not to > > play with that. > > > > Now, I obtained GP0_IO value (00070404) from RegSpy, could it be as > > simple as using this 'as is'? > > Yes, cx_write(GP0_IO, 0x00070004) should be fine. > > > > > [....] > > > >>> Thanks for any help. > >>> > >> The first thing you need to do is download this project and install it > >> on a windows box with your leadtek card: > >> > >> http://deinterlace.sourceforge.net/ > >> > >> Then download this: > >> > >> http://www.steventoth.net/anonfiles/RegSpy.exe > >> > >> Start the regspy tool and then start the leadtek Tv application and > >> switch to DVB-T mode, make sure video is playing then use the regspy > >> tool to dump the register contents to file. > >> > >> Then switch to analog mode, ensure the encoder is running and use regspy > >> to dump the register values again, to another file. > >> > >> Finally, stop the TV application, and dump the register values again. > >> > >> Perhaps you could create a page on the WIKI and upload these files? > >> Among other things, these files will us what GPIO values should be used, > >> and whether it's using portb or c for DVB-T. > >> > >> Please ensure all email traffic is posted to this list. > >> > >> Regards, > >> > >> Steve > >> > > > > Thanks to read this until the end. > > > > Merry christmas to everybody. > > > > Regards, > > Steve > > > _______________________________________________ > linux-dvb mailing list > linux-dvb@xxxxxxxxxxx > http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb > _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb