diff options
Diffstat (limited to 'drivers/media/video/bt8xx/bttv-cards.c')
-rw-r--r-- | drivers/media/video/bt8xx/bttv-cards.c | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c index 2df0ce2afe98..5c558e48e423 100644 --- a/drivers/media/video/bt8xx/bttv-cards.c +++ b/drivers/media/video/bt8xx/bttv-cards.c | |||
@@ -4084,27 +4084,26 @@ static void __devinit avermedia_eeprom(struct bttv *btv) | |||
4084 | btv->has_remote ? "yes" : "no"); | 4084 | btv->has_remote ? "yes" : "no"); |
4085 | } | 4085 | } |
4086 | 4086 | ||
4087 | /* used on Voodoo TV/FM (Voodoo 200), S0 wired to 0x10000 */ | 4087 | /* |
4088 | void bttv_tda9880_setnorm(struct bttv *btv, unsigned int norm) | 4088 | * For Voodoo TV/FM and Voodoo 200. These cards' tuners use a TDA9880 |
4089 | * analog demod, which is not I2C controlled like the newer and more common | ||
4090 | * TDA9887 series. Instead is has two tri-state input pins, S0 and S1, | ||
4091 | * that control the IF for the video and audio. Apparently, bttv GPIO | ||
4092 | * 0x10000 is connected to S0. S0 low selects a 38.9 MHz VIF for B/G/D/K/I | ||
4093 | * (i.e., PAL) while high selects 45.75 MHz for M/N (i.e., NTSC). | ||
4094 | */ | ||
4095 | u32 bttv_tda9880_setnorm(struct bttv *btv, u32 gpiobits) | ||
4089 | { | 4096 | { |
4090 | /* fix up our card entry */ | 4097 | |
4091 | if(norm==V4L2_STD_NTSC) { | 4098 | if (btv->audio == TVAUDIO_INPUT_TUNER) { |
4092 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomux[TVAUDIO_INPUT_TUNER]=0x957fff; | 4099 | if (bttv_tvnorms[btv->tvnorm].v4l2_id & V4L2_STD_MN) |
4093 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomute=0x957fff; | 4100 | gpiobits |= 0x10000; |
4094 | bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomux[TVAUDIO_INPUT_TUNER]=0x957fff; | 4101 | else |
4095 | bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomute=0x957fff; | 4102 | gpiobits &= ~0x10000; |
4096 | dprintk("bttv_tda9880_setnorm to NTSC\n"); | ||
4097 | } | ||
4098 | else { | ||
4099 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomux[TVAUDIO_INPUT_TUNER]=0x947fff; | ||
4100 | bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].gpiomute=0x947fff; | ||
4101 | bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomux[TVAUDIO_INPUT_TUNER]=0x947fff; | ||
4102 | bttv_tvcards[BTTV_BOARD_VOODOOTV_200].gpiomute=0x947fff; | ||
4103 | dprintk("bttv_tda9880_setnorm to PAL\n"); | ||
4104 | } | 4103 | } |
4105 | /* set GPIO according */ | 4104 | |
4106 | gpio_bits(bttv_tvcards[btv->c.type].gpiomask, | 4105 | gpio_bits(bttv_tvcards[btv->c.type].gpiomask, gpiobits); |
4107 | bttv_tvcards[btv->c.type].gpiomux[btv->audio]); | 4106 | return gpiobits; |
4108 | } | 4107 | } |
4109 | 4108 | ||
4110 | 4109 | ||