V4L/DVB (9268): tuner: add FMD1216MEX tuner
Darron Broad [Wed, 15 Oct 2008 17:14:30 +0000 (14:14 -0300)]
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>

Documentation/video4linux/CARDLIST.tuner
drivers/media/common/tuners/tuner-simple.c
drivers/media/common/tuners/tuner-types.c
drivers/media/video/tveeprom.c
include/media/tuner.h

index 30bbdda..691d2f3 100644 (file)
@@ -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
index 2a1aac1..fb3f3b3 100644 (file)
@@ -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;
index 04961a1..7c0bc06 100644 (file)
@@ -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);
 
index bcc32fa..3b0b84c 100644 (file)
@@ -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"},
index 67c1f51..7d4e2db 100644 (file)
 #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)