Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Darron Broad <darron@kewl.org>
Signed-off-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

authored by

Darron Broad and committed by
Mauro Carvalho Chehab
953cafc0 649e13a9

+37 -2
+1
Documentation/video4linux/CARDLIST.tuner
··· 75 75 tuner=75 - Philips TEA5761 FM Radio 76 76 tuner=76 - Xceive 5000 tuner 77 77 tuner=77 - TCL tuner MF02GIP-5N-E 78 + tuner=78 - Philips FMD1216MEX MK3 Hybrid Tuner
+2
drivers/media/common/tuners/tuner-simple.c
··· 493 493 case TUNER_PHILIPS_FM1216ME_MK3: 494 494 case TUNER_PHILIPS_FM1236_MK3: 495 495 case TUNER_PHILIPS_FMD1216ME_MK3: 496 + case TUNER_PHILIPS_FMD1216MEX_MK3: 496 497 case TUNER_LG_NTSC_TAPE: 497 498 case TUNER_PHILIPS_FM1256_IH3: 498 499 case TUNER_TCL_MF02GIP_5N: ··· 768 767 769 768 switch (priv->type) { 770 769 case TUNER_PHILIPS_FMD1216ME_MK3: 770 + case TUNER_PHILIPS_FMD1216MEX_MK3: 771 771 if (params->u.ofdm.bandwidth == BANDWIDTH_8_MHZ && 772 772 params->frequency >= 158870000) 773 773 buf[3] |= 0x08;
+32 -1
drivers/media/common/tuners/tuner-types.c
··· 946 946 }, 947 947 }; 948 948 949 - /* ------------ TUNER_PHILIPS_FMD1216ME_MK3 - Philips PAL ------------ */ 949 + /* ------------ TUNER_PHILIPS_FMD1216ME(X)_MK3 - Philips PAL ------------ */ 950 950 951 951 static struct tuner_range tuner_philips_fmd1216me_mk3_pal_ranges[] = { 952 952 { 16 * 160.00 /*MHz*/, 0x86, 0x51, }, ··· 984 984 }, 985 985 }; 986 986 987 + static struct tuner_params tuner_philips_fmd1216mex_mk3_params[] = { 988 + { 989 + .type = TUNER_PARAM_TYPE_PAL, 990 + .ranges = tuner_philips_fmd1216me_mk3_pal_ranges, 991 + .count = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_pal_ranges), 992 + .has_tda9887 = 1, 993 + .port1_active = 1, 994 + .port2_active = 1, 995 + .port2_fm_high_sensitivity = 1, 996 + .port2_invert_for_secam_lc = 1, 997 + .port1_set_for_fm_mono = 1, 998 + .radio_if = 1, 999 + .fm_gain_normal = 1, 1000 + }, 1001 + { 1002 + .type = TUNER_PARAM_TYPE_DIGITAL, 1003 + .ranges = tuner_philips_fmd1216me_mk3_dvb_ranges, 1004 + .count = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_dvb_ranges), 1005 + .iffreq = 16 * 36.125, /*MHz*/ 1006 + }, 1007 + }; 987 1008 988 1009 /* ------ TUNER_LG_TDVS_H06XF - LG INNOTEK / INFINEON ATSC ----- */ 989 1010 ··· 1683 1662 .name = "TCL tuner MF02GIP-5N-E", 1684 1663 .params = tuner_tcl_mf02gip_5n_params, 1685 1664 .count = ARRAY_SIZE(tuner_tcl_mf02gip_5n_params), 1665 + }, 1666 + [TUNER_PHILIPS_FMD1216MEX_MK3] = { /* Philips PAL */ 1667 + .name = "Philips FMD1216MEX MK3 Hybrid Tuner", 1668 + .params = tuner_philips_fmd1216mex_mk3_params, 1669 + .count = ARRAY_SIZE(tuner_philips_fmd1216mex_mk3_params), 1670 + .min = 16 * 50.87, 1671 + .max = 16 * 858.00, 1672 + .stepsize = 166667, 1673 + .initdata = tua603x_agc112, 1674 + .sleepdata = (u8[]){ 4, 0x9c, 0x60, 0x85, 0x54 }, 1686 1675 }, 1687 1676 }; 1688 1677 EXPORT_SYMBOL(tuners);
+1 -1
drivers/media/video/tveeprom.c
··· 242 242 { TUNER_ABSENT, "TCL M2523_3DBH_E"}, 243 243 { TUNER_ABSENT, "TCL M2523_3DIH_E"}, 244 244 { TUNER_ABSENT, "TCL MFPE05_2_U"}, 245 - { TUNER_PHILIPS_FMD1216ME_MK3, "Philips FMD1216MEX"}, 245 + { TUNER_PHILIPS_FMD1216MEX_MK3, "Philips FMD1216MEX"}, 246 246 { TUNER_ABSENT, "Philips FRH2036B"}, 247 247 { TUNER_ABSENT, "Panasonic ENGF75_01GF"}, 248 248 { TUNER_ABSENT, "MaxLinear MXL5005"},
+1
include/media/tuner.h
··· 123 123 #define TUNER_TEA5761 75 /* Only FM Radio Tuner */ 124 124 #define TUNER_XC5000 76 /* Xceive Silicon Tuner */ 125 125 #define TUNER_TCL_MF02GIP_5N 77 /* TCL MF02GIP_5N */ 126 + #define TUNER_PHILIPS_FMD1216MEX_MK3 78 126 127 127 128 /* tv card specific */ 128 129 #define TDA9887_PRESENT (1<<0)