Loading Documentation/video4linux/CARDLIST.tuner +1 −0 Original line number Diff line number Diff line Loading @@ -77,3 +77,4 @@ tuner=76 - Xceive 5000 tuner tuner=77 - TCL tuner MF02GIP-5N-E tuner=78 - Philips FMD1216MEX MK3 Hybrid Tuner tuner=79 - Philips PAL/SECAM multi (FM1216 MK5) tuner=80 - Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough drivers/media/common/tuners/tuner-simple.c +27 −11 Original line number Diff line number Diff line Loading @@ -416,6 +416,24 @@ static int simple_std_setup(struct dvb_frontend *fe, return 0; } static int simple_set_aux_byte(struct dvb_frontend *fe, u8 config, u8 aux) { struct tuner_simple_priv *priv = fe->tuner_priv; int rc; u8 buffer[2]; buffer[0] = (config & ~0x38) | 0x18; buffer[1] = aux; tuner_dbg("setting aux byte: 0x%02x 0x%02x\n", buffer[0], buffer[1]); rc = tuner_i2c_xfer_send(&priv->i2c_props, buffer, 2); if (2 != rc) tuner_warn("i2c i/o error: rc == %d (should be 2)\n", rc); return rc == 2 ? 0 : rc; } static int simple_post_tune(struct dvb_frontend *fe, u8 *buffer, u16 div, u8 config, u8 cb) { Loading @@ -424,17 +442,10 @@ static int simple_post_tune(struct dvb_frontend *fe, u8 *buffer, switch (priv->type) { case TUNER_LG_TDVS_H06XF: /* Set the Auxiliary Byte. */ buffer[0] = buffer[2]; buffer[0] &= ~0x20; buffer[0] |= 0x18; buffer[1] = 0x20; tuner_dbg("tv 0x%02x 0x%02x\n", buffer[0], buffer[1]); rc = tuner_i2c_xfer_send(&priv->i2c_props, buffer, 2); if (2 != rc) tuner_warn("i2c i/o error: rc == %d " "(should be 2)\n", rc); simple_set_aux_byte(fe, config, 0x20); break; case TUNER_PHILIPS_FQ1216LME_MK3: simple_set_aux_byte(fe, config, 0x60); /* External AGC */ break; case TUNER_MICROTUNE_4042FI5: { Loading Loading @@ -506,6 +517,11 @@ static int simple_radio_bandswitch(struct dvb_frontend *fe, u8 *buffer) case TUNER_THOMSON_DTT761X: buffer[3] = 0x39; break; case TUNER_PHILIPS_FQ1216LME_MK3: tuner_err("This tuner doesn't have FM\n"); /* Set the low band for sanity, since it covers 88-108 MHz */ buffer[3] = 0x01; break; case TUNER_MICROTUNE_4049FM5: default: buffer[3] = 0xa4; Loading drivers/media/common/tuners/tuner-types.c +29 −0 Original line number Diff line number Diff line Loading @@ -1279,6 +1279,28 @@ static struct tuner_params tuner_tcl_mf02gip_5n_params[] = { }, }; /* 80-89 */ /* --------- TUNER_PHILIPS_FQ1216LME_MK3 -- active loopthrough, no FM ------- */ static struct tuner_params tuner_fq1216lme_mk3_params[] = { { .type = TUNER_PARAM_TYPE_PAL, .ranges = tuner_fm1216me_mk3_pal_ranges, .count = ARRAY_SIZE(tuner_fm1216me_mk3_pal_ranges), .cb_first_if_lower_freq = 1, /* not specified, but safe to do */ .has_tda9887 = 1, /* TDA9886 */ .port1_active = 1, .port2_active = 1, .port2_invert_for_secam_lc = 1, .default_top_low = 4, .default_top_mid = 4, .default_top_high = 4, .default_top_secam_low = 4, .default_top_secam_mid = 4, .default_top_secam_high = 4, }, }; /* --------------------------------------------------------------------- */ struct tunertype tuners[] = { Loading Loading @@ -1724,6 +1746,13 @@ struct tunertype tuners[] = { .params = tuner_fm1216mk5_params, .count = ARRAY_SIZE(tuner_fm1216mk5_params), }, /* 80-89 */ [TUNER_PHILIPS_FQ1216LME_MK3] = { /* PAL/SECAM, Loop-thru, no FM */ .name = "Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough", .params = tuner_fq1216lme_mk3_params, .count = ARRAY_SIZE(tuner_fq1216lme_mk3_params), }, }; EXPORT_SYMBOL(tuners); Loading drivers/media/video/tveeprom.c +2 −2 Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ hauppauge_tuner[] = { TUNER_ABSENT, "Silicon TDA8275C1 8290 FM"}, { TUNER_ABSENT, "Thompson DTT757"}, /* 80-89 */ { TUNER_PHILIPS_FM1216ME_MK3, "Philips FQ1216LME MK3"}, { TUNER_PHILIPS_FQ1216LME_MK3, "Philips FQ1216LME MK3"}, { TUNER_LG_PAL_NEW_TAPC, "LG TAPC G701D"}, { TUNER_LG_NTSC_NEW_TAPC, "LG TAPC H791F"}, { TUNER_LG_PAL_NEW_TAPC, "TCL 2002MB 3"}, Loading Loading @@ -229,7 +229,7 @@ hauppauge_tuner[] = { TUNER_ABSENT, "Samsung THPD5222FG30A"}, /* 120-129 */ { TUNER_XC2028, "Xceive XC3028"}, { TUNER_ABSENT, "Philips FQ1216LME MK5"}, { TUNER_PHILIPS_FQ1216LME_MK3, "Philips FQ1216LME MK5"}, { TUNER_ABSENT, "Philips FQD1216LME"}, { TUNER_ABSENT, "Conexant CX24118A"}, { TUNER_ABSENT, "TCL DMF11WIP"}, Loading include/media/tuner.h +1 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ #define TUNER_TCL_MF02GIP_5N 77 /* TCL MF02GIP_5N */ #define TUNER_PHILIPS_FMD1216MEX_MK3 78 #define TUNER_PHILIPS_FM1216MK5 79 #define TUNER_PHILIPS_FQ1216LME_MK3 80 /* Active loopthrough, no FM */ /* tv card specific */ #define TDA9887_PRESENT (1<<0) Loading Loading
Documentation/video4linux/CARDLIST.tuner +1 −0 Original line number Diff line number Diff line Loading @@ -77,3 +77,4 @@ tuner=76 - Xceive 5000 tuner tuner=77 - TCL tuner MF02GIP-5N-E tuner=78 - Philips FMD1216MEX MK3 Hybrid Tuner tuner=79 - Philips PAL/SECAM multi (FM1216 MK5) tuner=80 - Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough
drivers/media/common/tuners/tuner-simple.c +27 −11 Original line number Diff line number Diff line Loading @@ -416,6 +416,24 @@ static int simple_std_setup(struct dvb_frontend *fe, return 0; } static int simple_set_aux_byte(struct dvb_frontend *fe, u8 config, u8 aux) { struct tuner_simple_priv *priv = fe->tuner_priv; int rc; u8 buffer[2]; buffer[0] = (config & ~0x38) | 0x18; buffer[1] = aux; tuner_dbg("setting aux byte: 0x%02x 0x%02x\n", buffer[0], buffer[1]); rc = tuner_i2c_xfer_send(&priv->i2c_props, buffer, 2); if (2 != rc) tuner_warn("i2c i/o error: rc == %d (should be 2)\n", rc); return rc == 2 ? 0 : rc; } static int simple_post_tune(struct dvb_frontend *fe, u8 *buffer, u16 div, u8 config, u8 cb) { Loading @@ -424,17 +442,10 @@ static int simple_post_tune(struct dvb_frontend *fe, u8 *buffer, switch (priv->type) { case TUNER_LG_TDVS_H06XF: /* Set the Auxiliary Byte. */ buffer[0] = buffer[2]; buffer[0] &= ~0x20; buffer[0] |= 0x18; buffer[1] = 0x20; tuner_dbg("tv 0x%02x 0x%02x\n", buffer[0], buffer[1]); rc = tuner_i2c_xfer_send(&priv->i2c_props, buffer, 2); if (2 != rc) tuner_warn("i2c i/o error: rc == %d " "(should be 2)\n", rc); simple_set_aux_byte(fe, config, 0x20); break; case TUNER_PHILIPS_FQ1216LME_MK3: simple_set_aux_byte(fe, config, 0x60); /* External AGC */ break; case TUNER_MICROTUNE_4042FI5: { Loading Loading @@ -506,6 +517,11 @@ static int simple_radio_bandswitch(struct dvb_frontend *fe, u8 *buffer) case TUNER_THOMSON_DTT761X: buffer[3] = 0x39; break; case TUNER_PHILIPS_FQ1216LME_MK3: tuner_err("This tuner doesn't have FM\n"); /* Set the low band for sanity, since it covers 88-108 MHz */ buffer[3] = 0x01; break; case TUNER_MICROTUNE_4049FM5: default: buffer[3] = 0xa4; Loading
drivers/media/common/tuners/tuner-types.c +29 −0 Original line number Diff line number Diff line Loading @@ -1279,6 +1279,28 @@ static struct tuner_params tuner_tcl_mf02gip_5n_params[] = { }, }; /* 80-89 */ /* --------- TUNER_PHILIPS_FQ1216LME_MK3 -- active loopthrough, no FM ------- */ static struct tuner_params tuner_fq1216lme_mk3_params[] = { { .type = TUNER_PARAM_TYPE_PAL, .ranges = tuner_fm1216me_mk3_pal_ranges, .count = ARRAY_SIZE(tuner_fm1216me_mk3_pal_ranges), .cb_first_if_lower_freq = 1, /* not specified, but safe to do */ .has_tda9887 = 1, /* TDA9886 */ .port1_active = 1, .port2_active = 1, .port2_invert_for_secam_lc = 1, .default_top_low = 4, .default_top_mid = 4, .default_top_high = 4, .default_top_secam_low = 4, .default_top_secam_mid = 4, .default_top_secam_high = 4, }, }; /* --------------------------------------------------------------------- */ struct tunertype tuners[] = { Loading Loading @@ -1724,6 +1746,13 @@ struct tunertype tuners[] = { .params = tuner_fm1216mk5_params, .count = ARRAY_SIZE(tuner_fm1216mk5_params), }, /* 80-89 */ [TUNER_PHILIPS_FQ1216LME_MK3] = { /* PAL/SECAM, Loop-thru, no FM */ .name = "Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough", .params = tuner_fq1216lme_mk3_params, .count = ARRAY_SIZE(tuner_fq1216lme_mk3_params), }, }; EXPORT_SYMBOL(tuners); Loading
drivers/media/video/tveeprom.c +2 −2 Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ hauppauge_tuner[] = { TUNER_ABSENT, "Silicon TDA8275C1 8290 FM"}, { TUNER_ABSENT, "Thompson DTT757"}, /* 80-89 */ { TUNER_PHILIPS_FM1216ME_MK3, "Philips FQ1216LME MK3"}, { TUNER_PHILIPS_FQ1216LME_MK3, "Philips FQ1216LME MK3"}, { TUNER_LG_PAL_NEW_TAPC, "LG TAPC G701D"}, { TUNER_LG_NTSC_NEW_TAPC, "LG TAPC H791F"}, { TUNER_LG_PAL_NEW_TAPC, "TCL 2002MB 3"}, Loading Loading @@ -229,7 +229,7 @@ hauppauge_tuner[] = { TUNER_ABSENT, "Samsung THPD5222FG30A"}, /* 120-129 */ { TUNER_XC2028, "Xceive XC3028"}, { TUNER_ABSENT, "Philips FQ1216LME MK5"}, { TUNER_PHILIPS_FQ1216LME_MK3, "Philips FQ1216LME MK5"}, { TUNER_ABSENT, "Philips FQD1216LME"}, { TUNER_ABSENT, "Conexant CX24118A"}, { TUNER_ABSENT, "TCL DMF11WIP"}, Loading
include/media/tuner.h +1 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ #define TUNER_TCL_MF02GIP_5N 77 /* TCL MF02GIP_5N */ #define TUNER_PHILIPS_FMD1216MEX_MK3 78 #define TUNER_PHILIPS_FM1216MK5 79 #define TUNER_PHILIPS_FQ1216LME_MK3 80 /* Active loopthrough, no FM */ /* tv card specific */ #define TDA9887_PRESENT (1<<0) Loading