|
@@ -7798,10 +7798,11 @@ int saa7134_board_init2(struct saa7134_dev *dev)
|
|
|
case SAA7134_BOARD_MD7134:
|
|
|
{
|
|
|
u8 subaddr;
|
|
|
- u8 data[3];
|
|
|
+ u8 data[3], data1[] = { 0x09, 0x9f, 0x86, 0x11};
|
|
|
int ret, tuner_t;
|
|
|
- struct i2c_msg msg[] = {{.addr=0x50, .flags=0, .buf=&subaddr, .len = 1},
|
|
|
- {.addr=0x50, .flags=I2C_M_RD, .buf=data, .len = 3}};
|
|
|
+ struct i2c_msg msg[] = {{.addr = 0x50, .flags = 0, .buf = &subaddr, .len = 1},
|
|
|
+ {.addr = 0x50, .flags = I2C_M_RD, .buf = data, .len = 3}},
|
|
|
+ msg1 = {.addr = 0x61, .flags = 0, .buf = data1, .len = sizeof(data1)};
|
|
|
|
|
|
subaddr= 0x14;
|
|
|
tuner_t = 0;
|
|
@@ -7856,6 +7857,16 @@ int saa7134_board_init2(struct saa7134_dev *dev)
|
|
|
}
|
|
|
|
|
|
pr_info("%s Tuner type is %d\n", dev->name, dev->tuner_type);
|
|
|
+
|
|
|
+ /* The tuner TUNER_PHILIPS_FMD1216ME_MK3 after hardware */
|
|
|
+ /* start has disabled IF and enabled DVB-T. When saa7134 */
|
|
|
+ /* scan I2C devices it will not detect IF tda9887 and can`t*/
|
|
|
+ /* watch TV without software reboot. To solve this problem */
|
|
|
+ /* switch the tuner to analog TV mode manually. */
|
|
|
+ if (dev->tuner_type == TUNER_PHILIPS_FMD1216ME_MK3) {
|
|
|
+ if (i2c_transfer(&dev->i2c_adap, &msg1, 1) != 1)
|
|
|
+ printk(KERN_WARNING "%s: Unable to enable IF of the tuner.\n", dev->name);
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
case SAA7134_BOARD_PHILIPS_EUROPA:
|