aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/mxl111sf-demod.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb/dvb-usb/mxl111sf-demod.c')
-rw-r--r--drivers/media/dvb/dvb-usb/mxl111sf-demod.c42
1 files changed, 20 insertions, 22 deletions
diff --git a/drivers/media/dvb/dvb-usb/mxl111sf-demod.c b/drivers/media/dvb/dvb-usb/mxl111sf-demod.c
index d1f58371c71..d83df4bb72d 100644
--- a/drivers/media/dvb/dvb-usb/mxl111sf-demod.c
+++ b/drivers/media/dvb/dvb-usb/mxl111sf-demod.c
@@ -102,8 +102,8 @@ fail:
102} 102}
103 103
104static 104static
105int mxl1x1sf_demod_get_tps_constellation(struct mxl111sf_demod_state *state, 105int mxl1x1sf_demod_get_tps_modulation(struct mxl111sf_demod_state *state,
106 fe_modulation_t *constellation) 106 fe_modulation_t *modulation)
107{ 107{
108 u8 val; 108 u8 val;
109 int ret = mxl111sf_demod_read_reg(state, V6_MODORDER_TPS_REG, &val); 109 int ret = mxl111sf_demod_read_reg(state, V6_MODORDER_TPS_REG, &val);
@@ -113,13 +113,13 @@ int mxl1x1sf_demod_get_tps_constellation(struct mxl111sf_demod_state *state,
113 113
114 switch ((val & V6_PARAM_CONSTELLATION_MASK) >> 4) { 114 switch ((val & V6_PARAM_CONSTELLATION_MASK) >> 4) {
115 case 0: 115 case 0:
116 *constellation = QPSK; 116 *modulation = QPSK;
117 break; 117 break;
118 case 1: 118 case 1:
119 *constellation = QAM_16; 119 *modulation = QAM_16;
120 break; 120 break;
121 case 2: 121 case 2:
122 *constellation = QAM_64; 122 *modulation = QAM_64;
123 break; 123 break;
124 } 124 }
125fail: 125fail:
@@ -284,8 +284,7 @@ static int mxl1x1sf_demod_reset_irq_status(struct mxl111sf_demod_state *state)
284 284
285/* ------------------------------------------------------------------------ */ 285/* ------------------------------------------------------------------------ */
286 286
287static int mxl111sf_demod_set_frontend(struct dvb_frontend *fe, 287static int mxl111sf_demod_set_frontend(struct dvb_frontend *fe)
288 struct dvb_frontend_parameters *param)
289{ 288{
290 struct mxl111sf_demod_state *state = fe->demodulator_priv; 289 struct mxl111sf_demod_state *state = fe->demodulator_priv;
291 int ret = 0; 290 int ret = 0;
@@ -303,7 +302,7 @@ static int mxl111sf_demod_set_frontend(struct dvb_frontend *fe,
303 mxl_dbg("()"); 302 mxl_dbg("()");
304 303
305 if (fe->ops.tuner_ops.set_params) { 304 if (fe->ops.tuner_ops.set_params) {
306 ret = fe->ops.tuner_ops.set_params(fe, param); 305 ret = fe->ops.tuner_ops.set_params(fe);
307 if (mxl_fail(ret)) 306 if (mxl_fail(ret))
308 goto fail; 307 goto fail;
309 msleep(50); 308 msleep(50);
@@ -481,13 +480,13 @@ static int mxl111sf_demod_read_signal_strength(struct dvb_frontend *fe,
481 u16 *signal_strength) 480 u16 *signal_strength)
482{ 481{
483 struct mxl111sf_demod_state *state = fe->demodulator_priv; 482 struct mxl111sf_demod_state *state = fe->demodulator_priv;
484 fe_modulation_t constellation; 483 fe_modulation_t modulation;
485 u16 snr; 484 u16 snr;
486 485
487 mxl111sf_demod_calc_snr(state, &snr); 486 mxl111sf_demod_calc_snr(state, &snr);
488 mxl1x1sf_demod_get_tps_constellation(state, &constellation); 487 mxl1x1sf_demod_get_tps_modulation(state, &modulation);
489 488
490 switch (constellation) { 489 switch (modulation) {
491 case QPSK: 490 case QPSK:
492 *signal_strength = (snr >= 1300) ? 491 *signal_strength = (snr >= 1300) ?
493 min(65535, snr * 44) : snr * 38; 492 min(65535, snr * 44) : snr * 38;
@@ -508,9 +507,9 @@ static int mxl111sf_demod_read_signal_strength(struct dvb_frontend *fe,
508 return 0; 507 return 0;
509} 508}
510 509
511static int mxl111sf_demod_get_frontend(struct dvb_frontend *fe, 510static int mxl111sf_demod_get_frontend(struct dvb_frontend *fe)
512 struct dvb_frontend_parameters *p)
513{ 511{
512 struct dtv_frontend_properties *p = &fe->dtv_property_cache;
514 struct mxl111sf_demod_state *state = fe->demodulator_priv; 513 struct mxl111sf_demod_state *state = fe->demodulator_priv;
515 514
516 mxl_dbg("()"); 515 mxl_dbg("()");
@@ -518,18 +517,18 @@ static int mxl111sf_demod_get_frontend(struct dvb_frontend *fe,
518 p->inversion = /* FIXME */ ? INVERSION_ON : INVERSION_OFF; 517 p->inversion = /* FIXME */ ? INVERSION_ON : INVERSION_OFF;
519#endif 518#endif
520 if (fe->ops.tuner_ops.get_bandwidth) 519 if (fe->ops.tuner_ops.get_bandwidth)
521 fe->ops.tuner_ops.get_bandwidth(fe, &p->u.ofdm.bandwidth); 520 fe->ops.tuner_ops.get_bandwidth(fe, &p->bandwidth_hz);
522 if (fe->ops.tuner_ops.get_frequency) 521 if (fe->ops.tuner_ops.get_frequency)
523 fe->ops.tuner_ops.get_frequency(fe, &p->frequency); 522 fe->ops.tuner_ops.get_frequency(fe, &p->frequency);
524 mxl1x1sf_demod_get_tps_code_rate(state, &p->u.ofdm.code_rate_HP); 523 mxl1x1sf_demod_get_tps_code_rate(state, &p->code_rate_HP);
525 mxl1x1sf_demod_get_tps_code_rate(state, &p->u.ofdm.code_rate_LP); 524 mxl1x1sf_demod_get_tps_code_rate(state, &p->code_rate_LP);
526 mxl1x1sf_demod_get_tps_constellation(state, &p->u.ofdm.constellation); 525 mxl1x1sf_demod_get_tps_modulation(state, &p->modulation);
527 mxl1x1sf_demod_get_tps_guard_fft_mode(state, 526 mxl1x1sf_demod_get_tps_guard_fft_mode(state,
528 &p->u.ofdm.transmission_mode); 527 &p->transmission_mode);
529 mxl1x1sf_demod_get_tps_guard_interval(state, 528 mxl1x1sf_demod_get_tps_guard_interval(state,
530 &p->u.ofdm.guard_interval); 529 &p->guard_interval);
531 mxl1x1sf_demod_get_tps_hierarchy(state, 530 mxl1x1sf_demod_get_tps_hierarchy(state,
532 &p->u.ofdm.hierarchy_information); 531 &p->hierarchy);
533 532
534 return 0; 533 return 0;
535} 534}
@@ -551,10 +550,9 @@ static void mxl111sf_demod_release(struct dvb_frontend *fe)
551} 550}
552 551
553static struct dvb_frontend_ops mxl111sf_demod_ops = { 552static struct dvb_frontend_ops mxl111sf_demod_ops = {
554 553 .delsys = { SYS_DVBT },
555 .info = { 554 .info = {
556 .name = "MaxLinear MxL111SF DVB-T demodulator", 555 .name = "MaxLinear MxL111SF DVB-T demodulator",
557 .type = FE_OFDM,
558 .frequency_min = 177000000, 556 .frequency_min = 177000000,
559 .frequency_max = 858000000, 557 .frequency_max = 858000000,
560 .frequency_stepsize = 166666, 558 .frequency_stepsize = 166666,