diff options
author | Michael Krufky <devnull@localhost> | 2005-06-17 18:46:23 +0000 |
---|---|---|
committer | Michael Krufky <devnull@localhost> | 2005-06-17 18:46:23 +0000 |
commit | ef22fccda5762b791bb7c5dae892791da609b9d4 (patch) | |
tree | 71d832b637fdca75a5a1b77fce2a159811a47c14 /linux/drivers/media/video/cx88/cx88-dvb.c | |
parent | b874cc6194caf3668a3740145aa243a632af1395 (diff) | |
download | mediapointer-dvb-s2-ef22fccda5762b791bb7c5dae892791da609b9d4.tar.gz mediapointer-dvb-s2-ef22fccda5762b791bb7c5dae892791da609b9d4.tar.bz2 |
* Makefile, cx88-cards.c, cx88-dvb.c, cx88-i2c.c, cx88-mpeg.c, dvb-pll.c, dvb-pll.h, lgdt3302.c, lgdt3302.h, lgdt3302_priv.h
- added support for LGDT3302 demod for cx88 cards:
DViCO FusionHDTV 3 Gold
Signed-off-by: Mac Michaels <wmichaels1@earthlink.net>
Signed-off-by: Michael Krufky <mkrufky@m1k.net>
* Make.config
- Allow DVB to compile if kernel is later than 2.6.10
Diffstat (limited to 'linux/drivers/media/video/cx88/cx88-dvb.c')
-rw-r--r-- | linux/drivers/media/video/cx88/cx88-dvb.c | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/linux/drivers/media/video/cx88/cx88-dvb.c b/linux/drivers/media/video/cx88/cx88-dvb.c index 1dac9f641..75f980a63 100644 --- a/linux/drivers/media/video/cx88/cx88-dvb.c +++ b/linux/drivers/media/video/cx88/cx88-dvb.c @@ -1,5 +1,5 @@ /* - * $Id: cx88-dvb.c,v 1.33 2005/06/12 04:19:19 mchehab Exp $ + * $Id: cx88-dvb.c,v 1.34 2005/06/17 18:46:23 mkrufky Exp $ * * device driver for Conexant 2388x based TV cards * MPEG Transport Stream (DVB) routines @@ -30,9 +30,10 @@ #include <linux/file.h> #include <linux/suspend.h> -/* those two frontends need merging via linuxtv cvs ... */ +/* these three frontends need merging via linuxtv cvs ... */ #define HAVE_CX22702 1 #define HAVE_OR51132 1 +#define HAVE_LGDT3302 1 #include "cx88.h" #include "dvb-pll.h" @@ -44,6 +45,9 @@ #if HAVE_OR51132 # include "or51132.h" #endif +#if HAVE_LGDT3302 +# include "lgdt3302.h" +#endif MODULE_DESCRIPTION("driver for cx2388x based DVB cards"); MODULE_AUTHOR("Chris Pascoe <c.pascoe@itee.uq.edu.au>"); @@ -199,6 +203,25 @@ static struct or51132_config pchdtv_hd3000 = { }; #endif +#if HAVE_LGDT3302 +static int lgdt3302_set_ts_param(struct dvb_frontend* fe, int is_punctured) +{ + struct cx8802_dev *dev= fe->dvb->priv; + if (is_punctured) + dev->ts_gen_cntrl |= 0x04; + else + dev->ts_gen_cntrl &= ~0x04; + return 0; +} + +static struct lgdt3302_config fusionhdtv_3_gold = { + .demod_address = 0x0e, + .pll_address = 0x61, + .pll_desc = &dvb_pll_microtune_4042, + .set_ts_params = lgdt3302_set_ts_param, +}; +#endif + static int dvb_register(struct cx8802_dev *dev) { /* init struct videobuf_dvb */ @@ -242,6 +265,22 @@ static int dvb_register(struct cx8802_dev *dev) &dev->core->i2c_adap); break; #endif +#if HAVE_LGDT3302 + case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD: + dev->ts_gen_cntrl = 0x08; + { + /* Do a hardware reset of chip before using it. */ + struct cx88_core *core = dev->core; + + cx_clear(MO_GP0_IO, 1); + mdelay(100); + cx_set(MO_GP0_IO, 9); // ANT connector too FIXME + mdelay(200); + dev->dvb.frontend = lgdt3302_attach(&fusionhdtv_3_gold, + &dev->core->i2c_adap); + } + break; +#endif default: printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n", dev->core->name); |