From: Jonathan Hummel <jhhummel@bigpond.com>
To: Mark Carbonaro <mark@carbonaro.org>
Cc: linux-dvb@linuxtv.org, stev391@email.com
Subject: Re: [linux-dvb] [PATCH-TESTERS-REQUIRED] Leadtek Winfast PxDVR 3200 H - DVB Only support
Date: Tue, 05 Aug 2008 22:21:11 +1000 [thread overview]
Message-ID: <1217938871.7801.2.camel@mistress> (raw)
In-Reply-To: <4895080.81217937323843.JavaMail.mark@trogdor.carbonaro.org>
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
On Tue, 2008-08-05 at 21:34 +1000, Mark Carbonaro wrote:
> Fantastic, I will start testing it tonight and I will let you know how
> I get on.
>
> ----- Original Message -----
> From: stev391@email.com
> To: "Mark Carbonaro" <mark@carbonaro.org>, "Jonathan Hummel"
> <jhhummel@bigpond.com>
> Cc: linux-dvb@linuxtv.org
> Sent: Monday, 4 August, 2008 9:34:06 PM (GMT+1000) Auto-Detected
> Subject: [PATCH-TESTERS-REQUIRED] Leadtek Winfast PxDVR 3200 H - DVB
> Only support
>
> Mark, Jon,
>
> Inline (and attached) below is a patch against Steven Toths
> cx2388s-sram branch, that enables DVB support on the Leadtek Winfast
> PxDVR 3200 H.
>
> The code is not exactly elegant at the moment, I'm waiting for Steven
> to refactor his callback code before I tidy this up, but at least you
> can take the dust off the card and use part of it.
>
> Let me know what issues you run into. (For example occasional on boot
> up, the card gets a subvendor id of 0000 and subproduct of 0000, this
> I have no idea why, but a soft restart makes it work).
>
> If anyone knows where to start with the Analog support please let me
> know...
>
> Regards,
>
> Stephen.
>
> ----------Patch-----------
>
> diff -Naur
> cx23885-sram/linux/Documentation/video4linux/CARDLIST.cx23885
> cx23885-sram_dev/linux/Documentation/video4linux/CARDLIST.cx23885
> --- cx23885-sram/linux/Documentation/video4linux/CARDLIST.cx23885
> 2008-08-04 20:29:16.000000000 +1000
> +++ cx23885-sram_dev/linux/Documentation/video4linux/CARDLIST.cx23885
> 2008-08-04 20:50:15.000000000 +1000
> @@ -9,3 +9,4 @@
> 8 -> Hauppauge WinTV-HVR1700 & nbsp;
> [0070:8101]
> 9 -> Hauppauge WinTV-HVR1400
> [0070:8010]
> 10 -> DViCO FusionHDTV7 Dual Express
> [18ac:d618]
> + 11 -> Leadtek Winfast PxDVR3200 H [107d:6681]
> diff -Naur
> cx23885-sram/linux/drivers/media/video/cx23885/cx23885-cards.c
> cx23885-sram_dev/linux/drivers/media/video/cx23885/cx23885-cards.c
> --- cx23885-sram/linux/drivers/media/video/cx23885/cx23885-cards.c
> 2008-08-04 20:29:17.000000000 +1000
> +++ cx23885-sram_dev/linux/drivers/media/video/cx23885/cx23885-cards.c
> 2008-08-04 21:14:55.000000000 +1000
> @@ -149,6 +149,11 @@
> .portb = CX23885_MPEG_DVB,
> .portc = CX23885_MPEG_DVB,
> },
> + [CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H] = {
> + .name = "Leadtek Winfast PxDVR3200 H",
> +// .portb = CX23885_MPEG_ENCODER,
> + .portc = CX23885_MPEG_DVB,
> + },
> };
> const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
>
> @@ -220,6 +225,10 @@
> .subvendor = 0x18ac,
> .subdevice = 0xd618,
> .card = CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP,
> + },{
> + .subvendor = 0x107d,
> + .subdevice = 0x6681,
> + .card = CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H,
> },
> };
> const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
> @@ -466,6 +475,17 @@
> 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);
> +// mdelay(20);
> +// cx_write(GP0_IO, 0x00070404);
> + break;
> }
> }
>
> @@ -549,6 +569,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 */
> @@ -562,6 +583,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
> cx23885-sram/linux/drivers/media/video/cx23885/cx23885-dvb.c
> cx23885-sram_dev/linux/drivers/media/video/cx23885/cx23885-dvb.c
> --- cx23885-sram/linux/drivers/media/video/cx23885/cx23885-dvb.c
> 2008-08-04 20:29:17.000000000 +1000
> +++ cx23885-sram_dev/linux/drivers/media/video/cx23885/cx23885-dvb.c
> 2008-08-04 20:48:07.000000000 +1000
> @@ -36,6 +36,7 @@
> #include "tda8290.h"
> #include "tda18271.h"
> #include "lgdt330x.h"
> +#include "zl10353.h"
> #include "xc5000.h"
> #include "tda10048.h"
> #include "tuner-xc2028.h"
> @@ -155,6 +156,40 @@
> .serial_mpeg = 0x40,
> };
>
> +static int cx23885_leadtek_xc2028_callback(void *ptr, int command,
> int arg)
> +{
> + struct cx23885_tsport *port = ptr;
> + struct cx23885_dev *dev = port->dev;
> + u32 reset_mask = 0;
> +
> + switch (command) {
> + case XC2028_TUNER_RESET:
> + dprintk(1, "%s: XC2028_TUNER_RESET %d\n", __func__,
> + arg);
> + reset_mask = 0x00070404;
> +
> + cx_clear(GP0_IO, reset_mask);
> + mdelay(5);
> + cx_set(GP0_IO, reset_mask);
> + break;
> + case XC2028_RESET_CLK:
> + dprintk(1, "%s: XC2028_RESET_CLK %d\n", __func__, arg);
> + break;
> + default:
> + dprintk(1, "%s: unknown command %d, arg %d\n", __func__,
> + command, arg);
> + return -EINVAL;
> + }
> +
> + return 0;
> +}
> +
> +static struct zl10353_config dvico_fusionhdtv_xc3028 = {
> + .demod_address = 0x0f,
> + .if2 = 45600,
> + .no_tuner = 1,
> +};
> +
> static struct s5h1409_config hauppauge_hvr1500q_config = {
> .demod_address = 0x32 >> 1,
> .output_mode = S5H1409_SERIAL_OUTPUT,
> @@ -481,6 +516,32 @@
> &i2c_bus->i2c_adap,
> &dvico_xc5000_tunerconfig, i2c_bus);
> 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_leadtek_xc2028_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 cx23885-sram/linux/drivers/media/video/cx23885/cx23885.h
> cx23885-sram_dev/linux/drivers/media/video/cx23885/cx23885.h
> --- cx23885-sram/linux/drivers/media/video/cx23885/cx23885.h
> 2008-08-04 20:29:17.000000000 +1000
> +++ cx23885-sram_dev/linux/drivers/media/video/cx23885/cx23885.h
> 2008-08-04 20:48:39.000000000 +1000
> @@ -67,6 +67,7 @@
> #define CX23885_BOARD_HAUPPAUGE_HVR1700 8
> #define CX23885_BOARD_HAUPPAUGE_HVR1400 9
> #define CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP 10
> +#define CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H 11
>
> /* Currently unsupported by the driver: PAL/H, NTSC/Kr, SECAM
> B/G/H/LC */
> #define CX23885_NORMS (\
> diff -Naur cx23885-sram/linux/drivers/media/video/cx23885/Kconfig
> cx23885-sram_dev/linux/drivers/media/video/cx23885/Kconfig
> --- cx23885-sram/linux/drivers/media/video/cx23885/Kconfig
> 2008-08-04 20:29:17.000000000 +1000
> +++ cx23885-sram_dev/linux/drivers/media/video/cx23885/Kconfig
> 2008-08-04 20:49:05.000000000 +1000
> @@ -15,6 +15,7 @@
> select MEDIA_TUNER_MT2131 if !DVB_FE_CUSTOMISE
> select DVB_S5H1409 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
>
>
> --
> Be Yourself @ mail.com!
> Choose From 200+ Email Addresses
> Get a Free Account at www.mail.com!
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
next prev parent reply other threads:[~2008-08-05 12:21 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1292178.61217937203262.JavaMail.mark@trogdor.carbonaro.org>
2008-08-05 11:34 ` [linux-dvb] [PATCH-TESTERS-REQUIRED] Leadtek Winfast PxDVR 3200 H - DVB Only support Mark Carbonaro
2008-08-05 12:21 ` Jonathan Hummel [this message]
2008-08-26 6:57 stev391
2008-08-26 14:24 ` Steven Toth
-- strict thread matches above, loose matches on Subject: below --
2008-08-18 21:24 stev391
2008-08-18 0:00 stev391
2008-08-18 4:25 ` Robert Golding
2008-08-16 5:14 stev391
2008-08-16 1:35 stev391
2008-08-16 4:14 ` Robert Golding
2008-08-16 10:46 ` Jonathan Hummel
2008-08-17 4:01 ` Robert Golding
2008-08-14 23:36 stev391
2008-08-15 13:49 ` Jonathan Hummel
2008-08-13 21:49 stev391
2008-08-14 11:18 ` Jonathan Hummel
2008-08-13 8:02 stev391
2008-08-12 4:22 stev391
2008-08-12 16:33 ` Steven Toth
2008-08-11 23:59 stev391
2008-08-13 12:46 ` Jonathan Hummel
2008-08-10 5:31 stev391
2008-08-10 13:26 ` Steven Toth
2008-08-10 1:42 stev391
2008-08-11 13:36 ` Jonathan Hummel
[not found] <1946053.01217974303703.JavaMail.mark@trogdor.carbonaro.org>
2008-08-05 21:50 ` Mark Carbonaro
2008-08-05 21:33 stev391
2008-08-05 21:37 ` Steven Toth
2008-08-06 11:27 ` Mark Carbonaro
[not found] <24526361.241217944963449.JavaMail.mark@trogdor.carbonaro.org>
2008-08-05 13:47 ` Mark Carbonaro
2008-08-05 11:47 stev391
2008-08-05 14:30 ` Steven Toth
2008-08-04 21:15 stev391
2008-08-04 11:34 stev391
2008-08-04 14:35 ` Steven Toth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1217938871.7801.2.camel@mistress \
--to=jhhummel@bigpond.com \
--cc=linux-dvb@linuxtv.org \
--cc=mark@carbonaro.org \
--cc=stev391@email.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox