diff options
author | Wade Berrier <wberrier@gmail.com> | 2007-06-25 12:02:16 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-07-18 13:24:19 -0400 |
commit | 434b25263a236c9dd980617d69863ba0eff8c744 (patch) | |
tree | fcc7e33aeceb3faa6d9a88c9d3d262bf5f93ad07 /drivers | |
parent | 096bb77abac4e44c37870f4f8adaec813295eb23 (diff) |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/bt8xx/bttv-cards.c | 33 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv-driver.c | 12 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv.h | 1 |
3 files changed, 41 insertions, 5 deletions
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c index 6b31e50fb951..a5e02005cdae 100644 --- a/drivers/media/video/bt8xx/bttv-cards.c +++ b/drivers/media/video/bt8xx/bttv-cards.c | |||
@@ -178,8 +178,8 @@ static struct CARD { | |||
178 | /* this seems to happen as well ... */ | 178 | /* this seems to happen as well ... */ |
179 | { 0xff1211bd, BTTV_BOARD_PINNACLE, "Pinnacle PCTV" }, | 179 | { 0xff1211bd, BTTV_BOARD_PINNACLE, "Pinnacle PCTV" }, |
180 | 180 | ||
181 | { 0x3000121a, BTTV_BOARD_VOODOOTV_FM, "3Dfx VoodooTV FM/ VoodooTV 200" }, | 181 | { 0x3000121a, BTTV_BOARD_VOODOOTV_200, "3Dfx VoodooTV 200" }, |
182 | { 0x263710b4, BTTV_BOARD_VOODOOTV_FM, "3Dfx VoodooTV FM/ VoodooTV 200" }, | 182 | { 0x263710b4, BTTV_BOARD_VOODOOTV_FM, "3Dfx VoodooTV FM" }, |
183 | { 0x3060121a, BTTV_BOARD_STB2, "3Dfx VoodooTV 100/ STB OEM" }, | 183 | { 0x3060121a, BTTV_BOARD_STB2, "3Dfx VoodooTV 100/ STB OEM" }, |
184 | 184 | ||
185 | { 0x3000144f, BTTV_BOARD_MAGICTVIEW063, "(Askey Magic/others) TView99 CPH06x" }, | 185 | { 0x3000144f, BTTV_BOARD_MAGICTVIEW063, "(Askey Magic/others) TView99 CPH06x" }, |
@@ -1517,7 +1517,29 @@ struct tvcard bttv_tvcards[] = { | |||
1517 | 1517 | ||
1518 | /* ---- card 0x44 ---------------------------------- */ | 1518 | /* ---- card 0x44 ---------------------------------- */ |
1519 | [BTTV_BOARD_VOODOOTV_FM] = { | 1519 | [BTTV_BOARD_VOODOOTV_FM] = { |
1520 | .name = "3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)", | 1520 | .name = "3Dfx VoodooTV FM (Euro)", |
1521 | /* try "insmod msp3400 simple=0" if you have | ||
1522 | * sound problems with this card. */ | ||
1523 | .video_inputs = 4, | ||
1524 | .audio_inputs = 1, | ||
1525 | .tuner = 0, | ||
1526 | .svhs = -1, | ||
1527 | .gpiomask = 0x4f8a00, | ||
1528 | /* 0x100000: 1=MSP enabled (0=disable again) | ||
1529 | * 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */ | ||
1530 | .gpiomux = {0x947fff, 0x987fff,0x947fff,0x947fff }, | ||
1531 | .gpiomute = 0x947fff, | ||
1532 | /* tvtuner, radio, external,internal, mute, stereo | ||
1533 | * tuner, Composit, SVid, Composit-on-Svid-adapter */ | ||
1534 | .muxsel = { 2, 3 ,0 ,1 }, | ||
1535 | .tuner_type = TUNER_MT2032, | ||
1536 | .tuner_addr = ADDR_UNSET, | ||
1537 | .radio_addr = ADDR_UNSET, | ||
1538 | .pll = PLL_28, | ||
1539 | .has_radio = 1, | ||
1540 | }, | ||
1541 | [BTTV_BOARD_VOODOOTV_200] = { | ||
1542 | .name = "VoodooTV 200 (USA)", | ||
1521 | /* try "insmod msp3400 simple=0" if you have | 1543 | /* try "insmod msp3400 simple=0" if you have |
1522 | * sound problems with this card. */ | 1544 | * sound problems with this card. */ |
1523 | .video_inputs = 4, | 1545 | .video_inputs = 4, |
@@ -3302,6 +3324,7 @@ void __devinit bttv_init_card1(struct bttv *btv) | |||
3302 | case BTTV_BOARD_HAUPPAUGE878: | 3324 | case BTTV_BOARD_HAUPPAUGE878: |
3303 | boot_msp34xx(btv,5); | 3325 | boot_msp34xx(btv,5); |
3304 | break; | 3326 | break; |
3327 | case BTTV_BOARD_VOODOOTV_200: | ||
3305 | case BTTV_BOARD_VOODOOTV_FM: | 3328 | case BTTV_BOARD_VOODOOTV_FM: |
3306 | boot_msp34xx(btv,20); | 3329 | boot_msp34xx(btv,20); |
3307 | break; | 3330 | break; |
@@ -3865,11 +3888,15 @@ void bttv_tda9880_setnorm(struct bttv *btv, int norm) | |||
3865 | if(norm==VIDEO_MODE_NTSC) { | 3888 | if(norm==VIDEO_MODE_NTSC) { |
3866 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomux[TVAUDIO_INPUT_TUNER]=0x957fff; | 3889 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomux[TVAUDIO_INPUT_TUNER]=0x957fff; |
3867 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomute=0x957fff; | 3890 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomute=0x957fff; |
3891 | bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomux[TVAUDIO_INPUT_TUNER]=0x957fff; | ||
3892 | bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomute=0x957fff; | ||
3868 | dprintk("bttv_tda9880_setnorm to NTSC\n"); | 3893 | dprintk("bttv_tda9880_setnorm to NTSC\n"); |
3869 | } | 3894 | } |
3870 | else { | 3895 | else { |
3871 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomux[TVAUDIO_INPUT_TUNER]=0x947fff; | 3896 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomux[TVAUDIO_INPUT_TUNER]=0x947fff; |
3872 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomute=0x947fff; | 3897 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomute=0x947fff; |
3898 | bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomux[TVAUDIO_INPUT_TUNER]=0x947fff; | ||
3899 | bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomute=0x947fff; | ||
3873 | dprintk("bttv_tda9880_setnorm to PAL\n"); | 3900 | dprintk("bttv_tda9880_setnorm to PAL\n"); |
3874 | } | 3901 | } |
3875 | /* set GPIO according */ | 3902 | /* set GPIO according */ |
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c index b1fedb0f6431..284bdf2d2432 100644 --- a/drivers/media/video/bt8xx/bttv-driver.c +++ b/drivers/media/video/bt8xx/bttv-driver.c | |||
@@ -1218,7 +1218,14 @@ audio_mux(struct bttv *btv, int input, int mute) | |||
1218 | break; | 1218 | break; |
1219 | case TVAUDIO_INPUT_TUNER: | 1219 | case TVAUDIO_INPUT_TUNER: |
1220 | default: | 1220 | default: |
1221 | route.input = MSP_INPUT_DEFAULT; | 1221 | /* This is the only card that uses TUNER2, and afaik, |
1222 | is the only difference between the VOODOOTV_FM | ||
1223 | and VOODOOTV_200 */ | ||
1224 | if (btv->c.type == BTTV_BOARD_VOODOOTV_200) | ||
1225 | route.input = MSP_INPUT(MSP_IN_SCART1, MSP_IN_TUNER2, \ | ||
1226 | MSP_DSP_IN_TUNER, MSP_DSP_IN_TUNER); | ||
1227 | else | ||
1228 | route.input = MSP_INPUT_DEFAULT; | ||
1222 | break; | 1229 | break; |
1223 | } | 1230 | } |
1224 | route.output = MSP_OUTPUT_DEFAULT; | 1231 | route.output = MSP_OUTPUT_DEFAULT; |
@@ -1253,7 +1260,7 @@ i2c_vidiocschan(struct bttv *btv) | |||
1253 | v4l2_std_id std = bttv_tvnorms[btv->tvnorm].v4l2_id; | 1260 | v4l2_std_id std = bttv_tvnorms[btv->tvnorm].v4l2_id; |
1254 | 1261 | ||
1255 | bttv_call_i2c_clients(btv, VIDIOC_S_STD, &std); | 1262 | bttv_call_i2c_clients(btv, VIDIOC_S_STD, &std); |
1256 | if (btv->c.type == BTTV_BOARD_VOODOOTV_FM) | 1263 | if (btv->c.type == BTTV_BOARD_VOODOOTV_FM || btv->c.type == BTTV_BOARD_VOODOOTV_200) |
1257 | bttv_tda9880_setnorm(btv,btv->tvnorm); | 1264 | bttv_tda9880_setnorm(btv,btv->tvnorm); |
1258 | } | 1265 | } |
1259 | 1266 | ||
@@ -1323,6 +1330,7 @@ set_tvnorm(struct bttv *btv, unsigned int norm) | |||
1323 | 1330 | ||
1324 | switch (btv->c.type) { | 1331 | switch (btv->c.type) { |
1325 | case BTTV_BOARD_VOODOOTV_FM: | 1332 | case BTTV_BOARD_VOODOOTV_FM: |
1333 | case BTTV_BOARD_VOODOOTV_200: | ||
1326 | bttv_tda9880_setnorm(btv,norm); | 1334 | bttv_tda9880_setnorm(btv,norm); |
1327 | break; | 1335 | break; |
1328 | } | 1336 | } |
diff --git a/drivers/media/video/bt8xx/bttv.h b/drivers/media/video/bt8xx/bttv.h index f821ba69db99..0b4e9f03d0ed 100644 --- a/drivers/media/video/bt8xx/bttv.h +++ b/drivers/media/video/bt8xx/bttv.h | |||
@@ -170,6 +170,7 @@ | |||
170 | #define BTTV_BOARD_MACHTV_MAGICTV 0x90 | 170 | #define BTTV_BOARD_MACHTV_MAGICTV 0x90 |
171 | #define BTTV_BOARD_SSAI_SECURITY 0x91 | 171 | #define BTTV_BOARD_SSAI_SECURITY 0x91 |
172 | #define BTTV_BOARD_SSAI_ULTRASOUND 0x92 | 172 | #define BTTV_BOARD_SSAI_ULTRASOUND 0x92 |
173 | #define BTTV_BOARD_VOODOOTV_200 0x93 | ||
173 | 174 | ||
174 | /* more card-specific defines */ | 175 | /* more card-specific defines */ |
175 | #define PT2254_L_CHANNEL 0x10 | 176 | #define PT2254_L_CHANNEL 0x10 |