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

Commit 953cafc0 authored by Darron Broad's avatar Darron Broad Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (9268): tuner: add FMD1216MEX tuner



This tuner was already supported by proxy as an FMD1216ME, however,
the MEX uses a different FM Radio IF so this addition is now required.

Signed-off-by: default avatarDarron Broad <darron@kewl.org>
Signed-off-by: default avatarSteven Toth <stoth@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 649e13a9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -75,3 +75,4 @@ tuner=73 - Samsung TCPG 6121P30A
tuner=75 - Philips TEA5761 FM Radio
tuner=76 - Xceive 5000 tuner
tuner=77 - TCL tuner MF02GIP-5N-E
tuner=78 - Philips FMD1216MEX MK3 Hybrid Tuner
+2 −0
Original line number Diff line number Diff line
@@ -493,6 +493,7 @@ static int simple_radio_bandswitch(struct dvb_frontend *fe, u8 *buffer)
	case TUNER_PHILIPS_FM1216ME_MK3:
	case TUNER_PHILIPS_FM1236_MK3:
	case TUNER_PHILIPS_FMD1216ME_MK3:
	case TUNER_PHILIPS_FMD1216MEX_MK3:
	case TUNER_LG_NTSC_TAPE:
	case TUNER_PHILIPS_FM1256_IH3:
	case TUNER_TCL_MF02GIP_5N:
@@ -767,6 +768,7 @@ static void simple_set_dvb(struct dvb_frontend *fe, u8 *buf,

	switch (priv->type) {
	case TUNER_PHILIPS_FMD1216ME_MK3:
	case TUNER_PHILIPS_FMD1216MEX_MK3:
		if (params->u.ofdm.bandwidth == BANDWIDTH_8_MHZ &&
		    params->frequency >= 158870000)
			buf[3] |= 0x08;
+32 −1
Original line number Diff line number Diff line
@@ -946,7 +946,7 @@ static struct tuner_params tuner_tena_9533_di_params[] = {
	},
};

/* ------------ TUNER_PHILIPS_FMD1216ME_MK3 - Philips PAL ------------ */
/* ------------ TUNER_PHILIPS_FMD1216ME(X)_MK3 - Philips PAL ------------ */

static struct tuner_range tuner_philips_fmd1216me_mk3_pal_ranges[] = {
	{ 16 * 160.00 /*MHz*/, 0x86, 0x51, },
@@ -984,6 +984,27 @@ static struct tuner_params tuner_philips_fmd1216me_mk3_params[] = {
	},
};

static struct tuner_params tuner_philips_fmd1216mex_mk3_params[] = {
	{
		.type   = TUNER_PARAM_TYPE_PAL,
		.ranges = tuner_philips_fmd1216me_mk3_pal_ranges,
		.count  = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_pal_ranges),
		.has_tda9887 = 1,
		.port1_active = 1,
		.port2_active = 1,
		.port2_fm_high_sensitivity = 1,
		.port2_invert_for_secam_lc = 1,
		.port1_set_for_fm_mono = 1,
		.radio_if = 1,
		.fm_gain_normal = 1,
	},
	{
		.type   = TUNER_PARAM_TYPE_DIGITAL,
		.ranges = tuner_philips_fmd1216me_mk3_dvb_ranges,
		.count  = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_dvb_ranges),
		.iffreq = 16 * 36.125, /*MHz*/
	},
};

/* ------ TUNER_LG_TDVS_H06XF - LG INNOTEK / INFINEON ATSC ----- */

@@ -1663,6 +1684,16 @@ struct tunertype tuners[] = {
		.params = tuner_tcl_mf02gip_5n_params,
		.count  = ARRAY_SIZE(tuner_tcl_mf02gip_5n_params),
	},
	[TUNER_PHILIPS_FMD1216MEX_MK3] = { /* Philips PAL */
		.name   = "Philips FMD1216MEX MK3 Hybrid Tuner",
		.params = tuner_philips_fmd1216mex_mk3_params,
		.count  = ARRAY_SIZE(tuner_philips_fmd1216mex_mk3_params),
		.min = 16 *  50.87,
		.max = 16 * 858.00,
		.stepsize = 166667,
		.initdata = tua603x_agc112,
		.sleepdata = (u8[]){ 4, 0x9c, 0x60, 0x85, 0x54 },
	},
};
EXPORT_SYMBOL(tuners);

+1 −1
Original line number Diff line number Diff line
@@ -242,7 +242,7 @@ hauppauge_tuner[] =
	{ TUNER_ABSENT,        		"TCL M2523_3DBH_E"},
	{ TUNER_ABSENT,        		"TCL M2523_3DIH_E"},
	{ TUNER_ABSENT,        		"TCL MFPE05_2_U"},
	{ TUNER_PHILIPS_FMD1216ME_MK3,	"Philips FMD1216MEX"},
	{ TUNER_PHILIPS_FMD1216MEX_MK3,	"Philips FMD1216MEX"},
	{ TUNER_ABSENT,        		"Philips FRH2036B"},
	{ TUNER_ABSENT,        		"Panasonic ENGF75_01GF"},
	{ TUNER_ABSENT,        		"MaxLinear MXL5005"},
+1 −0
Original line number Diff line number Diff line
@@ -123,6 +123,7 @@
#define TUNER_TEA5761			75	/* Only FM Radio Tuner */
#define TUNER_XC5000			76	/* Xceive Silicon Tuner */
#define TUNER_TCL_MF02GIP_5N		77	/* TCL MF02GIP_5N */
#define TUNER_PHILIPS_FMD1216MEX_MK3	78

/* tv card specific */
#define TDA9887_PRESENT 		(1<<0)