diff options
Diffstat (limited to 'drivers/media/video/bt8xx/bttv-cards.c')
-rw-r--r-- | drivers/media/video/bt8xx/bttv-cards.c | 55 |
1 files changed, 53 insertions, 2 deletions
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c index 7374c02dd183..f20a01cfc73e 100644 --- a/drivers/media/video/bt8xx/bttv-cards.c +++ b/drivers/media/video/bt8xx/bttv-cards.c | |||
@@ -71,6 +71,8 @@ static void kodicom4400r_init(struct bttv *btv); | |||
71 | static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input); | 71 | static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input); |
72 | static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input); | 72 | static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input); |
73 | 73 | ||
74 | static void geovision_muxsel(struct bttv *btv, unsigned int input); | ||
75 | |||
74 | static int terratec_active_radio_upgrade(struct bttv *btv); | 76 | static int terratec_active_radio_upgrade(struct bttv *btv); |
75 | static int tea5757_read(struct bttv *btv); | 77 | static int tea5757_read(struct bttv *btv); |
76 | static int tea5757_write(struct bttv *btv, int value); | 78 | static int tea5757_write(struct bttv *btv, int value); |
@@ -301,6 +303,7 @@ static struct CARD { | |||
301 | { 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" }, | 303 | { 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" }, |
302 | { 0x00261822, BTTV_BOARD_TWINHAN_DST, "DNTV Live! Mini "}, | 304 | { 0x00261822, BTTV_BOARD_TWINHAN_DST, "DNTV Live! Mini "}, |
303 | { 0xd200dbc0, BTTV_BOARD_DVICO_FUSIONHDTV_2, "DViCO FusionHDTV 2" }, | 305 | { 0xd200dbc0, BTTV_BOARD_DVICO_FUSIONHDTV_2, "DViCO FusionHDTV 2" }, |
306 | { 0x763c008a, BTTV_BOARD_GEOVISION_GV600, "GeoVision GV-600" }, | ||
304 | 307 | ||
305 | { 0, -1, NULL } | 308 | { 0, -1, NULL } |
306 | }; | 309 | }; |
@@ -576,6 +579,8 @@ struct tvcard bttv_tvcards[] = { | |||
576 | .needs_tvaudio = 1, | 579 | .needs_tvaudio = 1, |
577 | .pll = PLL_28, | 580 | .pll = PLL_28, |
578 | .tuner_type = UNSET, | 581 | .tuner_type = UNSET, |
582 | .tuner_addr = ADDR_UNSET, | ||
583 | .radio_addr = ADDR_UNSET, | ||
579 | }, | 584 | }, |
580 | [BTTV_BOARD_WINVIEW_601] = { | 585 | [BTTV_BOARD_WINVIEW_601] = { |
581 | .name = "Leadtek WinView 601", | 586 | .name = "Leadtek WinView 601", |
@@ -2322,7 +2327,7 @@ struct tvcard bttv_tvcards[] = { | |||
2322 | .tuner = 0, | 2327 | .tuner = 0, |
2323 | .svhs = 2, | 2328 | .svhs = 2, |
2324 | .muxsel = { 2, 3, 1, 0 }, | 2329 | .muxsel = { 2, 3, 1, 0 }, |
2325 | .tuner_type = TUNER_PHILIPS_ATSC, | 2330 | .tuner_type = TUNER_PHILIPS_FCV1236D, |
2326 | .tuner_addr = ADDR_UNSET, | 2331 | .tuner_addr = ADDR_UNSET, |
2327 | .radio_addr = ADDR_UNSET, | 2332 | .radio_addr = ADDR_UNSET, |
2328 | .has_dvb = 1, | 2333 | .has_dvb = 1, |
@@ -2961,7 +2966,7 @@ struct tvcard bttv_tvcards[] = { | |||
2961 | [BTTV_BOARD_DVICO_FUSIONHDTV_2] = { | 2966 | [BTTV_BOARD_DVICO_FUSIONHDTV_2] = { |
2962 | .name = "DViCO FusionHDTV 2", | 2967 | .name = "DViCO FusionHDTV 2", |
2963 | .tuner = 0, | 2968 | .tuner = 0, |
2964 | .tuner_type = TUNER_PHILIPS_ATSC, /* FCV1236D */ | 2969 | .tuner_type = TUNER_PHILIPS_FCV1236D, |
2965 | .tuner_addr = ADDR_UNSET, | 2970 | .tuner_addr = ADDR_UNSET, |
2966 | .radio_addr = ADDR_UNSET, | 2971 | .radio_addr = ADDR_UNSET, |
2967 | .video_inputs = 3, | 2972 | .video_inputs = 3, |
@@ -2992,6 +2997,45 @@ struct tvcard bttv_tvcards[] = { | |||
2992 | .tuner_addr = ADDR_UNSET, | 2997 | .tuner_addr = ADDR_UNSET, |
2993 | .radio_addr = ADDR_UNSET, | 2998 | .radio_addr = ADDR_UNSET, |
2994 | }, | 2999 | }, |
3000 | [BTTV_BOARD_GEOVISION_GV600] = { | ||
3001 | /* emhn@usb.ve */ | ||
3002 | .name = "Geovision GV-600", | ||
3003 | .video_inputs = 16, | ||
3004 | .audio_inputs = 0, | ||
3005 | .tuner = UNSET, | ||
3006 | .svhs = UNSET, | ||
3007 | .gpiomask = 0x0, | ||
3008 | .muxsel = { 2, 2, 2, 2, 2, 2, 2, 2, | ||
3009 | 2, 2, 2, 2, 2, 2, 2, 2 }, | ||
3010 | .muxsel_hook = geovision_muxsel, | ||
3011 | .gpiomux = { 0 }, | ||
3012 | .no_msp34xx = 1, | ||
3013 | .pll = PLL_28, | ||
3014 | .tuner_type = UNSET, | ||
3015 | .tuner_addr = ADDR_UNSET, | ||
3016 | .radio_addr = ADDR_UNSET, | ||
3017 | }, | ||
3018 | [BTTV_BOARD_KOZUMI_KTV_01C] = { | ||
3019 | /* Mauro Lacy <mauro@lacy.com.ar> | ||
3020 | * Based on MagicTV and Conceptronic CONTVFMi */ | ||
3021 | |||
3022 | .name = "Kozumi KTV-01C", | ||
3023 | .video_inputs = 3, | ||
3024 | .audio_inputs = 1, | ||
3025 | .tuner = 0, | ||
3026 | .svhs = 2, | ||
3027 | .gpiomask = 0x008007, | ||
3028 | .muxsel = { 2, 3, 1, 1 }, | ||
3029 | .gpiomux = { 0, 1, 2, 2 }, /* CONTVFMi */ | ||
3030 | .gpiomute = 3, /* CONTVFMi */ | ||
3031 | .needs_tvaudio = 0, | ||
3032 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, /* TCL MK3 */ | ||
3033 | .tuner_addr = ADDR_UNSET, | ||
3034 | .radio_addr = ADDR_UNSET, | ||
3035 | .pll = PLL_28, | ||
3036 | .has_radio = 1, | ||
3037 | .has_remote = 1, | ||
3038 | }, | ||
2995 | }; | 3039 | }; |
2996 | 3040 | ||
2997 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); | 3041 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); |
@@ -3331,6 +3375,13 @@ static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input) | |||
3331 | gpio_bits( 3<<9, inmux<<9 ); | 3375 | gpio_bits( 3<<9, inmux<<9 ); |
3332 | } | 3376 | } |
3333 | 3377 | ||
3378 | static void geovision_muxsel(struct bttv *btv, unsigned int input) | ||
3379 | { | ||
3380 | unsigned int inmux = input % 16; | ||
3381 | gpio_inout(0xf, 0xf); | ||
3382 | gpio_bits(0xf, inmux); | ||
3383 | } | ||
3384 | |||
3334 | /* ----------------------------------------------------------------------- */ | 3385 | /* ----------------------------------------------------------------------- */ |
3335 | 3386 | ||
3336 | static void bttv_reset_audio(struct bttv *btv) | 3387 | static void bttv_reset_audio(struct bttv *btv) |