Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4aed283c authored by Juergen Gier's avatar Juergen Gier Committed by Mauro Carvalho Chehab
Browse files

[media] saa7134: switch tuner FMD1216ME_MK3 to analog



The tuner FMD1216ME_MK3 suffers the same problem as FMD1216MEX_MK3,
as described in saa7134-cards.c (disabled IF, enabled DVB-T). The
card does work under MS Windows, after soft reboot into Linux it
continues to work, only then tda9887 is loaded as well.
I copied the relevant code from the BEHOLD_H6 section to MD7134.

The CTX946 TV card doesn't detect a signal after cold boot, seems

Signed-off-by: default avatarJuergen Gier <juergen.gier@gmx.de>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 7a60743f
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -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}};
					{.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: