Lines 50-56
Link Here
|
50 |
.tuner_type = TUNER_ABSENT, |
50 |
.tuner_type = TUNER_ABSENT, |
51 |
.radio_type = UNSET, |
51 |
.radio_type = UNSET, |
52 |
.tuner_addr = ADDR_UNSET, |
52 |
.tuner_addr = ADDR_UNSET, |
53 |
.radio_addr = ADDR_UNSET, |
53 |
.radio_addr = 0x60, |
54 |
|
54 |
|
55 |
.inputs = {{ |
55 |
.inputs = {{ |
56 |
.name = "default", |
56 |
.name = "default", |
Lines 5176-5189
Link Here
|
5176 |
return 0; |
5176 |
return 0; |
5177 |
} |
5177 |
} |
5178 |
|
5178 |
|
|
|
5179 |
static void saa7134_tuner_setup(struct saa7134_dev *dev) |
5180 |
{ |
5181 |
struct tuner_setup tun_setup; |
5182 |
unsigned int mode_mask = T_RADIO | |
5183 |
T_ANALOG_TV | |
5184 |
T_DIGITAL_TV; |
5185 |
|
5186 |
memset(&tun_setup, 0, sizeof(tun_setup)); |
5187 |
tun_setup.tuner_callback = saa7134_tuner_callback; |
5188 |
|
5189 |
if (saa7134_boards[dev->board].radio_type != UNSET) { |
5190 |
tun_setup.type = saa7134_boards[dev->board].radio_type; |
5191 |
tun_setup.addr = saa7134_boards[dev->board].radio_addr; |
5192 |
|
5193 |
tun_setup.mode_mask = T_RADIO; |
5194 |
|
5195 |
saa7134_i2c_call_clients(dev, TUNER_SET_TYPE_ADDR, &tun_setup); |
5196 |
mode_mask &= ~T_RADIO; |
5197 |
} |
5198 |
|
5199 |
if ((dev->tuner_type != TUNER_ABSENT) && (dev->tuner_type != UNSET)) { |
5200 |
tun_setup.type = dev->tuner_type; |
5201 |
tun_setup.addr = dev->tuner_addr; |
5202 |
tun_setup.config = saa7134_boards[dev->board].tuner_config; |
5203 |
tun_setup.tuner_callback = saa7134_tuner_callback; |
5204 |
|
5205 |
tun_setup.mode_mask = mode_mask; |
5206 |
|
5207 |
saa7134_i2c_call_clients(dev, TUNER_SET_TYPE_ADDR, &tun_setup); |
5208 |
} |
5209 |
|
5210 |
if (dev->tda9887_conf) { |
5211 |
struct v4l2_priv_tun_config tda9887_cfg; |
5212 |
|
5213 |
tda9887_cfg.tuner = TUNER_TDA9887; |
5214 |
tda9887_cfg.priv = &dev->tda9887_conf; |
5215 |
|
5216 |
saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG, |
5217 |
&tda9887_cfg); |
5218 |
} |
5219 |
} |
5220 |
|
5179 |
/* stuff which needs working i2c */ |
5221 |
/* stuff which needs working i2c */ |
5180 |
int saa7134_board_init2(struct saa7134_dev *dev) |
5222 |
int saa7134_board_init2(struct saa7134_dev *dev) |
5181 |
{ |
5223 |
{ |
5182 |
unsigned char buf; |
5224 |
unsigned char buf; |
5183 |
int board; |
5225 |
int board; |
5184 |
struct tuner_setup tun_setup; |
5226 |
|
5185 |
tun_setup.config = 0; |
5227 |
dev->tuner_type = saa7134_boards[dev->board].tuner_type; |
5186 |
tun_setup.tuner_callback = saa7134_tuner_callback; |
5228 |
dev->tuner_addr = saa7134_boards[dev->board].tuner_addr; |
5187 |
|
5229 |
|
5188 |
switch (dev->board) { |
5230 |
switch (dev->board) { |
5189 |
case SAA7134_BOARD_BMK_MPEX_NOTUNER: |
5231 |
case SAA7134_BOARD_BMK_MPEX_NOTUNER: |
Lines 5198-5211
Link Here
|
5198 |
printk("%s: board type fixup: %s\n", dev->name, |
5240 |
printk("%s: board type fixup: %s\n", dev->name, |
5199 |
saa7134_boards[dev->board].name); |
5241 |
saa7134_boards[dev->board].name); |
5200 |
dev->tuner_type = saa7134_boards[dev->board].tuner_type; |
5242 |
dev->tuner_type = saa7134_boards[dev->board].tuner_type; |
5201 |
|
|
|
5202 |
if (TUNER_ABSENT != dev->tuner_type) { |
5203 |
tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV; |
5204 |
tun_setup.type = dev->tuner_type; |
5205 |
tun_setup.addr = ADDR_UNSET; |
5206 |
|
5207 |
saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR, &tun_setup); |
5208 |
} |
5209 |
break; |
5243 |
break; |
5210 |
case SAA7134_BOARD_MD7134: |
5244 |
case SAA7134_BOARD_MD7134: |
5211 |
{ |
5245 |
{ |
Lines 5261-5285
Link Here
|
5261 |
} |
5295 |
} |
5262 |
|
5296 |
|
5263 |
printk(KERN_INFO "%s Tuner type is %d\n", dev->name, dev->tuner_type); |
5297 |
printk(KERN_INFO "%s Tuner type is %d\n", dev->name, dev->tuner_type); |
5264 |
if (dev->tuner_type == TUNER_PHILIPS_FMD1216ME_MK3) { |
|
|
5265 |
struct v4l2_priv_tun_config tda9887_cfg; |
5266 |
|
5267 |
tda9887_cfg.tuner = TUNER_TDA9887; |
5268 |
tda9887_cfg.priv = &dev->tda9887_conf; |
5269 |
|
5270 |
dev->tda9887_conf = TDA9887_PRESENT | |
5271 |
TDA9887_PORT1_ACTIVE | |
5272 |
TDA9887_PORT2_ACTIVE; |
5273 |
|
5274 |
saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG, |
5275 |
&tda9887_cfg); |
5276 |
} |
5277 |
|
5278 |
tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV; |
5279 |
tun_setup.type = dev->tuner_type; |
5280 |
tun_setup.addr = ADDR_UNSET; |
5281 |
|
5282 |
saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup); |
5283 |
} |
5298 |
} |
5284 |
break; |
5299 |
break; |
5285 |
case SAA7134_BOARD_PHILIPS_EUROPA: |
5300 |
case SAA7134_BOARD_PHILIPS_EUROPA: |
Lines 5292-5303
Link Here
|
5292 |
u8 data[] = { 0x07, 0x02}; |
5307 |
u8 data[] = { 0x07, 0x02}; |
5293 |
struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; |
5308 |
struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; |
5294 |
i2c_transfer(&dev->i2c_adap, &msg, 1); |
5309 |
i2c_transfer(&dev->i2c_adap, &msg, 1); |
5295 |
|
|
|
5296 |
tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV; |
5297 |
tun_setup.type = dev->tuner_type; |
5298 |
tun_setup.addr = dev->tuner_addr; |
5299 |
|
5300 |
saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup); |
5301 |
} |
5310 |
} |
5302 |
break; |
5311 |
break; |
5303 |
case SAA7134_BOARD_PHILIPS_TIGER: |
5312 |
case SAA7134_BOARD_PHILIPS_TIGER: |
Lines 5310-5323
Link Here
|
5310 |
printk(KERN_INFO "%s: Reconfigured board as %s\n", |
5319 |
printk(KERN_INFO "%s: Reconfigured board as %s\n", |
5311 |
dev->name, saa7134_boards[dev->board].name); |
5320 |
dev->name, saa7134_boards[dev->board].name); |
5312 |
} |
5321 |
} |
5313 |
if(dev->board == SAA7134_BOARD_PHILIPS_TIGER_S) { |
5322 |
if (dev->board == SAA7134_BOARD_PHILIPS_TIGER_S) { |
5314 |
tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV; |
5323 |
dev->tuner_type = TUNER_PHILIPS_TDA8290; |
5315 |
tun_setup.type = TUNER_PHILIPS_TDA8290; |
5324 |
|
5316 |
tun_setup.addr = 0x4b; |
5325 |
saa7134_tuner_setup(dev); |
5317 |
tun_setup.config = 2; |
|
|
5318 |
|
5326 |
|
5319 |
saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup); |
|
|
5320 |
data[2] = 0x68; |
5327 |
data[2] = 0x68; |
|
|
5328 |
i2c_transfer(&dev->i2c_adap, &msg, 1); |
5329 |
|
5330 |
/* Tuner setup is handled before I2C transfer. |
5331 |
Due to that, there's no need to do it later |
5332 |
*/ |
5333 |
return 0; |
5321 |
} |
5334 |
} |
5322 |
i2c_transfer(&dev->i2c_adap, &msg, 1); |
5335 |
i2c_transfer(&dev->i2c_adap, &msg, 1); |
5323 |
} |
5336 |
} |
Lines 5403-5408
Link Here
|
5403 |
} |
5416 |
} |
5404 |
break; |
5417 |
break; |
5405 |
} |
5418 |
} |
|
|
5419 |
saa7134_tuner_setup(dev); |
5406 |
return 0; |
5420 |
return 0; |
5407 |
} |
5421 |
} |
5408 |
|
5422 |
|