Re: [PATCH-TESTERS-REQUIRED] Leadtek Winfast PxDVR 3200 H - DVB Only support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Stephen,

So far so good, once I loaded the firmware for the tuner it all started working.  dvbscan was able to pick up the pids on the various channels and mythtv was also able to tune the channels although I had to enter the transports manually as I would end up with some transport frequencies being 0 (ABC, SBS & channel 9 seem to not scan automatically), but then I have that problem with my Dvico hd plus also.

The signal strenth is a little low which is causing frequent breakups, but that could just be the antenna outlet I am using (at the end of a long cable run) or the hardware itself, but it is sufficent for testing.

I have been messing around for a few hours now, tuning, watching tv for a bit changes channels all over the place and so far I haven't seen any issues.  I have not been able to replicate the card not being autodetected issue that you mention, just works for me everytime.

If I find any issues I will certainly post them, please let me know if you need me to do anything specific and thanks for your effort in getting this working.

Mark

----- Original Message -----
From: stev391@xxxxxxxxx
To: "Mark Carbonaro" <mark@xxxxxxxxxxxxx>, "Jonathan Hummel" <jhhummel@xxxxxxxxxxx>
Cc: stev391@xxxxxxxxx, linux-dvb@xxxxxxxxxxx
Sent: Wednesday, 6 August, 2008 7:33:49 AM (GMT+1000) Auto-Detected
Subject: Re: [PATCH-TESTERS-REQUIRED] Leadtek Winfast PxDVR 3200 H - DVB Only support

Mark, Jon,

The patches I made were not against the v4l-dvb tip that is referenced in Mark's email below.  I did this on purpose because there is a small amount of refactoring (recoding to make it better) being performed by Steven Toth and others.

To get the version I used for the patch download (This is for the first initial patch [you can tell it is this one as the patch file mentions cx23885-sram in the path]):
http://linuxtv.org/hg/~stoth/cx23885-sram/archive/tip.tar.gz

For the second patch that emailed less then 12 hours ago download this version of drivers:
http://linuxtv.org/hg/~stoth/v4l-dvb/archive/tip.tar.gz
and then apply my patch (this patch mentions v4l-dvb). This version is a cleanup of the previous and uses the generic callback function.

Other then that you are heading in the correct direction...

Do either of you have the same issue I have that when the computer is first turned on the autodetect card feature doesn't work due to subvendor sub product ids of 0000? Or is just a faulty card that I have?

Regards,

Stephen.
----- Original Message -----
From: "Mark Carbonaro"
To: "Jonathan Hummel"
Subject: Re: [PATCH-TESTERS-REQUIRED] Leadtek Winfast PxDVR 3200 H - DVB Only support
Date: Tue, 5 Aug 2008 23:47:46 +1000 (EST)


Hi Mark,

Forgive my ignorance/ newbie-ness, but what do I do with that patch code
below? is there a tutorial or howto or something somewhere that will
introduce me to this. I have done some programming, but nothing of this
level.

cheers

Jon

----- Original Message -----
From: "Jonathan Hummel"
To: "Mark Carbonaro"
Cc: stev391@xxxxxxxxx, linux-dvb@xxxxxxxxxxx
Sent: Tuesday, 5 August, 2008 10:21:11 PM (GMT+1000) Auto-Detected
Subject: Re: [PATCH-TESTERS-REQUIRED] Leadtek Winfast PxDVR 3200 H
- DVB Only support

Hi Jon,

Not a problem at all, I'm new to this myself, below is what went
through and I may not be doing it the right way either. So if
anyone would like to point out what I am doing wrong I would really
appreciate it.

The file that I downloaded was called v4l-dvb-2bade2ed7ac8.tar.bz2
which I downloaded from
http://linuxtv.org/hg/~stoth/v4l-dvb/archive/tip.tar.bz2, I also
saved the patch to the same location as the download.

The patch didn't apply for me, so I manually patched applied the
patches and created a new diff that should hopefully work for you
also (attached and inline below). From what I could see the
offsets in Stephens patch were a little off for this code snapshot
but otherwise it is all good.

I ran the following using the attached diff...

tar -xjf v4l-dvb-2bade2ed7ac8.tar.bz2
cd v4l-dvb-2bade2ed7ac8
patch -p1 < ../Leadtek.Winfast.PxDVR.3200.H.2.diff

Once the patch was applied I was then able to build and install the
modules as per the instructions in the INSTALL file. I ran the
following...

make all
sudo make install

From there I could load the modules and start testing.

I hope this helps you get started.

Regards,
Mark






diff -Naur
v4l-dvb-2bade2ed7ac8/linux/Documentation/video4linux/CARDLIST.cx23885
v4l-dvb2/linux/Documentation/video4linux/CARDLIST.cx23885
---
v4l-dvb-2bade2ed7ac8/linux/Documentation/video4linux/CARDLIST.cx23885 2008-08-05 11:18:19.000000000
+1000
+++
v4l-dvb2/linux/Documentation/video4linux/CARDLIST.cx23885 2008-08-05
23:27:32.000000000 +1000
@@ -10,3 +10,4 @@
9 -> Hauppauge WinTV-HVR1400 [0070:8010]
10 -> DViCO FusionHDTV7 Dual Express [18ac:d618]
11 -> DViCO FusionHDTV DVB-T Dual Express [18ac:db78]
+ 12 -> Leadtek Winfast PxDVR3200 H [107d:6681]
diff -Naur
v4l-dvb-2bade2ed7ac8/linux/drivers/media/video/cx23885/Kconfig
v4l-dvb2/linux/drivers/media/video/cx23885/Kconfig
---
v4l-dvb-2bade2ed7ac8/linux/drivers/media/video/cx23885/Kconfig 2008-08-05
11:18:19.000000000 +1000
+++ v4l-dvb2/linux/drivers/media/video/cx23885/Kconfig 2008-08-05
23:37:51.000000000 +1000
@@ -15,6 +15,7 @@
select DVB_S5H1409 if !DVB_FE_CUSTOMISE
select DVB_S5H1411 if !DVB_FE_CUSTOMISE
select DVB_LGDT330X if !DVB_FE_CUSTOMISE
+ select DVB_ZL10353 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMIZE
select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
diff -Naur
v4l-dvb-2bade2ed7ac8/linux/drivers/media/video/cx23885/cx23885-cards.c
v4l-dvb2/linux/drivers/media/video/cx23885/cx23885-cards.c
---
v4l-dvb-2bade2ed7ac8/linux/drivers/media/video/cx23885/cx23885-cards.c 2008-08-05 11:18:19.000000000
+1000
+++
v4l-dvb2/linux/drivers/media/video/cx23885/cx23885-cards.c 2008-08-05
23:41:40.000000000 +1000
@@ -155,6 +155,10 @@
.portb = CX23885_MPEG_DVB,
.portc = CX23885_MPEG_DVB,
},
+ [CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H] = {
+ .name = "Leadtek Winfast PxDVR3200 H",
+ .portc = CX23885_MPEG_DVB,
+ },
};
const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);

@@ -230,6 +234,10 @@
.subvendor = 0x18ac,
.subdevice = 0xdb78,
.card = CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP,
+ },{
+ .subvendor = 0x107d,
+ .subdevice = 0x6681,
+ .card = CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H,
},
};
const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
@@ -353,6 +361,10 @@
if (command == 0)
bitmask = 0x04;
break;
+ case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H:
+ /* Tuner Reset Command */
+ bitmask = 0x00070404;
+ break;
case CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP:
case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP:
if (command == 0) {
@@ -492,6 +504,15 @@
mdelay(20);
cx_set(GP0_IO, 0x000f000f);
break;
+ case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H:
+ /* GPIO-2 xc3028 tuner reset */
+ /* Put the parts into reset and back */
+ cx_set(GP0_IO, 0x00040000);
+ mdelay(20);
+ cx_clear(GP0_IO, 0x00000004);
+ mdelay(20);
+ cx_set(GP0_IO, 0x00040004);
+ break;
}
}

@@ -579,6 +600,7 @@
case CX23885_BOARD_HAUPPAUGE_HVR1200:
case CX23885_BOARD_HAUPPAUGE_HVR1700:
case CX23885_BOARD_HAUPPAUGE_HVR1400:
+ case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H:
default:
ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */
ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
@@ -592,6 +614,7 @@
case CX23885_BOARD_HAUPPAUGE_HVR1800:
case CX23885_BOARD_HAUPPAUGE_HVR1800lp:
case CX23885_BOARD_HAUPPAUGE_HVR1700:
+ case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H:
request_module("cx25840");
break;
}
diff -Naur
v4l-dvb-2bade2ed7ac8/linux/drivers/media/video/cx23885/cx23885-dvb.c
v4l-dvb2/linux/drivers/media/video/cx23885/cx23885-dvb.c
---
v4l-dvb-2bade2ed7ac8/linux/drivers/media/video/cx23885/cx23885-dvb.c 2008-08-05 11:18:19.000000000
+1000
+++
v4l-dvb2/linux/drivers/media/video/cx23885/cx23885-dvb.c 2008-08-05
23:37:03.000000000 +1000
@@ -37,6 +37,7 @@
#include "tda8290.h"
#include "tda18271.h"
#include "lgdt330x.h"
+#include "zl10353.h"
#include "xc5000.h"
#include "tda10048.h"
#include "tuner-xc2028.h"
@@ -502,6 +503,32 @@
}
break;
}
+ case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H:
+ i2c_bus = &dev->i2c_bus[0];
+
+ port->dvb.frontend = dvb_attach(zl10353_attach,
+ &dvico_fusionhdtv_xc3028,
+ &i2c_bus->i2c_adap);
+ if (port->dvb.frontend != NULL) {
+ struct dvb_frontend *fe;
+ struct xc2028_config cfg = {
+ .i2c_adap = &dev->i2c_bus[1].i2c_adap,
+ .i2c_addr = 0x61,
+ .video_dev = port,
+ .callback = cx23885_tuner_callback,
+ };
+ static struct xc2028_ctrl ctl = {
+ .fname = "xc3028-v27.fw",
+ .max_len = 64,
+ .demod = XC3028_FE_ZARLINK456,
+ };
+
+ fe = dvb_attach(xc2028_attach, port->dvb.frontend,
+ &cfg);
+ if (fe != NULL && fe->ops.tuner_ops.set_config != NULL)
+ fe->ops.tuner_ops.set_config(fe, &ctl);
+ }
+ break;
default:
printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n",
dev->name);
diff -Naur
v4l-dvb-2bade2ed7ac8/linux/drivers/media/video/cx23885/cx23885.h
v4l-dvb2/linux/drivers/media/video/cx23885/cx23885.h
---
v4l-dvb-2bade2ed7ac8/linux/drivers/media/video/cx23885/cx23885.h 2008-08-05
11:18:19.000000000 +1000
+++ v4l-dvb2/linux/drivers/media/video/cx23885/cx23885.h 2008-08-05
23:37:33.000000000 +1000
@@ -66,6 +66,7 @@
#define CX23885_BOARD_HAUPPAUGE_HVR1400 9
#define CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP 10
#define CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP 11
+#define CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H 12

/* Currently unsupported by the driver: PAL/H, NTSC/Kr, SECAM B/G/H/LC */
#define CX23885_NORMS (\
<< Leadtek.Winfast.PxDVR.3200.H.2.diff >>

--
Be Yourself @ mail.com!
Choose From 200+ Email Addresses
Get a Free Account at www.mail.com!
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux