aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@m1k.net>2005-07-07 20:58:42 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-07 21:24:04 -0400
commit0d723c09f03e0b2cb4405c361c927efac373fe0c (patch)
treedd20f1a03ed24cca02de553137cc3a4ca69f194f
parente057ee11efb84e559c55e98d33acb341fe68fda1 (diff)
[PATCH] v4l: add DVB support for DViCO FusionHDTV3 Gold-T
- Correct sync byte for MPEG-2 transport stream packets. - Add lgdt3302 as dependency of cx88-dvb in Kconfig. - Add dvb support in v4l for DViCO FusionHDTV3 Gold-T using lgdt3302 frontend. This adds support for a different board from the previous (Gold-Q) patch. Signed-off-by: Michael Krufky <mkrufky@m1k.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br> Signed-off-by: Johannes Stezenbach <js@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/media/dvb/frontends/dvb-pll.c13
-rw-r--r--drivers/media/dvb/frontends/dvb-pll.h1
-rw-r--r--drivers/media/video/Kconfig1
-rw-r--r--drivers/media/video/cx88/cx88-cards.c3
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c21
-rw-r--r--drivers/media/video/cx88/cx88-mpeg.c8
6 files changed, 42 insertions, 5 deletions
diff --git a/drivers/media/dvb/frontends/dvb-pll.c b/drivers/media/dvb/frontends/dvb-pll.c
index 71e06ec7925a..5afeaa9b43b4 100644
--- a/drivers/media/dvb/frontends/dvb-pll.c
+++ b/drivers/media/dvb/frontends/dvb-pll.c
@@ -106,6 +106,19 @@ struct dvb_pll_desc dvb_pll_microtune_4042 = {
106}; 106};
107EXPORT_SYMBOL(dvb_pll_microtune_4042); 107EXPORT_SYMBOL(dvb_pll_microtune_4042);
108 108
109struct dvb_pll_desc dvb_pll_thomson_dtt7611 = {
110 .name = "Thomson dtt7611",
111 .min = 44000000,
112 .max = 958000000,
113 .count = 3,
114 .entries = {
115 { 157250000, 44000000, 62500, 0x8e, 0x39 },
116 { 454000000, 44000000, 62500, 0x8e, 0x3a },
117 { 999999999, 44000000, 62500, 0x8e, 0x3c },
118 },
119};
120EXPORT_SYMBOL(dvb_pll_thomson_dtt7611);
121
109struct dvb_pll_desc dvb_pll_unknown_1 = { 122struct dvb_pll_desc dvb_pll_unknown_1 = {
110 .name = "unknown 1", /* used by dntv live dvb-t */ 123 .name = "unknown 1", /* used by dntv live dvb-t */
111 .min = 174000000, 124 .min = 174000000,
diff --git a/drivers/media/dvb/frontends/dvb-pll.h b/drivers/media/dvb/frontends/dvb-pll.h
index 98312bfe59d0..cb794759d89e 100644
--- a/drivers/media/dvb/frontends/dvb-pll.h
+++ b/drivers/media/dvb/frontends/dvb-pll.h
@@ -25,6 +25,7 @@ extern struct dvb_pll_desc dvb_pll_thomson_dtt759x;
25extern struct dvb_pll_desc dvb_pll_thomson_dtt7610; 25extern struct dvb_pll_desc dvb_pll_thomson_dtt7610;
26extern struct dvb_pll_desc dvb_pll_lg_z201; 26extern struct dvb_pll_desc dvb_pll_lg_z201;
27extern struct dvb_pll_desc dvb_pll_microtune_4042; 27extern struct dvb_pll_desc dvb_pll_microtune_4042;
28extern struct dvb_pll_desc dvb_pll_thomson_dtt7611;
28extern struct dvb_pll_desc dvb_pll_unknown_1; 29extern struct dvb_pll_desc dvb_pll_unknown_1;
29 30
30extern struct dvb_pll_desc dvb_pll_tua6010xs; 31extern struct dvb_pll_desc dvb_pll_tua6010xs;
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index 1b70f8b0feb9..e771064689e6 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -344,6 +344,7 @@ config VIDEO_CX88_DVB
344 select DVB_MT352 344 select DVB_MT352
345 select DVB_OR51132 345 select DVB_OR51132
346 select DVB_CX22702 346 select DVB_CX22702
347 select DVB_LGDT3302
347 ---help--- 348 ---help---
348 This adds support for DVB/ATSC cards based on the 349 This adds support for DVB/ATSC cards based on the
349 Connexant 2388x chip. 350 Connexant 2388x chip.
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index eeca2f3f2a08..b0b47c3cde3c 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * $Id: cx88-cards.c,v 1.84 2005/07/02 19:42:09 mkrufky Exp $ 2 * $Id: cx88-cards.c,v 1.85 2005/07/04 19:35:05 mkrufky Exp $
3 * 3 *
4 * device driver for Conexant 2388x based TV cards 4 * device driver for Conexant 2388x based TV cards
5 * card-specific stuff. 5 * card-specific stuff.
@@ -723,6 +723,7 @@ struct cx88_board cx88_boards[] = {
723 .vmux = 2, 723 .vmux = 2,
724 .gpio0 = 0x0f00, 724 .gpio0 = 0x0f00,
725 }}, 725 }},
726 .dvb = 1,
726 }, 727 },
727 [CX88_BOARD_ADSTECH_DVB_T_PCI] = { 728 [CX88_BOARD_ADSTECH_DVB_T_PCI] = {
728 .name = "ADS Tech Instant TV DVB-T PCI", 729 .name = "ADS Tech Instant TV DVB-T PCI",
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index 806afc610d87..690477a67917 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -220,6 +220,13 @@ static struct lgdt3302_config fusionhdtv_3_gold_q = {
220 .pll_desc = &dvb_pll_microtune_4042, 220 .pll_desc = &dvb_pll_microtune_4042,
221 .set_ts_params = lgdt3302_set_ts_param, 221 .set_ts_params = lgdt3302_set_ts_param,
222}; 222};
223
224static struct lgdt3302_config fusionhdtv_3_gold_t = {
225 .demod_address = 0x0e,
226 .pll_address = 0x61,
227 .pll_desc = &dvb_pll_thomson_dtt7611,
228 .set_ts_params = lgdt3302_set_ts_param,
229};
223#endif 230#endif
224 231
225static int dvb_register(struct cx8802_dev *dev) 232static int dvb_register(struct cx8802_dev *dev)
@@ -282,6 +289,20 @@ static int dvb_register(struct cx8802_dev *dev)
282 &dev->core->i2c_adap); 289 &dev->core->i2c_adap);
283 } 290 }
284 break; 291 break;
292 case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T:
293 dev->ts_gen_cntrl = 0x08;
294 {
295 /* Do a hardware reset of chip before using it. */
296 struct cx88_core *core = dev->core;
297
298 cx_clear(MO_GP0_IO, 1);
299 mdelay(100);
300 cx_set(MO_GP0_IO, 9); /* ANT connector too FIXME */
301 mdelay(200);
302 dev->dvb.frontend = lgdt3302_attach(&fusionhdtv_3_gold_t,
303 &dev->core->i2c_adap);
304 }
305 break;
285#endif 306#endif
286 default: 307 default:
287 printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n", 308 printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n",
diff --git a/drivers/media/video/cx88/cx88-mpeg.c b/drivers/media/video/cx88/cx88-mpeg.c
index c5f4c595239d..85da6dc8d0e0 100644
--- a/drivers/media/video/cx88/cx88-mpeg.c
+++ b/drivers/media/video/cx88/cx88-mpeg.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * $Id: cx88-mpeg.c,v 1.28 2005/06/20 03:36:00 mkrufky Exp $ 2 * $Id: cx88-mpeg.c,v 1.30 2005/07/05 19:44:40 mkrufky Exp $
3 * 3 *
4 * Support for the mpeg transport stream transfers 4 * Support for the mpeg transport stream transfers
5 * PCI function #2 of the cx2388x. 5 * PCI function #2 of the cx2388x.
@@ -73,11 +73,11 @@ static int cx8802_start_dma(struct cx8802_dev *dev,
73 cx_write(TS_GEN_CNTRL, 0x0040 | dev->ts_gen_cntrl); 73 cx_write(TS_GEN_CNTRL, 0x0040 | dev->ts_gen_cntrl);
74 udelay(100); 74 udelay(100);
75 cx_write(MO_PINMUX_IO, 0x00); 75 cx_write(MO_PINMUX_IO, 0x00);
76 if (core->board == CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q) { 76 cx_write(TS_HW_SOP_CNTRL,0x47<<16|188<<4|0x01);
77 cx_write(TS_HW_SOP_CNTRL,0x47<<16 | 188<<4 | 0x00); 77 if ((core->board == CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q) ||
78 (core->board == CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T)) {
78 cx_write(TS_SOP_STAT, 0<<16 | 0<<14 | 1<<13 | 0<<12); 79 cx_write(TS_SOP_STAT, 0<<16 | 0<<14 | 1<<13 | 0<<12);
79 } else { 80 } else {
80 cx_write(TS_HW_SOP_CNTRL,47<<16|188<<4|0x00);
81 cx_write(TS_SOP_STAT,0x00); 81 cx_write(TS_SOP_STAT,0x00);
82 } 82 }
83 cx_write(TS_GEN_CNTRL, dev->ts_gen_cntrl); 83 cx_write(TS_GEN_CNTRL, dev->ts_gen_cntrl);