Lines Matching defs:btv
36 static void boot_msp34xx(struct bttv *btv, int pin);
37 static void hauppauge_eeprom(struct bttv *btv);
38 static void avermedia_eeprom(struct bttv *btv);
39 static void osprey_eeprom(struct bttv *btv, const u8 ee[256]);
40 static void modtec_eeprom(struct bttv *btv);
41 static void init_PXC200(struct bttv *btv);
42 static void init_RTV24(struct bttv *btv);
43 static void init_PCI8604PW(struct bttv *btv);
45 static void rv605_muxsel(struct bttv *btv, unsigned int input);
46 static void eagle_muxsel(struct bttv *btv, unsigned int input);
47 static void xguard_muxsel(struct bttv *btv, unsigned int input);
48 static void ivc120_muxsel(struct bttv *btv, unsigned int input);
49 static void gvc1100_muxsel(struct bttv *btv, unsigned int input);
51 static void PXC200_muxsel(struct bttv *btv, unsigned int input);
53 static void picolo_tetra_muxsel(struct bttv *btv, unsigned int input);
54 static void picolo_tetra_init(struct bttv *btv);
56 static void tibetCS16_muxsel(struct bttv *btv, unsigned int input);
57 static void tibetCS16_init(struct bttv *btv);
59 static void kodicom4400r_muxsel(struct bttv *btv, unsigned int input);
60 static void kodicom4400r_init(struct bttv *btv);
62 static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input);
63 static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input);
65 static void geovision_muxsel(struct bttv *btv, unsigned int input);
67 static void phytec_muxsel(struct bttv *btv, unsigned int input);
69 static void gv800s_muxsel(struct bttv *btv, unsigned int input);
70 static void gv800s_init(struct bttv *btv);
72 static void td3116_muxsel(struct bttv *btv, unsigned int input);
74 static int terratec_active_radio_upgrade(struct bttv *btv);
75 static int tea575x_init(struct bttv *btv);
76 static void identify_by_eeprom(struct bttv *btv,
78 static int pvr_boot(struct bttv *btv);
2893 void bttv_idcard(struct bttv *btv)
2899 btv->cardid = btv->c.pci->subsystem_device << 16;
2900 btv->cardid |= btv->c.pci->subsystem_vendor;
2902 if (0 != btv->cardid && 0xffffffff != btv->cardid) {
2905 if (cards[i].id == btv->cardid)
2911 btv->c.nr, cards[type].name, cards[type].cardnr,
2912 btv->cardid & 0xffff,
2913 (btv->cardid >> 16) & 0xffff);
2914 btv->c.type = cards[type].cardnr;
2918 btv->c.nr, btv->cardid & 0xffff,
2919 (btv->cardid >> 16) & 0xffff);
2925 if (card[btv->c.nr] < bttv_num_tvcards)
2926 btv->c.type=card[btv->c.nr];
2930 btv->c.nr, bttv_tvcards[btv->c.type].name, btv->c.type,
2931 card[btv->c.nr] < bttv_num_tvcards
2941 bttv_tvcards[btv->c.type].gpiomux[i] = audiomux[i];
2947 bttv_tvcards[btv->c.type].gpiomux[i] = audioall;
2950 bttv_tvcards[btv->c.type].gpiomask = (UNSET != gpiomask) ? gpiomask : gpiobits;
2952 btv->c.nr, bttv_tvcards[btv->c.type].gpiomask);
2955 i ? "," : "", bttv_tvcards[btv->c.type].gpiomux[i]);
2965 static void identify_by_eeprom(struct bttv *btv, unsigned char eeprom_data[256])
2977 btv->c.type = type;
2979 btv->c.nr, bttv_tvcards[btv->c.type].name, btv->c.type);
2983 static void flyvideo_gpio(struct bttv *btv)
3023 pr_info("%d: FlyVideo_gpio: unknown tuner type\n", btv->c.nr);
3041 btv->c.nr, has_radio ? "yes" : "no",
3044 btv->c.nr, is_lr90 ? "yes" : "no",
3049 btv->tuner_type = tuner_type;
3050 btv->has_radio = has_radio;
3056 btv->audio_mode_gpio = lt9415_audio;
3057 /* todo: if(has_tda9874) btv->audio_mode_gpio = fv2000s_audio; */
3065 static void miro_pinnacle_gpio(struct bttv *btv)
3073 msp = bttv_I2CRead(btv, I2C_ADDR_MSP3400, "MSP34xx");
3075 btv->tuner_type = miro_tunermap[id];
3077 btv->has_radio = 1;
3079 btv->has_tea575x = 1;
3080 btv->tea_gpio.wren = 6;
3081 btv->tea_gpio.most = 7;
3082 btv->tea_gpio.clk = 8;
3083 btv->tea_gpio.data = 9;
3084 tea575x_init(btv);
3087 btv->has_radio = 0;
3090 if (btv->c.type == BTTV_BOARD_MIRO)
3091 btv->c.type = BTTV_BOARD_MIROPRO;
3092 if (btv->c.type == BTTV_BOARD_PINNACLE)
3093 btv->c.type = BTTV_BOARD_PINNACLEPRO;
3096 btv->c.nr, id+1, btv->tuner_type,
3097 !btv->has_radio ? "no" :
3098 (btv->has_tea575x ? "tea575x" : "fmtuner"),
3103 btv->has_radio = 0;
3107 btv->tda9887_conf = TDA9887_INTERCARRIER;
3111 btv->has_radio = 1;
3112 btv->tda9887_conf = TDA9887_QSS;
3116 btv->has_radio = 1;
3117 btv->tda9887_conf = TDA9887_QSS;
3121 btv->tda9887_conf = TDA9887_QSS;
3125 btv->tda9887_conf = TDA9887_INTERCARRIER;
3129 btv->tda9887_conf = TDA9887_INTERCARRIER;
3133 btv->tda9887_conf = TDA9887_INTERCARRIER;
3140 btv->c.type = BTTV_BOARD_PINNACLEPRO;
3142 btv->c.nr, id, info, btv->has_radio ? "yes" : "no");
3143 btv->tuner_type = TUNER_MT2032;
3150 static void init_ids_eagle(struct bttv *btv)
3168 static void eagle_muxsel(struct bttv *btv, unsigned int input)
3183 static void gvc1100_muxsel(struct bttv *btv, unsigned int input)
3202 static void init_lmlbt4x(struct bttv *btv)
3210 static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input)
3217 static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input)
3224 static void geovision_muxsel(struct bttv *btv, unsigned int input)
3241 static void td3116_latch_value(struct bttv *btv, u32 value)
3249 static void td3116_muxsel(struct bttv *btv, unsigned int input)
3259 td3116_latch_value(btv, value);
3264 td3116_latch_value(btv, value);
3269 static void bttv_reset_audio(struct bttv *btv)
3280 if (btv->id != 878)
3284 pr_debug("%d: BT878A ARESET\n", btv->c.nr);
3291 void bttv_init_card1(struct bttv *btv)
3293 switch (btv->c.type) {
3296 boot_msp34xx(btv,5);
3300 boot_msp34xx(btv,20);
3303 boot_msp34xx(btv,11);
3306 pvr_boot(btv);
3311 btv->use_i2c_hw = 1;
3314 init_RTV24( btv );
3317 init_PCI8604PW(btv);
3321 if (!bttv_tvcards[btv->c.type].has_dvb)
3322 bttv_reset_audio(btv);
3326 void bttv_init_card2(struct bttv *btv)
3328 btv->tuner_type = UNSET;
3330 if (BTTV_BOARD_UNKNOWN == btv->c.type) {
3331 bttv_readee(btv,eeprom_data,0xa0);
3332 identify_by_eeprom(btv,eeprom_data);
3335 switch (btv->c.type) {
3341 miro_pinnacle_gpio(btv);
3354 flyvideo_gpio(btv);
3360 bttv_readee(btv,eeprom_data,0xa0);
3361 hauppauge_eeprom(btv);
3365 bttv_readee(btv,eeprom_data,0xa0);
3366 avermedia_eeprom(btv);
3369 init_PXC200(btv);
3372 picolo_tetra_init(btv);
3375 btv->has_radio = 1;
3376 btv->has_tea575x = 1;
3377 btv->tea_gpio.wren = 5;
3378 btv->tea_gpio.most = 6;
3379 btv->tea_gpio.clk = 3;
3380 btv->tea_gpio.data = 4;
3381 tea575x_init(btv);
3385 terratec_active_radio_upgrade(btv);
3388 if (btv->cardid == 0x3002144f) {
3389 btv->has_radio=1;
3391 btv->c.nr);
3395 if (btv->cardid == 0x3060121a) {
3398 btv->has_radio=0;
3399 btv->tuner_type=TUNER_TEMIC_NTSC;
3414 bttv_readee(btv,eeprom_data,0xa0);
3415 osprey_eeprom(btv, eeprom_data);
3418 init_ids_eagle(btv);
3421 bttv_readee(btv,eeprom_data,0xa0);
3422 modtec_eeprom(btv);
3425 init_lmlbt4x(btv);
3428 tibetCS16_init(btv);
3431 kodicom4400r_init(btv);
3434 gv800s_init(btv);
3439 if (!(btv->id==848 && btv->revision==0x11)) {
3441 if (PLL_28 == bttv_tvcards[btv->c.type].pll) {
3442 btv->pll.pll_ifreq=28636363;
3443 btv->pll.pll_crystal=BT848_IFORM_XT0;
3445 if (PLL_35 == bttv_tvcards[btv->c.type].pll) {
3446 btv->pll.pll_ifreq=35468950;
3447 btv->pll.pll_crystal=BT848_IFORM_XT1;
3449 if (PLL_14 == bttv_tvcards[btv->c.type].pll) {
3450 btv->pll.pll_ifreq = 14318181;
3451 btv->pll.pll_crystal = BT848_IFORM_XT0;
3454 switch (pll[btv->c.nr]) {
3456 btv->pll.pll_crystal = 0;
3457 btv->pll.pll_ifreq = 0;
3458 btv->pll.pll_ofreq = 0;
3462 btv->pll.pll_ifreq = 28636363;
3463 btv->pll.pll_ofreq = 0;
3464 btv->pll.pll_crystal = BT848_IFORM_XT0;
3468 btv->pll.pll_ifreq = 35468950;
3469 btv->pll.pll_ofreq = 0;
3470 btv->pll.pll_crystal = BT848_IFORM_XT1;
3474 btv->pll.pll_ifreq = 14318181;
3475 btv->pll.pll_ofreq = 0;
3476 btv->pll.pll_crystal = BT848_IFORM_XT0;
3480 btv->pll.pll_current = -1;
3483 if (UNSET != bttv_tvcards[btv->c.type].tuner_type)
3484 if (UNSET == btv->tuner_type)
3485 btv->tuner_type = bttv_tvcards[btv->c.type].tuner_type;
3486 if (UNSET != tuner[btv->c.nr])
3487 btv->tuner_type = tuner[btv->c.nr];
3489 if (btv->tuner_type == TUNER_ABSENT)
3490 pr_info("%d: tuner absent\n", btv->c.nr);
3491 else if (btv->tuner_type == UNSET)
3492 pr_warn("%d: tuner type unset\n", btv->c.nr);
3494 pr_info("%d: tuner type=%d\n", btv->c.nr, btv->tuner_type);
3497 pr_warn("%d: the autoload option is obsolete\n", btv->c.nr);
3499 btv->c.nr);
3502 if (UNSET == btv->tuner_type)
3503 btv->tuner_type = TUNER_ABSENT;
3505 btv->dig = bttv_tvcards[btv->c.type].has_dig_in ?
3506 bttv_tvcards[btv->c.type].video_inputs - 1 : UNSET;
3507 btv->svhs = bttv_tvcards[btv->c.type].svhs == NO_SVHS ?
3508 UNSET : bttv_tvcards[btv->c.type].svhs;
3509 if (svhs[btv->c.nr] != UNSET)
3510 btv->svhs = svhs[btv->c.nr];
3511 if (remote[btv->c.nr] != UNSET)
3512 btv->has_remote = remote[btv->c.nr];
3514 if (bttv_tvcards[btv->c.type].has_radio)
3515 btv->has_radio = 1;
3516 if (bttv_tvcards[btv->c.type].has_remote)
3517 btv->has_remote = 1;
3518 if (!bttv_tvcards[btv->c.type].no_gpioirq)
3519 btv->gpioirq = 1;
3520 if (bttv_tvcards[btv->c.type].volume_gpio)
3521 btv->volume_gpio = bttv_tvcards[btv->c.type].volume_gpio;
3522 if (bttv_tvcards[btv->c.type].audio_mode_gpio)
3523 btv->audio_mode_gpio = bttv_tvcards[btv->c.type].audio_mode_gpio;
3525 if (btv->tuner_type == TUNER_ABSENT)
3528 if (btv->has_saa6588 || saa6588[btv->c.nr]) {
3537 sd = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3538 &btv->c.i2c_adap, "saa6588", 0, addrs);
3539 btv->has_saa6588 = (sd != NULL);
3547 switch (audiodev[btv->c.nr]) {
3562 btv->sd_msp34xx = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3563 &btv->c.i2c_adap, "msp3400", 0, addrs);
3564 if (btv->sd_msp34xx)
3576 if (v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3577 &btv->c.i2c_adap, "tda7432", 0, addrs))
3584 btv->sd_tvaudio = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3585 &btv->c.i2c_adap, "tvaudio", 0, tvaudio_addrs());
3586 if (btv->sd_tvaudio)
3592 pr_warn("%d: unknown audiodev value!\n", btv->c.nr);
3602 if (!bttv_tvcards[btv->c.type].no_msp34xx) {
3603 btv->sd_msp34xx = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3604 &btv->c.i2c_adap, "msp3400",
3606 } else if (bttv_tvcards[btv->c.type].msp34xx_alt) {
3607 btv->sd_msp34xx = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3608 &btv->c.i2c_adap, "msp3400",
3613 if (btv->sd_msp34xx)
3617 btv->sd_tvaudio = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3618 &btv->c.i2c_adap, "tvaudio", 0, tvaudio_addrs());
3619 if (btv->sd_tvaudio) {
3622 v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3623 &btv->c.i2c_adap, "tvaudio", 0, tvaudio_addrs());
3627 if (!bttv_tvcards[btv->c.type].no_tda7432) {
3633 btv->sd_tda7432 = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3634 &btv->c.i2c_adap, "tda7432", 0, addrs);
3635 if (btv->sd_tda7432)
3638 if (btv->sd_tvaudio)
3642 pr_warn("%d: audio absent, no audio device found!\n", btv->c.nr);
3647 void bttv_init_tuner(struct bttv *btv)
3651 if (ADDR_UNSET != bttv_tvcards[btv->c.type].tuner_addr)
3652 addr = bttv_tvcards[btv->c.type].tuner_addr;
3654 if (btv->tuner_type != TUNER_ABSENT) {
3658 if (btv->has_radio)
3659 v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3660 &btv->c.i2c_adap, "tuner",
3662 v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3663 &btv->c.i2c_adap, "tuner",
3665 v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3666 &btv->c.i2c_adap, "tuner",
3670 tun_setup.type = btv->tuner_type;
3673 if (btv->has_radio)
3676 bttv_call_all(btv, tuner, s_type_addr, &tun_setup);
3679 if (btv->tda9887_conf) {
3683 tda9887_cfg.priv = &btv->tda9887_conf;
3685 bttv_call_all(btv, tuner, s_config, &tda9887_cfg);
3691 static void modtec_eeprom(struct bttv *btv)
3694 btv->tuner_type=TUNER_TEMIC_4066FY5_PAL_I;
3696 btv->c.nr, &eeprom_data[0x1e]);
3698 btv->tuner_type=TUNER_ALPS_TSBB5_PAL_I;
3700 btv->c.nr, &eeprom_data[0x1e]);
3702 btv->tuner_type=TUNER_PHILIPS_NTSC;
3704 btv->c.nr, &eeprom_data[0x1e]);
3707 btv->c.nr, &eeprom_data[0x1e]);
3711 static void hauppauge_eeprom(struct bttv *btv)
3716 btv->tuner_type = tv.tuner_type;
3717 btv->has_radio = tv.has_radio;
3720 btv->c.nr, tv.model);
3728 btv->c.nr,
3729 bttv_tvcards[btv->c.type].name,
3731 btv->c.type = BTTV_BOARD_HAUPPAUGE_IMPACTVCB;
3736 btv->radio_uses_msp_demodulator = 1;
3743 struct bttv *btv = tea->private_data;
3744 struct bttv_tea575x_gpio gpio = btv->tea_gpio;
3752 if (btv->mbox_ior) {
3754 gpio_bits(btv->mbox_iow | btv->mbox_csel, 0);
3757 gpio_bits(btv->mbox_ior | btv->mbox_iow | btv->mbox_csel,
3758 btv->mbox_ior | btv->mbox_iow | btv->mbox_csel);
3764 struct bttv *btv = tea->private_data;
3765 struct bttv_tea575x_gpio gpio = btv->tea_gpio;
3769 if (btv->mbox_ior) {
3771 gpio_bits(btv->mbox_ior | btv->mbox_csel, 0);
3775 if (btv->mbox_ior) {
3777 gpio_bits(btv->mbox_ior | btv->mbox_iow | btv->mbox_csel,
3778 btv->mbox_ior | btv->mbox_iow | btv->mbox_csel);
3791 struct bttv *btv = tea->private_data;
3792 struct bttv_tea575x_gpio gpio = btv->tea_gpio;
3809 static int tea575x_init(struct bttv *btv)
3811 btv->tea.private_data = btv;
3812 btv->tea.ops = &bttv_tea_ops;
3813 if (!snd_tea575x_hw_init(&btv->tea)) {
3814 pr_info("%d: detected TEA575x radio\n", btv->c.nr);
3815 btv->tea.mute = false;
3819 btv->has_tea575x = 0;
3820 btv->has_radio = 0;
3827 static int terratec_active_radio_upgrade(struct bttv *btv)
3829 btv->has_radio = 1;
3830 btv->has_tea575x = 1;
3831 btv->tea_gpio.wren = 4;
3832 btv->tea_gpio.most = 5;
3833 btv->tea_gpio.clk = 3;
3834 btv->tea_gpio.data = 2;
3836 btv->mbox_iow = 1 << 8;
3837 btv->mbox_ior = 1 << 9;
3838 btv->mbox_csel = 1 << 10;
3840 if (!tea575x_init(btv)) {
3841 pr_info("%d: Terratec Active Radio Upgrade found\n", btv->c.nr);
3842 btv->has_saa6588 = 1;
3864 static int pvr_altera_load(struct bttv *btv, const u8 *micro, u32 microlen)
3901 static int pvr_boot(struct bttv *btv)
3906 rc = request_firmware(&fw_entry, "hcwamc.rbf", &btv->c.pci->dev);
3908 pr_warn("%d: no altera firmware [via hotplug]\n", btv->c.nr);
3911 rc = pvr_altera_load(btv, fw_entry->data, fw_entry->size);
3913 btv->c.nr, (rc < 0) ? "failed" : "ok");
3921 static void osprey_eeprom(struct bttv *btv, const u8 ee[256])
3928 if (btv->c.type == BTTV_BOARD_UNKNOWN) {
3995 /* bttv_osprey_540_init(btv); */
4010 btv->c.nr, type);
4017 btv->c.nr, cardid,
4020 if (cardid<0 || btv->c.type == cardid)
4024 if (card[btv->c.nr] < bttv_num_tvcards) {
4026 btv->c.nr);
4029 btv->c.nr, btv->c.type, cardid);
4030 btv->c.type = cardid;
4052 static void avermedia_eeprom(struct bttv *btv)
4059 btv->has_remote = (eeprom_data[0x42] & 0x01);
4073 btv->c.nr, eeprom_data[0x41], eeprom_data[0x42]);
4075 btv->tuner_type = tuner_type;
4081 btv->has_remote ? "yes" : "no");
4092 u32 bttv_tda9880_setnorm(struct bttv *btv, u32 gpiobits)
4095 if (btv->audio_input == TVAUDIO_INPUT_TUNER) {
4096 if (bttv_tvnorms[btv->tvnorm].v4l2_id & V4L2_STD_MN)
4102 gpio_bits(bttv_tvcards[btv->c.type].gpiomask, gpiobits);
4114 static void boot_msp34xx(struct bttv *btv, int pin)
4125 bttv_gpio_tracking(btv,"msp34xx");
4128 btv->c.nr, pin);
4137 static void init_PXC200(struct bttv *btv)
4154 bttv_gpio_tracking(btv,"pxc200");
4168 bttv_I2CWrite(btv,0x5E,0,0x80,1);
4193 tmp=bttv_I2CWrite(btv,0x1E,0,vals[i],1);
4196 vals[i],tmp,bttv_I2CRead(btv,0x1F,NULL));
4234 init_RTV24 (struct bttv *btv)
4240 btv->c.nr);
4254 btv->c.nr, dataRead);
4267 btv->c.nr, dataRead);
4272 pr_info("%d: Adlink RTV-24 initialisation complete\n", btv->c.nr);
4299 init_PCI8604PW(struct bttv *btv)
4303 if ((PCI_SLOT(btv->c.pci->devfn) & ~3) != 0xC) {
4308 if (PCI_SLOT(btv->c.pci->devfn) != 0xD)
4389 static void rv605_muxsel(struct bttv *btv, unsigned int input)
4437 static void tibetCS16_muxsel(struct bttv *btv, unsigned int input)
4443 static void tibetCS16_init(struct bttv *btv)
4477 static void kodicom4400r_write(struct bttv *btv,
4497 static void kodicom4400r_muxsel(struct bttv *btv, unsigned int input)
4503 mctlr = master[btv->c.nr];
4507 yaddr = (btv->c.nr - mctlr->c.nr + 1) & 3; /* the '&' is for safety */
4526 static void kodicom4400r_init(struct bttv *btv)
4535 btv->sw_status[ix] = ix;
4536 kodicom4400r_write(btv, ix, ix, 1);
4543 if ((btv->c.nr<1) || (btv->c.nr>BTTV_MAX-3))
4545 master[btv->c.nr-1] = btv;
4546 master[btv->c.nr] = btv;
4547 master[btv->c.nr+1] = btv;
4548 master[btv->c.nr+2] = btv;
4569 static void xguard_muxsel(struct bttv *btv, unsigned int input)
4579 static void picolo_tetra_init(struct bttv *btv)
4585 static void picolo_tetra_muxsel (struct bttv* btv, unsigned int input)
4588 dprintk("%d : picolo_tetra_muxsel => input = %d\n", btv->c.nr, input);
4627 static void ivc120_muxsel(struct bttv *btv, unsigned int input)
4634 btv->c.nr, input, matrix, key);
4637 bttv_I2CWrite(btv, I2C_TDA8540_ALT3, 0x00,
4639 bttv_I2CWrite(btv, I2C_TDA8540_ALT4, 0x00,
4641 bttv_I2CWrite(btv, I2C_TDA8540_ALT5, 0x00,
4643 bttv_I2CWrite(btv, I2C_TDA8540_ALT6, 0x00,
4647 bttv_I2CWrite(btv, I2C_TDA8540_ALT3, 0x02,
4649 bttv_I2CWrite(btv, I2C_TDA8540_ALT4, 0x02,
4651 bttv_I2CWrite(btv, I2C_TDA8540_ALT5, 0x02,
4653 bttv_I2CWrite(btv, I2C_TDA8540_ALT6, 0x02,
4677 static void PXC200_muxsel(struct bttv *btv, unsigned int input)
4688 rc=bttv_I2CWrite(btv,(PX_I2C_PIC<<1),buf[0],buf[1],1);
4691 btv->c.nr, rc);
4696 rc=bttv_I2CRead(btv,(PX_I2C_PIC<<1),NULL);
4699 btv->c.nr, rc);
4706 /* mux = bttv_tvcards[btv->type].muxsel[input] & 3; */
4714 if (btv->cardid == PX_PXC200A_CARDID) {
4721 if (btv->cardid == PX_PXC200A_CARDID)
4734 if (btv->cardid == PX_PXC200A_CARDID)
4739 pr_debug("%d: setting input channel to:%d\n", btv->c.nr, (int)mux);
4742 static void phytec_muxsel(struct bttv *btv, unsigned int input)
4746 if (input == btv->svhs)
4767 static void gv800s_write(struct bttv *btv,
4796 * of the "master" card. A pointer to this card is stored in master[btv->c.nr].
4809 static void gv800s_muxsel(struct bttv *btv, unsigned int input)
4818 mctlr = master[btv->c.nr];
4823 yaddr = (btv->c.nr - mctlr->c.nr) & 3;
4836 static void gv800s_init(struct bttv *btv)
4846 btv->sw_status[ix] = ix;
4847 gv800s_write(btv, ix, ix, 1);
4851 bttv_I2CWrite(btv, 0x18, 0x5, 0x90, 1);
4853 if (btv->c.nr > BTTV_MAX-4)
4859 master[btv->c.nr] = btv;
4860 master[btv->c.nr+1] = btv;
4861 master[btv->c.nr+2] = btv;
4862 master[btv->c.nr+3] = btv;
4911 int bttv_handle_chipset(struct bttv *btv)
4921 btv->c.nr);
4922 if (vsfx && btv->id >= 878)
4923 pr_info("%d: enabling VSFX\n", btv->c.nr);
4926 btv->c.nr, latency);
4929 if (btv->id < 878) {
4932 btv->triton1 = BT848_INT_ETBF;
4935 pci_read_config_byte(btv->c.pci, BT878_DEVCTRL, &command);
4940 pci_write_config_byte(btv->c.pci, BT878_DEVCTRL, command);
4943 pci_write_config_byte(btv->c.pci, PCI_LATENCY_TIMER, latency);