Commit 0d723c09 authored by Michael Krufky's avatar Michael Krufky Committed by Linus Torvalds

[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: default avatarMichael Krufky <mkrufky@m1k.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: default avatarJohannes Stezenbach <js@linuxtv.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent e057ee11
...@@ -106,6 +106,19 @@ struct dvb_pll_desc dvb_pll_microtune_4042 = { ...@@ -106,6 +106,19 @@ struct dvb_pll_desc dvb_pll_microtune_4042 = {
}; };
EXPORT_SYMBOL(dvb_pll_microtune_4042); EXPORT_SYMBOL(dvb_pll_microtune_4042);
struct dvb_pll_desc dvb_pll_thomson_dtt7611 = {
.name = "Thomson dtt7611",
.min = 44000000,
.max = 958000000,
.count = 3,
.entries = {
{ 157250000, 44000000, 62500, 0x8e, 0x39 },
{ 454000000, 44000000, 62500, 0x8e, 0x3a },
{ 999999999, 44000000, 62500, 0x8e, 0x3c },
},
};
EXPORT_SYMBOL(dvb_pll_thomson_dtt7611);
struct dvb_pll_desc dvb_pll_unknown_1 = { struct dvb_pll_desc dvb_pll_unknown_1 = {
.name = "unknown 1", /* used by dntv live dvb-t */ .name = "unknown 1", /* used by dntv live dvb-t */
.min = 174000000, .min = 174000000,
......
...@@ -25,6 +25,7 @@ extern struct dvb_pll_desc dvb_pll_thomson_dtt759x; ...@@ -25,6 +25,7 @@ extern struct dvb_pll_desc dvb_pll_thomson_dtt759x;
extern struct dvb_pll_desc dvb_pll_thomson_dtt7610; extern struct dvb_pll_desc dvb_pll_thomson_dtt7610;
extern struct dvb_pll_desc dvb_pll_lg_z201; extern struct dvb_pll_desc dvb_pll_lg_z201;
extern struct dvb_pll_desc dvb_pll_microtune_4042; extern struct dvb_pll_desc dvb_pll_microtune_4042;
extern struct dvb_pll_desc dvb_pll_thomson_dtt7611;
extern struct dvb_pll_desc dvb_pll_unknown_1; extern struct dvb_pll_desc dvb_pll_unknown_1;
extern struct dvb_pll_desc dvb_pll_tua6010xs; extern struct dvb_pll_desc dvb_pll_tua6010xs;
......
...@@ -344,6 +344,7 @@ config VIDEO_CX88_DVB ...@@ -344,6 +344,7 @@ config VIDEO_CX88_DVB
select DVB_MT352 select DVB_MT352
select DVB_OR51132 select DVB_OR51132
select DVB_CX22702 select DVB_CX22702
select DVB_LGDT3302
---help--- ---help---
This adds support for DVB/ATSC cards based on the This adds support for DVB/ATSC cards based on the
Connexant 2388x chip. Connexant 2388x chip.
......
/* /*
* $Id: cx88-cards.c,v 1.84 2005/07/02 19:42:09 mkrufky Exp $ * $Id: cx88-cards.c,v 1.85 2005/07/04 19:35:05 mkrufky Exp $
* *
* device driver for Conexant 2388x based TV cards * device driver for Conexant 2388x based TV cards
* card-specific stuff. * card-specific stuff.
...@@ -723,6 +723,7 @@ struct cx88_board cx88_boards[] = { ...@@ -723,6 +723,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 2, .vmux = 2,
.gpio0 = 0x0f00, .gpio0 = 0x0f00,
}}, }},
.dvb = 1,
}, },
[CX88_BOARD_ADSTECH_DVB_T_PCI] = { [CX88_BOARD_ADSTECH_DVB_T_PCI] = {
.name = "ADS Tech Instant TV DVB-T PCI", .name = "ADS Tech Instant TV DVB-T PCI",
......
...@@ -220,6 +220,13 @@ static struct lgdt3302_config fusionhdtv_3_gold_q = { ...@@ -220,6 +220,13 @@ static struct lgdt3302_config fusionhdtv_3_gold_q = {
.pll_desc = &dvb_pll_microtune_4042, .pll_desc = &dvb_pll_microtune_4042,
.set_ts_params = lgdt3302_set_ts_param, .set_ts_params = lgdt3302_set_ts_param,
}; };
static struct lgdt3302_config fusionhdtv_3_gold_t = {
.demod_address = 0x0e,
.pll_address = 0x61,
.pll_desc = &dvb_pll_thomson_dtt7611,
.set_ts_params = lgdt3302_set_ts_param,
};
#endif #endif
static int dvb_register(struct cx8802_dev *dev) static int dvb_register(struct cx8802_dev *dev)
...@@ -282,6 +289,20 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -282,6 +289,20 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
} }
break; break;
case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T:
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_t,
&dev->core->i2c_adap);
}
break;
#endif #endif
default: default:
printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n", printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n",
......
/* /*
* $Id: cx88-mpeg.c,v 1.28 2005/06/20 03:36:00 mkrufky Exp $ * $Id: cx88-mpeg.c,v 1.30 2005/07/05 19:44:40 mkrufky Exp $
* *
* Support for the mpeg transport stream transfers * Support for the mpeg transport stream transfers
* PCI function #2 of the cx2388x. * PCI function #2 of the cx2388x.
...@@ -73,11 +73,11 @@ static int cx8802_start_dma(struct cx8802_dev *dev, ...@@ -73,11 +73,11 @@ static int cx8802_start_dma(struct cx8802_dev *dev,
cx_write(TS_GEN_CNTRL, 0x0040 | dev->ts_gen_cntrl); cx_write(TS_GEN_CNTRL, 0x0040 | dev->ts_gen_cntrl);
udelay(100); udelay(100);
cx_write(MO_PINMUX_IO, 0x00); cx_write(MO_PINMUX_IO, 0x00);
if (core->board == CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q) { cx_write(TS_HW_SOP_CNTRL,0x47<<16|188<<4|0x01);
cx_write(TS_HW_SOP_CNTRL,0x47<<16 | 188<<4 | 0x00); if ((core->board == CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q) ||
(core->board == CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T)) {
cx_write(TS_SOP_STAT, 0<<16 | 0<<14 | 1<<13 | 0<<12); cx_write(TS_SOP_STAT, 0<<16 | 0<<14 | 1<<13 | 0<<12);
} else { } else {
cx_write(TS_HW_SOP_CNTRL,47<<16|188<<4|0x00);
cx_write(TS_SOP_STAT,0x00); cx_write(TS_SOP_STAT,0x00);
} }
cx_write(TS_GEN_CNTRL, dev->ts_gen_cntrl); cx_write(TS_GEN_CNTRL, dev->ts_gen_cntrl);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment