V4L/DVB (5785): Revisited: 3dfx Voodoo TV 200 (US)
Fix support for 3dfx Voodoo TV 200 variant Signed-off-by: Wade Berrier <wberrier@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
096bb77aba
commit
434b25263a
3 changed files with 41 additions and 5 deletions
|
@ -178,8 +178,8 @@ static struct CARD {
|
|||
/* this seems to happen as well ... */
|
||||
{ 0xff1211bd, BTTV_BOARD_PINNACLE, "Pinnacle PCTV" },
|
||||
|
||||
{ 0x3000121a, BTTV_BOARD_VOODOOTV_FM, "3Dfx VoodooTV FM/ VoodooTV 200" },
|
||||
{ 0x263710b4, BTTV_BOARD_VOODOOTV_FM, "3Dfx VoodooTV FM/ VoodooTV 200" },
|
||||
{ 0x3000121a, BTTV_BOARD_VOODOOTV_200, "3Dfx VoodooTV 200" },
|
||||
{ 0x263710b4, BTTV_BOARD_VOODOOTV_FM, "3Dfx VoodooTV FM" },
|
||||
{ 0x3060121a, BTTV_BOARD_STB2, "3Dfx VoodooTV 100/ STB OEM" },
|
||||
|
||||
{ 0x3000144f, BTTV_BOARD_MAGICTVIEW063, "(Askey Magic/others) TView99 CPH06x" },
|
||||
|
@ -1517,7 +1517,29 @@ struct tvcard bttv_tvcards[] = {
|
|||
|
||||
/* ---- card 0x44 ---------------------------------- */
|
||||
[BTTV_BOARD_VOODOOTV_FM] = {
|
||||
.name = "3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)",
|
||||
.name = "3Dfx VoodooTV FM (Euro)",
|
||||
/* try "insmod msp3400 simple=0" if you have
|
||||
* sound problems with this card. */
|
||||
.video_inputs = 4,
|
||||
.audio_inputs = 1,
|
||||
.tuner = 0,
|
||||
.svhs = -1,
|
||||
.gpiomask = 0x4f8a00,
|
||||
/* 0x100000: 1=MSP enabled (0=disable again)
|
||||
* 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */
|
||||
.gpiomux = {0x947fff, 0x987fff,0x947fff,0x947fff },
|
||||
.gpiomute = 0x947fff,
|
||||
/* tvtuner, radio, external,internal, mute, stereo
|
||||
* tuner, Composit, SVid, Composit-on-Svid-adapter */
|
||||
.muxsel = { 2, 3 ,0 ,1 },
|
||||
.tuner_type = TUNER_MT2032,
|
||||
.tuner_addr = ADDR_UNSET,
|
||||
.radio_addr = ADDR_UNSET,
|
||||
.pll = PLL_28,
|
||||
.has_radio = 1,
|
||||
},
|
||||
[BTTV_BOARD_VOODOOTV_200] = {
|
||||
.name = "VoodooTV 200 (USA)",
|
||||
/* try "insmod msp3400 simple=0" if you have
|
||||
* sound problems with this card. */
|
||||
.video_inputs = 4,
|
||||
|
@ -3302,6 +3324,7 @@ void __devinit bttv_init_card1(struct bttv *btv)
|
|||
case BTTV_BOARD_HAUPPAUGE878:
|
||||
boot_msp34xx(btv,5);
|
||||
break;
|
||||
case BTTV_BOARD_VOODOOTV_200:
|
||||
case BTTV_BOARD_VOODOOTV_FM:
|
||||
boot_msp34xx(btv,20);
|
||||
break;
|
||||
|
@ -3865,11 +3888,15 @@ void bttv_tda9880_setnorm(struct bttv *btv, int norm)
|
|||
if(norm==VIDEO_MODE_NTSC) {
|
||||
bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomux[TVAUDIO_INPUT_TUNER]=0x957fff;
|
||||
bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomute=0x957fff;
|
||||
bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomux[TVAUDIO_INPUT_TUNER]=0x957fff;
|
||||
bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomute=0x957fff;
|
||||
dprintk("bttv_tda9880_setnorm to NTSC\n");
|
||||
}
|
||||
else {
|
||||
bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomux[TVAUDIO_INPUT_TUNER]=0x947fff;
|
||||
bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomute=0x947fff;
|
||||
bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomux[TVAUDIO_INPUT_TUNER]=0x947fff;
|
||||
bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomute=0x947fff;
|
||||
dprintk("bttv_tda9880_setnorm to PAL\n");
|
||||
}
|
||||
/* set GPIO according */
|
||||
|
|
|
@ -1218,7 +1218,14 @@ audio_mux(struct bttv *btv, int input, int mute)
|
|||
break;
|
||||
case TVAUDIO_INPUT_TUNER:
|
||||
default:
|
||||
route.input = MSP_INPUT_DEFAULT;
|
||||
/* This is the only card that uses TUNER2, and afaik,
|
||||
is the only difference between the VOODOOTV_FM
|
||||
and VOODOOTV_200 */
|
||||
if (btv->c.type == BTTV_BOARD_VOODOOTV_200)
|
||||
route.input = MSP_INPUT(MSP_IN_SCART1, MSP_IN_TUNER2, \
|
||||
MSP_DSP_IN_TUNER, MSP_DSP_IN_TUNER);
|
||||
else
|
||||
route.input = MSP_INPUT_DEFAULT;
|
||||
break;
|
||||
}
|
||||
route.output = MSP_OUTPUT_DEFAULT;
|
||||
|
@ -1253,7 +1260,7 @@ i2c_vidiocschan(struct bttv *btv)
|
|||
v4l2_std_id std = bttv_tvnorms[btv->tvnorm].v4l2_id;
|
||||
|
||||
bttv_call_i2c_clients(btv, VIDIOC_S_STD, &std);
|
||||
if (btv->c.type == BTTV_BOARD_VOODOOTV_FM)
|
||||
if (btv->c.type == BTTV_BOARD_VOODOOTV_FM || btv->c.type == BTTV_BOARD_VOODOOTV_200)
|
||||
bttv_tda9880_setnorm(btv,btv->tvnorm);
|
||||
}
|
||||
|
||||
|
@ -1323,6 +1330,7 @@ set_tvnorm(struct bttv *btv, unsigned int norm)
|
|||
|
||||
switch (btv->c.type) {
|
||||
case BTTV_BOARD_VOODOOTV_FM:
|
||||
case BTTV_BOARD_VOODOOTV_200:
|
||||
bttv_tda9880_setnorm(btv,norm);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -170,6 +170,7 @@
|
|||
#define BTTV_BOARD_MACHTV_MAGICTV 0x90
|
||||
#define BTTV_BOARD_SSAI_SECURITY 0x91
|
||||
#define BTTV_BOARD_SSAI_ULTRASOUND 0x92
|
||||
#define BTTV_BOARD_VOODOOTV_200 0x93
|
||||
|
||||
/* more card-specific defines */
|
||||
#define PT2254_L_CHANNEL 0x10
|
||||
|
|
Loading…
Reference in a new issue