diff options
author | Michael Krufky <mkrufky@m1k.net> | 2005-07-07 20:58:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-07 21:24:04 -0400 |
commit | 0d723c09f03e0b2cb4405c361c927efac373fe0c (patch) | |
tree | dd20f1a03ed24cca02de553137cc3a4ca69f194f | |
parent | e057ee11efb84e559c55e98d33acb341fe68fda1 (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.c | 13 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/dvb-pll.h | 1 | ||||
-rw-r--r-- | drivers/media/video/Kconfig | 1 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 3 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-dvb.c | 21 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-mpeg.c | 8 |
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 | }; |
107 | EXPORT_SYMBOL(dvb_pll_microtune_4042); | 107 | EXPORT_SYMBOL(dvb_pll_microtune_4042); |
108 | 108 | ||
109 | struct 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 | }; | ||
120 | EXPORT_SYMBOL(dvb_pll_thomson_dtt7611); | ||
121 | |||
109 | struct dvb_pll_desc dvb_pll_unknown_1 = { | 122 | struct 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; | |||
25 | extern struct dvb_pll_desc dvb_pll_thomson_dtt7610; | 25 | extern struct dvb_pll_desc dvb_pll_thomson_dtt7610; |
26 | extern struct dvb_pll_desc dvb_pll_lg_z201; | 26 | extern struct dvb_pll_desc dvb_pll_lg_z201; |
27 | extern struct dvb_pll_desc dvb_pll_microtune_4042; | 27 | extern struct dvb_pll_desc dvb_pll_microtune_4042; |
28 | extern struct dvb_pll_desc dvb_pll_thomson_dtt7611; | ||
28 | extern struct dvb_pll_desc dvb_pll_unknown_1; | 29 | extern struct dvb_pll_desc dvb_pll_unknown_1; |
29 | 30 | ||
30 | extern struct dvb_pll_desc dvb_pll_tua6010xs; | 31 | extern 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 | |||
224 | static 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 | ||
225 | static int dvb_register(struct cx8802_dev *dev) | 232 | static 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); |