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);
2890 void bttv_idcard(struct bttv *btv)
2896 btv->cardid = btv->c.pci->subsystem_device << 16;
2897 btv->cardid |= btv->c.pci->subsystem_vendor;
2899 if (0 != btv->cardid && 0xffffffff != btv->cardid) {
2902 if (cards[i].id == btv->cardid)
2908 btv->c.nr, cards[type].name, cards[type].cardnr,
2909 btv->cardid & 0xffff,
2910 (btv->cardid >> 16) & 0xffff);
2911 btv->c.type = cards[type].cardnr;
2915 btv->c.nr, btv->cardid & 0xffff,
2916 (btv->cardid >> 16) & 0xffff);
2922 if (card[btv->c.nr] < bttv_num_tvcards)
2923 btv->c.type=card[btv->c.nr];
2927 btv->c.nr, bttv_tvcards[btv->c.type].name, btv->c.type,
2928 card[btv->c.nr] < bttv_num_tvcards
2938 bttv_tvcards[btv->c.type].gpiomux[i] = audiomux[i];
2944 bttv_tvcards[btv->c.type].gpiomux[i] = audioall;
2947 bttv_tvcards[btv->c.type].gpiomask = (UNSET != gpiomask) ? gpiomask : gpiobits;
2949 btv->c.nr, bttv_tvcards[btv->c.type].gpiomask);
2952 i ? "," : "", bttv_tvcards[btv->c.type].gpiomux[i]);
2962 static void identify_by_eeprom(struct bttv *btv, unsigned char eeprom_data[256])
2974 btv->c.type = type;
2976 btv->c.nr, bttv_tvcards[btv->c.type].name, btv->c.type);
2980 static void flyvideo_gpio(struct bttv *btv)
3020 pr_info("%d: FlyVideo_gpio: unknown tuner type\n", btv->c.nr);
3038 btv->c.nr, has_radio ? "yes" : "no",
3041 btv->c.nr, is_lr90 ? "yes" : "no",
3046 btv->tuner_type = tuner_type;
3047 btv->has_radio = has_radio;
3053 btv->audio_mode_gpio = lt9415_audio;
3054 /* todo: if(has_tda9874) btv->audio_mode_gpio = fv2000s_audio; */
3062 static void miro_pinnacle_gpio(struct bttv *btv)
3070 msp = bttv_I2CRead(btv, I2C_ADDR_MSP3400, "MSP34xx");
3072 btv->tuner_type = miro_tunermap[id];
3074 btv->has_radio = 1;
3076 btv->has_tea575x = 1;
3077 btv->tea_gpio.wren = 6;
3078 btv->tea_gpio.most = 7;
3079 btv->tea_gpio.clk = 8;
3080 btv->tea_gpio.data = 9;
3081 tea575x_init(btv);
3084 btv->has_radio = 0;
3087 if (btv->c.type == BTTV_BOARD_MIRO)
3088 btv->c.type = BTTV_BOARD_MIROPRO;
3089 if (btv->c.type == BTTV_BOARD_PINNACLE)
3090 btv->c.type = BTTV_BOARD_PINNACLEPRO;
3093 btv->c.nr, id+1, btv->tuner_type,
3094 !btv->has_radio ? "no" :
3095 (btv->has_tea575x ? "tea575x" : "fmtuner"),
3100 btv->has_radio = 0;
3104 btv->tda9887_conf = TDA9887_INTERCARRIER;
3108 btv->has_radio = 1;
3109 btv->tda9887_conf = TDA9887_QSS;
3113 btv->has_radio = 1;
3114 btv->tda9887_conf = TDA9887_QSS;
3118 btv->tda9887_conf = TDA9887_QSS;
3122 btv->tda9887_conf = TDA9887_INTERCARRIER;
3126 btv->tda9887_conf = TDA9887_INTERCARRIER;
3130 btv->tda9887_conf = TDA9887_INTERCARRIER;
3137 btv->c.type = BTTV_BOARD_PINNACLEPRO;
3139 btv->c.nr, id, info, btv->has_radio ? "yes" : "no");
3140 btv->tuner_type = TUNER_MT2032;
3147 static void init_ids_eagle(struct bttv *btv)
3165 static void eagle_muxsel(struct bttv *btv, unsigned int input)
3180 static void gvc1100_muxsel(struct bttv *btv, unsigned int input)
3199 static void init_lmlbt4x(struct bttv *btv)
3207 static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input)
3214 static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input)
3221 static void geovision_muxsel(struct bttv *btv, unsigned int input)
3238 static void td3116_latch_value(struct bttv *btv, u32 value)
3246 static void td3116_muxsel(struct bttv *btv, unsigned int input)
3256 td3116_latch_value(btv, value);
3261 td3116_latch_value(btv, value);
3266 static void bttv_reset_audio(struct bttv *btv)
3277 if (btv->id != 878)
3281 pr_debug("%d: BT878A ARESET\n", btv->c.nr);
3288 void bttv_init_card1(struct bttv *btv)
3290 switch (btv->c.type) {
3293 boot_msp34xx(btv,5);
3297 boot_msp34xx(btv,20);
3300 boot_msp34xx(btv,11);
3303 pvr_boot(btv);
3308 btv->use_i2c_hw = 1;
3311 init_RTV24( btv );
3314 init_PCI8604PW(btv);
3318 if (!bttv_tvcards[btv->c.type].has_dvb)
3319 bttv_reset_audio(btv);
3323 void bttv_init_card2(struct bttv *btv)
3325 btv->tuner_type = UNSET;
3327 if (BTTV_BOARD_UNKNOWN == btv->c.type) {
3328 bttv_readee(btv,eeprom_data,0xa0);
3329 identify_by_eeprom(btv,eeprom_data);
3332 switch (btv->c.type) {
3338 miro_pinnacle_gpio(btv);
3351 flyvideo_gpio(btv);
3357 bttv_readee(btv,eeprom_data,0xa0);
3358 hauppauge_eeprom(btv);
3362 bttv_readee(btv,eeprom_data,0xa0);
3363 avermedia_eeprom(btv);
3366 init_PXC200(btv);
3369 picolo_tetra_init(btv);
3372 btv->has_radio = 1;
3373 btv->has_tea575x = 1;
3374 btv->tea_gpio.wren = 5;
3375 btv->tea_gpio.most = 6;
3376 btv->tea_gpio.clk = 3;
3377 btv->tea_gpio.data = 4;
3378 tea575x_init(btv);
3382 terratec_active_radio_upgrade(btv);
3385 if (btv->cardid == 0x3002144f) {
3386 btv->has_radio=1;
3388 btv->c.nr);
3392 if (btv->cardid == 0x3060121a) {
3395 btv->has_radio=0;
3396 btv->tuner_type=TUNER_TEMIC_NTSC;
3411 bttv_readee(btv,eeprom_data,0xa0);
3412 osprey_eeprom(btv, eeprom_data);
3415 init_ids_eagle(btv);
3418 bttv_readee(btv,eeprom_data,0xa0);
3419 modtec_eeprom(btv);
3422 init_lmlbt4x(btv);
3425 tibetCS16_init(btv);
3428 kodicom4400r_init(btv);
3431 gv800s_init(btv);
3436 if (!(btv->id==848 && btv->revision==0x11)) {
3438 if (PLL_28 == bttv_tvcards[btv->c.type].pll) {
3439 btv->pll.pll_ifreq=28636363;
3440 btv->pll.pll_crystal=BT848_IFORM_XT0;
3442 if (PLL_35 == bttv_tvcards[btv->c.type].pll) {
3443 btv->pll.pll_ifreq=35468950;
3444 btv->pll.pll_crystal=BT848_IFORM_XT1;
3446 if (PLL_14 == bttv_tvcards[btv->c.type].pll) {
3447 btv->pll.pll_ifreq = 14318181;
3448 btv->pll.pll_crystal = BT848_IFORM_XT0;
3451 switch (pll[btv->c.nr]) {
3453 btv->pll.pll_crystal = 0;
3454 btv->pll.pll_ifreq = 0;
3455 btv->pll.pll_ofreq = 0;
3459 btv->pll.pll_ifreq = 28636363;
3460 btv->pll.pll_ofreq = 0;
3461 btv->pll.pll_crystal = BT848_IFORM_XT0;
3465 btv->pll.pll_ifreq = 35468950;
3466 btv->pll.pll_ofreq = 0;
3467 btv->pll.pll_crystal = BT848_IFORM_XT1;
3471 btv->pll.pll_ifreq = 14318181;
3472 btv->pll.pll_ofreq = 0;
3473 btv->pll.pll_crystal = BT848_IFORM_XT0;
3477 btv->pll.pll_current = -1;
3480 if (UNSET != bttv_tvcards[btv->c.type].tuner_type)
3481 if (UNSET == btv->tuner_type)
3482 btv->tuner_type = bttv_tvcards[btv->c.type].tuner_type;
3483 if (UNSET != tuner[btv->c.nr])
3484 btv->tuner_type = tuner[btv->c.nr];
3486 if (btv->tuner_type == TUNER_ABSENT)
3487 pr_info("%d: tuner absent\n", btv->c.nr);
3488 else if (btv->tuner_type == UNSET)
3489 pr_warn("%d: tuner type unset\n", btv->c.nr);
3491 pr_info("%d: tuner type=%d\n", btv->c.nr, btv->tuner_type);
3494 pr_warn("%d: the autoload option is obsolete\n", btv->c.nr);
3496 btv->c.nr);
3499 if (UNSET == btv->tuner_type)
3500 btv->tuner_type = TUNER_ABSENT;
3502 btv->dig = bttv_tvcards[btv->c.type].has_dig_in ?
3503 bttv_tvcards[btv->c.type].video_inputs - 1 : UNSET;
3504 btv->svhs = bttv_tvcards[btv->c.type].svhs == NO_SVHS ?
3505 UNSET : bttv_tvcards[btv->c.type].svhs;
3506 if (svhs[btv->c.nr] != UNSET)
3507 btv->svhs = svhs[btv->c.nr];
3508 if (remote[btv->c.nr] != UNSET)
3509 btv->has_remote = remote[btv->c.nr];
3511 if (bttv_tvcards[btv->c.type].has_radio)
3512 btv->has_radio = 1;
3513 if (bttv_tvcards[btv->c.type].has_remote)
3514 btv->has_remote = 1;
3515 if (!bttv_tvcards[btv->c.type].no_gpioirq)
3516 btv->gpioirq = 1;
3517 if (bttv_tvcards[btv->c.type].volume_gpio)
3518 btv->volume_gpio = bttv_tvcards[btv->c.type].volume_gpio;
3519 if (bttv_tvcards[btv->c.type].audio_mode_gpio)
3520 btv->audio_mode_gpio = bttv_tvcards[btv->c.type].audio_mode_gpio;
3522 if (btv->tuner_type == TUNER_ABSENT)
3525 if (btv->has_saa6588 || saa6588[btv->c.nr]) {
3534 sd = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3535 &btv->c.i2c_adap, "saa6588", 0, addrs);
3536 btv->has_saa6588 = (sd != NULL);
3544 switch (audiodev[btv->c.nr]) {
3559 btv->sd_msp34xx = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3560 &btv->c.i2c_adap, "msp3400", 0, addrs);
3561 if (btv->sd_msp34xx)
3573 if (v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3574 &btv->c.i2c_adap, "tda7432", 0, addrs))
3581 btv->sd_tvaudio = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3582 &btv->c.i2c_adap, "tvaudio", 0, tvaudio_addrs());
3583 if (btv->sd_tvaudio)
3589 pr_warn("%d: unknown audiodev value!\n", btv->c.nr);
3599 if (!bttv_tvcards[btv->c.type].no_msp34xx) {
3600 btv->sd_msp34xx = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3601 &btv->c.i2c_adap, "msp3400",
3603 } else if (bttv_tvcards[btv->c.type].msp34xx_alt) {
3604 btv->sd_msp34xx = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3605 &btv->c.i2c_adap, "msp3400",
3610 if (btv->sd_msp34xx)
3614 btv->sd_tvaudio = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3615 &btv->c.i2c_adap, "tvaudio", 0, tvaudio_addrs());
3616 if (btv->sd_tvaudio) {
3619 v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3620 &btv->c.i2c_adap, "tvaudio", 0, tvaudio_addrs());
3624 if (!bttv_tvcards[btv->c.type].no_tda7432) {
3630 btv->sd_tda7432 = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3631 &btv->c.i2c_adap, "tda7432", 0, addrs);
3632 if (btv->sd_tda7432)
3635 if (btv->sd_tvaudio)
3639 pr_warn("%d: audio absent, no audio device found!\n", btv->c.nr);
3644 void bttv_init_tuner(struct bttv *btv)
3648 if (ADDR_UNSET != bttv_tvcards[btv->c.type].tuner_addr)
3649 addr = bttv_tvcards[btv->c.type].tuner_addr;
3651 if (btv->tuner_type != TUNER_ABSENT) {
3655 if (btv->has_radio)
3656 v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
3657 &btv->c.i2c_adap, "tuner",
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",
3667 tun_setup.type = btv->tuner_type;
3670 if (btv->has_radio)
3673 bttv_call_all(btv, tuner, s_type_addr, &tun_setup);
3676 if (btv->tda9887_conf) {
3680 tda9887_cfg.priv = &btv->tda9887_conf;
3682 bttv_call_all(btv, tuner, s_config, &tda9887_cfg);
3688 static void modtec_eeprom(struct bttv *btv)
3691 btv->tuner_type=TUNER_TEMIC_4066FY5_PAL_I;
3693 btv->c.nr, &eeprom_data[0x1e]);
3695 btv->tuner_type=TUNER_ALPS_TSBB5_PAL_I;
3697 btv->c.nr, &eeprom_data[0x1e]);
3699 btv->tuner_type=TUNER_PHILIPS_NTSC;
3701 btv->c.nr, &eeprom_data[0x1e]);
3704 btv->c.nr, &eeprom_data[0x1e]);
3708 static void hauppauge_eeprom(struct bttv *btv)
3713 btv->tuner_type = tv.tuner_type;
3714 btv->has_radio = tv.has_radio;
3717 btv->c.nr, tv.model);
3725 btv->c.nr,
3726 bttv_tvcards[btv->c.type].name,
3728 btv->c.type = BTTV_BOARD_HAUPPAUGE_IMPACTVCB;
3733 btv->radio_uses_msp_demodulator = 1;
3740 struct bttv *btv = tea->private_data;
3741 struct bttv_tea575x_gpio gpio = btv->tea_gpio;
3749 if (btv->mbox_ior) {
3751 gpio_bits(btv->mbox_iow | btv->mbox_csel, 0);
3754 gpio_bits(btv->mbox_ior | btv->mbox_iow | btv->mbox_csel,
3755 btv->mbox_ior | btv->mbox_iow | btv->mbox_csel);
3761 struct bttv *btv = tea->private_data;
3762 struct bttv_tea575x_gpio gpio = btv->tea_gpio;
3766 if (btv->mbox_ior) {
3768 gpio_bits(btv->mbox_ior | btv->mbox_csel, 0);
3772 if (btv->mbox_ior) {
3774 gpio_bits(btv->mbox_ior | btv->mbox_iow | btv->mbox_csel,
3775 btv->mbox_ior | btv->mbox_iow | btv->mbox_csel);
3788 struct bttv *btv = tea->private_data;
3789 struct bttv_tea575x_gpio gpio = btv->tea_gpio;
3806 static int tea575x_init(struct bttv *btv)
3808 btv->tea.private_data = btv;
3809 btv->tea.ops = &bttv_tea_ops;
3810 if (!snd_tea575x_hw_init(&btv->tea)) {
3811 pr_info("%d: detected TEA575x radio\n", btv->c.nr);
3812 btv->tea.mute = false;
3816 btv->has_tea575x = 0;
3817 btv->has_radio = 0;
3824 static int terratec_active_radio_upgrade(struct bttv *btv)
3826 btv->has_radio = 1;
3827 btv->has_tea575x = 1;
3828 btv->tea_gpio.wren = 4;
3829 btv->tea_gpio.most = 5;
3830 btv->tea_gpio.clk = 3;
3831 btv->tea_gpio.data = 2;
3833 btv->mbox_iow = 1 << 8;
3834 btv->mbox_ior = 1 << 9;
3835 btv->mbox_csel = 1 << 10;
3837 if (!tea575x_init(btv)) {
3838 pr_info("%d: Terratec Active Radio Upgrade found\n", btv->c.nr);
3839 btv->has_saa6588 = 1;
3861 static int pvr_altera_load(struct bttv *btv, const u8 *micro, u32 microlen)
3898 static int pvr_boot(struct bttv *btv)
3903 rc = request_firmware(&fw_entry, "hcwamc.rbf", &btv->c.pci->dev);
3905 pr_warn("%d: no altera firmware [via hotplug]\n", btv->c.nr);
3908 rc = pvr_altera_load(btv, fw_entry->data, fw_entry->size);
3910 btv->c.nr, (rc < 0) ? "failed" : "ok");
3918 static void osprey_eeprom(struct bttv *btv, const u8 ee[256])
3925 if (btv->c.type == BTTV_BOARD_UNKNOWN) {
3994 /* bttv_osprey_540_init(btv); */
4009 btv->c.nr, type);
4016 btv->c.nr, cardid,
4019 if (cardid<0 || btv->c.type == cardid)
4023 if (card[btv->c.nr] < bttv_num_tvcards) {
4025 btv->c.nr);
4028 btv->c.nr, btv->c.type, cardid);
4029 btv->c.type = cardid;
4051 static void avermedia_eeprom(struct bttv *btv)
4058 btv->has_remote = (eeprom_data[0x42] & 0x01);
4072 btv->c.nr, eeprom_data[0x41], eeprom_data[0x42]);
4074 btv->tuner_type = tuner_type;
4080 btv->has_remote ? "yes" : "no");
4091 u32 bttv_tda9880_setnorm(struct bttv *btv, u32 gpiobits)
4094 if (btv->audio_input == TVAUDIO_INPUT_TUNER) {
4095 if (bttv_tvnorms[btv->tvnorm].v4l2_id & V4L2_STD_MN)
4101 gpio_bits(bttv_tvcards[btv->c.type].gpiomask, gpiobits);
4113 static void boot_msp34xx(struct bttv *btv, int pin)
4124 bttv_gpio_tracking(btv,"msp34xx");
4127 btv->c.nr, pin);
4136 static void init_PXC200(struct bttv *btv)
4153 bttv_gpio_tracking(btv,"pxc200");
4167 bttv_I2CWrite(btv,0x5E,0,0x80,1);
4192 tmp=bttv_I2CWrite(btv,0x1E,0,vals[i],1);
4195 vals[i],tmp,bttv_I2CRead(btv,0x1F,NULL));
4233 init_RTV24 (struct bttv *btv)
4239 btv->c.nr);
4253 btv->c.nr, dataRead);
4266 btv->c.nr, dataRead);
4271 pr_info("%d: Adlink RTV-24 initialisation complete\n", btv->c.nr);
4298 init_PCI8604PW(struct bttv *btv)
4302 if ((PCI_SLOT(btv->c.pci->devfn) & ~3) != 0xC) {
4307 if (PCI_SLOT(btv->c.pci->devfn) != 0xD)
4388 static void rv605_muxsel(struct bttv *btv, unsigned int input)
4436 static void tibetCS16_muxsel(struct bttv *btv, unsigned int input)
4442 static void tibetCS16_init(struct bttv *btv)
4476 static void kodicom4400r_write(struct bttv *btv,
4496 static void kodicom4400r_muxsel(struct bttv *btv, unsigned int input)
4502 mctlr = master[btv->c.nr];
4506 yaddr = (btv->c.nr - mctlr->c.nr + 1) & 3; /* the '&' is for safety */
4525 static void kodicom4400r_init(struct bttv *btv)
4534 btv->sw_status[ix] = ix;
4535 kodicom4400r_write(btv, ix, ix, 1);
4542 if ((btv->c.nr<1) || (btv->c.nr>BTTV_MAX-3))
4544 master[btv->c.nr-1] = btv;
4545 master[btv->c.nr] = btv;
4546 master[btv->c.nr+1] = btv;
4547 master[btv->c.nr+2] = btv;
4568 static void xguard_muxsel(struct bttv *btv, unsigned int input)
4578 static void picolo_tetra_init(struct bttv *btv)
4584 static void picolo_tetra_muxsel (struct bttv* btv, unsigned int input)
4587 dprintk("%d : picolo_tetra_muxsel => input = %d\n", btv->c.nr, input);
4626 static void ivc120_muxsel(struct bttv *btv, unsigned int input)
4633 btv->c.nr, input, matrix, key);
4636 bttv_I2CWrite(btv, I2C_TDA8540_ALT3, 0x00,
4638 bttv_I2CWrite(btv, I2C_TDA8540_ALT4, 0x00,
4640 bttv_I2CWrite(btv, I2C_TDA8540_ALT5, 0x00,
4642 bttv_I2CWrite(btv, I2C_TDA8540_ALT6, 0x00,
4646 bttv_I2CWrite(btv, I2C_TDA8540_ALT3, 0x02,
4648 bttv_I2CWrite(btv, I2C_TDA8540_ALT4, 0x02,
4650 bttv_I2CWrite(btv, I2C_TDA8540_ALT5, 0x02,
4652 bttv_I2CWrite(btv, I2C_TDA8540_ALT6, 0x02,
4676 static void PXC200_muxsel(struct bttv *btv, unsigned int input)
4687 rc=bttv_I2CWrite(btv,(PX_I2C_PIC<<1),buf[0],buf[1],1);
4690 btv->c.nr, rc);
4695 rc=bttv_I2CRead(btv,(PX_I2C_PIC<<1),NULL);
4698 btv->c.nr, rc);
4705 /* mux = bttv_tvcards[btv->type].muxsel[input] & 3; */
4713 if (btv->cardid == PX_PXC200A_CARDID) {
4720 if (btv->cardid == PX_PXC200A_CARDID)
4733 if (btv->cardid == PX_PXC200A_CARDID)
4738 pr_debug("%d: setting input channel to:%d\n", btv->c.nr, (int)mux);
4741 static void phytec_muxsel(struct bttv *btv, unsigned int input)
4745 if (input == btv->svhs)
4766 static void gv800s_write(struct bttv *btv,
4795 * of the "master" card. A pointer to this card is stored in master[btv->c.nr].
4808 static void gv800s_muxsel(struct bttv *btv, unsigned int input)
4817 mctlr = master[btv->c.nr];
4822 yaddr = (btv->c.nr - mctlr->c.nr) & 3;
4835 static void gv800s_init(struct bttv *btv)
4845 btv->sw_status[ix] = ix;
4846 gv800s_write(btv, ix, ix, 1);
4850 bttv_I2CWrite(btv, 0x18, 0x5, 0x90, 1);
4852 if (btv->c.nr > BTTV_MAX-4)
4858 master[btv->c.nr] = btv;
4859 master[btv->c.nr+1] = btv;
4860 master[btv->c.nr+2] = btv;
4861 master[btv->c.nr+3] = btv;
4898 int bttv_handle_chipset(struct bttv *btv)
4908 btv->c.nr);
4909 if (vsfx && btv->id >= 878)
4910 pr_info("%d: enabling VSFX\n", btv->c.nr);
4913 btv->c.nr, latency);
4916 if (btv->id < 878) {
4919 btv->triton1 = BT848_INT_ETBF;
4922 pci_read_config_byte(btv->c.pci, BT878_DEVCTRL, &command);
4927 pci_write_config_byte(btv->c.pci, BT878_DEVCTRL, command);
4930 pci_write_config_byte(btv->c.pci, PCI_LATENCY_TIMER, latency);