diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/bt8xx/bttv-cards.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c index d055c2770469..2832bafa3695 100644 --- a/drivers/media/video/bt8xx/bttv-cards.c +++ b/drivers/media/video/bt8xx/bttv-cards.c | |||
@@ -73,6 +73,8 @@ static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input); | |||
73 | 73 | ||
74 | static void geovision_muxsel(struct bttv *btv, unsigned int input); | 74 | static void geovision_muxsel(struct bttv *btv, unsigned int input); |
75 | 75 | ||
76 | static void phytec_muxsel(struct bttv *btv, unsigned int input); | ||
77 | |||
76 | static int terratec_active_radio_upgrade(struct bttv *btv); | 78 | static int terratec_active_radio_upgrade(struct bttv *btv); |
77 | static int tea5757_read(struct bttv *btv); | 79 | static int tea5757_read(struct bttv *btv); |
78 | static int tea5757_write(struct bttv *btv, int value); | 80 | static int tea5757_write(struct bttv *btv, int value); |
@@ -2054,10 +2056,9 @@ struct tvcard bttv_tvcards[] = { | |||
2054 | /* .audio_inputs= 0, */ | 2056 | /* .audio_inputs= 0, */ |
2055 | .svhs = 9, | 2057 | .svhs = 9, |
2056 | .gpiomask = 0x00, | 2058 | .gpiomask = 0x00, |
2057 | .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio | 2059 | .gpiomask2 = 0x03, /* used for external vodeo mux */ |
2058 | via the upper nibble of muxsel. here: used for | 2060 | .muxsel = { 2, 2, 2, 2, 3, 3, 3, 3, 1, 0 }, |
2059 | xternal video-mux */ | 2061 | .muxsel_hook = phytec_muxsel, |
2060 | .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x00 }, | ||
2061 | .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */ | 2062 | .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */ |
2062 | .needs_tvaudio = 1, | 2063 | .needs_tvaudio = 1, |
2063 | .pll = PLL_28, | 2064 | .pll = PLL_28, |
@@ -2070,10 +2071,9 @@ struct tvcard bttv_tvcards[] = { | |||
2070 | /* .audio_inputs= 0, */ | 2071 | /* .audio_inputs= 0, */ |
2071 | .svhs = 9, | 2072 | .svhs = 9, |
2072 | .gpiomask = 0x00, | 2073 | .gpiomask = 0x00, |
2073 | .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio | 2074 | .gpiomask2 = 0x03, /* used for external vodeo mux */ |
2074 | via the upper nibble of muxsel. here: used for | 2075 | .muxsel = { 2, 2, 2, 2, 3, 3, 3, 3, 1, 1 }, |
2075 | xternal video-mux */ | 2076 | .muxsel_hook = phytec_muxsel, |
2076 | .muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x01 }, | ||
2077 | .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */ | 2077 | .gpiomux = { 0, 0, 0, 0 }, /* card has no audio */ |
2078 | .needs_tvaudio = 1, | 2078 | .needs_tvaudio = 1, |
2079 | .pll = PLL_28, | 2079 | .pll = PLL_28, |
@@ -4528,6 +4528,16 @@ static void PXC200_muxsel(struct bttv *btv, unsigned int input) | |||
4528 | printk(KERN_DEBUG "bttv%d: setting input channel to:%d\n", btv->c.nr,(int)mux); | 4528 | printk(KERN_DEBUG "bttv%d: setting input channel to:%d\n", btv->c.nr,(int)mux); |
4529 | } | 4529 | } |
4530 | 4530 | ||
4531 | static void phytec_muxsel(struct bttv *btv, unsigned int input) | ||
4532 | { | ||
4533 | unsigned int mux = input % 4; | ||
4534 | |||
4535 | if (input == btv->svhs) | ||
4536 | mux = 0; | ||
4537 | |||
4538 | gpio_bits(0x3, mux); | ||
4539 | } | ||
4540 | |||
4531 | /* ----------------------------------------------------------------------- */ | 4541 | /* ----------------------------------------------------------------------- */ |
4532 | /* motherboard chipset specific stuff */ | 4542 | /* motherboard chipset specific stuff */ |
4533 | 4543 | ||