Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 155793
b: refs/heads/master
c: 2c90577
h: refs/heads/master
i:
  155791: 4c612ea
v: v3
  • Loading branch information
Hans Verkuil authored and Mauro Carvalho Chehab committed Jul 24, 2009
1 parent 8fbb1a8 commit c7df562
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 45 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 68b7f7616add4b1de0fe75015ba3884d2d9ff796
refs/heads/master: 2c90577841a76f1935ff3437ffb552b41f5c28fa
92 changes: 48 additions & 44 deletions trunk/drivers/media/video/bt8xx/bttv-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -3324,8 +3324,6 @@ void __devinit bttv_init_card1(struct bttv *btv)
/* initialization part two -- after registering i2c bus */
void __devinit bttv_init_card2(struct bttv *btv)
{
int addr=ADDR_UNSET;

btv->tuner_type = UNSET;

if (BTTV_BOARD_UNKNOWN == btv->c.type) {
Expand Down Expand Up @@ -3470,9 +3468,6 @@ void __devinit bttv_init_card2(struct bttv *btv)
btv->pll.pll_current = -1;

/* tuner configuration (from card list / autodetect / insmod option) */
if (ADDR_UNSET != bttv_tvcards[btv->c.type].tuner_addr)
addr = bttv_tvcards[btv->c.type].tuner_addr;

if (UNSET != bttv_tvcards[btv->c.type].tuner_type)
if (UNSET == btv->tuner_type)
btv->tuner_type = bttv_tvcards[btv->c.type].tuner_type;
Expand All @@ -3496,40 +3491,6 @@ void __devinit bttv_init_card2(struct bttv *btv)
if (UNSET == btv->tuner_type)
btv->tuner_type = TUNER_ABSENT;

if (btv->tuner_type != TUNER_ABSENT) {
struct tuner_setup tun_setup;

/* Load tuner module before issuing tuner config call! */
if (bttv_tvcards[btv->c.type].has_radio)
v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
&btv->c.i2c_adap, "tuner", "tuner",
v4l2_i2c_tuner_addrs(ADDRS_RADIO));
v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
&btv->c.i2c_adap, "tuner", "tuner",
v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
&btv->c.i2c_adap, "tuner", "tuner",
v4l2_i2c_tuner_addrs(ADDRS_TV_WITH_DEMOD));

tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV;
tun_setup.type = btv->tuner_type;
tun_setup.addr = addr;

if (bttv_tvcards[btv->c.type].has_radio)
tun_setup.mode_mask |= T_RADIO;

bttv_call_all(btv, tuner, s_type_addr, &tun_setup);
}

if (btv->tda9887_conf) {
struct v4l2_priv_tun_config tda9887_cfg;

tda9887_cfg.tuner = TUNER_TDA9887;
tda9887_cfg.priv = &btv->tda9887_conf;

bttv_call_all(btv, tuner, s_config, &tda9887_cfg);
}

btv->dig = bttv_tvcards[btv->c.type].has_dig_in ?
bttv_tvcards[btv->c.type].video_inputs - 1 : UNSET;
btv->svhs = bttv_tvcards[btv->c.type].svhs == NO_SVHS ?
Expand All @@ -3540,15 +3501,15 @@ void __devinit bttv_init_card2(struct bttv *btv)
btv->has_remote = remote[btv->c.nr];

if (bttv_tvcards[btv->c.type].has_radio)
btv->has_radio=1;
btv->has_radio = 1;
if (bttv_tvcards[btv->c.type].has_remote)
btv->has_remote=1;
btv->has_remote = 1;
if (!bttv_tvcards[btv->c.type].no_gpioirq)
btv->gpioirq=1;
btv->gpioirq = 1;
if (bttv_tvcards[btv->c.type].volume_gpio)
btv->volume_gpio=bttv_tvcards[btv->c.type].volume_gpio;
btv->volume_gpio = bttv_tvcards[btv->c.type].volume_gpio;
if (bttv_tvcards[btv->c.type].audio_mode_gpio)
btv->audio_mode_gpio=bttv_tvcards[btv->c.type].audio_mode_gpio;
btv->audio_mode_gpio = bttv_tvcards[btv->c.type].audio_mode_gpio;

if (btv->tuner_type == TUNER_ABSENT)
return; /* no tuner or related drivers to load */
Expand Down Expand Up @@ -3666,6 +3627,49 @@ void __devinit bttv_init_card2(struct bttv *btv)
}


/* initialize the tuner */
void __devinit bttv_init_tuner(struct bttv *btv)
{
int addr = ADDR_UNSET;

if (ADDR_UNSET != bttv_tvcards[btv->c.type].tuner_addr)
addr = bttv_tvcards[btv->c.type].tuner_addr;

if (btv->tuner_type != TUNER_ABSENT) {
struct tuner_setup tun_setup;

/* Load tuner module before issuing tuner config call! */
if (bttv_tvcards[btv->c.type].has_radio)
v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
&btv->c.i2c_adap, "tuner", "tuner",
v4l2_i2c_tuner_addrs(ADDRS_RADIO));
v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
&btv->c.i2c_adap, "tuner", "tuner",
v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
&btv->c.i2c_adap, "tuner", "tuner",
v4l2_i2c_tuner_addrs(ADDRS_TV_WITH_DEMOD));

tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV;
tun_setup.type = btv->tuner_type;
tun_setup.addr = addr;

if (bttv_tvcards[btv->c.type].has_radio)
tun_setup.mode_mask |= T_RADIO;

bttv_call_all(btv, tuner, s_type_addr, &tun_setup);
}

if (btv->tda9887_conf) {
struct v4l2_priv_tun_config tda9887_cfg;

tda9887_cfg.tuner = TUNER_TDA9887;
tda9887_cfg.priv = &btv->tda9887_conf;

bttv_call_all(btv, tuner, s_config, &tda9887_cfg);
}
}

/* ----------------------------------------------------------------------- */

static void modtec_eeprom(struct bttv *btv)
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/media/video/bt8xx/bttv-driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -4419,6 +4419,7 @@ static int __devinit bttv_probe(struct pci_dev *dev,

/* some card-specific stuff (needs working i2c) */
bttv_init_card2(btv);
bttv_init_tuner(btv);
init_irqreg(btv);

/* register video4linux + input */
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/media/video/bt8xx/bttv.h
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,7 @@ extern struct tvcard bttv_tvcards[];
extern void bttv_idcard(struct bttv *btv);
extern void bttv_init_card1(struct bttv *btv);
extern void bttv_init_card2(struct bttv *btv);
extern void bttv_init_tuner(struct bttv *btv);

/* card-specific funtions */
extern void tea5757_set_freq(struct bttv *btv, unsigned short freq);
Expand Down

0 comments on commit c7df562

Please sign in to comment.