summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx88
diff options
context:
space:
mode:
authorMichael Krufky <devnull@localhost>2005-10-27 04:33:27 +0000
committerMichael Krufky <devnull@localhost>2005-10-27 04:33:27 +0000
commitbe5a5383388034d7757116daa71d59ae4b002ff1 (patch)
tree92c73b2f77b2c65532ba4215d52e850ea39f34e2 /linux/drivers/media/video/cx88
parent8986d215104a954362dbae6a7595da6bdbd467f3 (diff)
downloadmediapointer-dvb-s2-be5a5383388034d7757116daa71d59ae4b002ff1.tar.gz
mediapointer-dvb-s2-be5a5383388034d7757116daa71d59ae4b002ff1.tar.bz2
* ../linux/drivers/media/video/cx88/Kconfig:
* ../linux/drivers/media/video/cx88/Makefile: * ../linux/drivers/media/video/cx88/cx88-dvb.c: (nxt200x_set_ts_param), (dvb_register): * ../v4l/Makefile: - Added support for NXT200X based cards (ATI HDTV Wonder) * ../linux/drivers/media/video/cx88/cx88-cards.c: (cx88_card_setup): - Cleaned up initialization of ATI HDTV Wonder. The card is now able to work in analog or digital mode and able to switch between them without any problems. * ../linux/drivers/media/video/tuner-simple.c: (default_set_tv_freq): - Fixed value in "Philips TUV1236D ATSC/NTSC dual in" tuner data. - When tuning the "Philips TUV1236D ATSC/NTSC dual in" tuner, make sure that we are in the correct tuning mode. Signed-off-by: Kirk Lapray <kirk.lapray@gmail.com> Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Diffstat (limited to 'linux/drivers/media/video/cx88')
-rw-r--r--linux/drivers/media/video/cx88/Kconfig10
-rw-r--r--linux/drivers/media/video/cx88/Makefile3
-rw-r--r--linux/drivers/media/video/cx88/cx88-cards.c11
-rw-r--r--linux/drivers/media/video/cx88/cx88-dvb.c28
4 files changed, 43 insertions, 9 deletions
diff --git a/linux/drivers/media/video/cx88/Kconfig b/linux/drivers/media/video/cx88/Kconfig
index 3c9121521..1c9009589 100644
--- a/linux/drivers/media/video/cx88/Kconfig
+++ b/linux/drivers/media/video/cx88/Kconfig
@@ -37,6 +37,7 @@ config VIDEO_CX88_DVB_ALL_FRONTENDS
select DVB_OR51132
select DVB_CX22702
select DVB_LGDT330X
+ select DVB_NXT200X
---help---
This builds cx88-dvb with all currently supported frontend
demodulators. If you wish to tweak your configuration, and
@@ -79,3 +80,12 @@ config VIDEO_CX88_DVB_LGDT330X
---help---
This adds ATSC 8VSB and QAM64/256 support for cards based on the
Connexant 2388x chip and the LGDT3302/LGDT3303 demodulator.
+
+config VIDEO_CX88_DVB_NXT200X
+ tristate "NXT2002/NXT2004 ATSC Support"
+ default m
+ depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS
+ select DVB_NXT200X
+ ---help---
+ This adds ATSC 8VSB and QAM64/256 support for cards based on the
+ Connexant 2388x chip and the NXT2002/NXT2004 demodulator.
diff --git a/linux/drivers/media/video/cx88/Makefile b/linux/drivers/media/video/cx88/Makefile
index be1dc66e0..0df40b773 100644
--- a/linux/drivers/media/video/cx88/Makefile
+++ b/linux/drivers/media/video/cx88/Makefile
@@ -24,3 +24,6 @@ endif
ifneq ($(CONFIG_DVB_MT352),n)
EXTRA_CFLAGS += -DHAVE_MT352=1
endif
+ifneq ($(CONFIG_DVB_NXT200X),n)
+ EXTRA_CFLAGS += -DHAVE_NXT200X=1
+endif
diff --git a/linux/drivers/media/video/cx88/cx88-cards.c b/linux/drivers/media/video/cx88/cx88-cards.c
index b490bff61..959390c1a 100644
--- a/linux/drivers/media/video/cx88/cx88-cards.c
+++ b/linux/drivers/media/video/cx88/cx88-cards.c
@@ -1,5 +1,5 @@
/*
- * $Id: cx88-cards.c,v 1.101 2005/10/16 12:13:58 mchehab Exp $
+ * $Id: cx88-cards.c,v 1.102 2005/10/27 04:33:27 mkrufky Exp $
*
* device driver for Conexant 2388x based TV cards
* card-specific stuff.
@@ -853,9 +853,7 @@ struct cx88_board cx88_boards[] = {
.gpio2 = 0x00000001,
.gpio3 = 0x00000000,
}},
-#if 0
.dvb = 1,
-#endif
},
[CX88_BOARD_WINFAST_DTV1000] = {
.name = "WinFast DTV1000-T",
@@ -1217,13 +1215,10 @@ void cx88_card_setup(struct cx88_core *core)
if (0 == core->i2c_rc) {
/* enable tuner */
int i;
- u8 buffer[12];
+ u8 buffer [] = { 0x10,0x12,0x13,0x04,0x16,0x00,0x14,0x04,0x017,0x00 };
core->i2c_client.addr = 0x0a;
- buffer[0] = 0x10; buffer[1] = 0x12; buffer[2] = 0x13; buffer[3] = 0x04;
- buffer[4] = 0x16; buffer[5] = 0x00; buffer[6] = 0x14; buffer[7] = 0x04;
- buffer[8] = 0x14; buffer[9] = 0x00; buffer[10] = 0x17; buffer[11] = 0x00;
- for (i = 0; i < 6; i++)
+ for (i = 0; i < 5; i++)
if (2 != i2c_master_send(&core->i2c_client,&buffer[i*2],2))
printk(KERN_WARNING "%s: Unable to enable tuner(%i).\n",
core->name, i);
diff --git a/linux/drivers/media/video/cx88/cx88-dvb.c b/linux/drivers/media/video/cx88/cx88-dvb.c
index 8577884ee..c0f0c3800 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.70 2005/10/16 12:34:29 mchehab Exp $
+ * $Id: cx88-dvb.c,v 1.71 2005/10/27 04:33:27 mkrufky Exp $
*
* device driver for Conexant 2388x based TV cards
* MPEG Transport Stream (DVB) routines
@@ -47,6 +47,9 @@
#ifdef HAVE_LGDT330X
# include "lgdt330x.h"
#endif
+#ifdef HAVE_NXT200X
+# include "nxt200x.h"
+#endif
MODULE_DESCRIPTION("driver for cx2388x based DVB cards");
MODULE_AUTHOR("Chris Pascoe <c.pascoe@itee.uq.edu.au>");
@@ -290,6 +293,23 @@ static struct lgdt330x_config fusionhdtv_5_gold = {
};
#endif
+#ifdef HAVE_NXT200X
+static int nxt200x_set_ts_param(struct dvb_frontend* fe,
+ int is_punctured)
+{
+ struct cx8802_dev *dev= fe->dvb->priv;
+ dev->ts_gen_cntrl = is_punctured ? 0x04 : 0x00;
+ return 0;
+}
+
+static struct nxt200x_config ati_hdtvwonder = {
+ .demod_address = 0x0a,
+ .pll_address = 0x61,
+ .pll_desc = &dvb_pll_tuv1236d,
+ .set_ts_params = nxt200x_set_ts_param,
+};
+#endif
+
static int dvb_register(struct cx8802_dev *dev)
{
/* init struct videobuf_dvb */
@@ -391,6 +411,12 @@ static int dvb_register(struct cx8802_dev *dev)
}
break;
#endif
+#ifdef HAVE_NXT200X
+ case CX88_BOARD_ATI_HDTVWONDER:
+ dev->dvb.frontend = nxt200x_attach(&ati_hdtvwonder,
+ &dev->core->i2c_adap);
+ break;
+#endif
default:
printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n",
dev->core->name);