aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2011-12-21 05:31:23 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-12-31 05:27:16 -0500
commite12617e6f0586a336c76dd7b70e5a451ba5e7786 (patch)
treec312b0f2ca34e716b5c0a4a7735dbe12d856ac5b
parent1b750d09fe362a231b9a25ed75e61f642f24c880 (diff)
[media] mxl5007t: use DVBv5 parameters on set_params()
Instead of using DVBv3 parameters, rely on DVBv5 parameters to set the tuner. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/common/tuners/mxl5007t.c51
1 files changed, 24 insertions, 27 deletions
diff --git a/drivers/media/common/tuners/mxl5007t.c b/drivers/media/common/tuners/mxl5007t.c
index 67bccde1f816..e22fcb12bcf3 100644
--- a/drivers/media/common/tuners/mxl5007t.c
+++ b/drivers/media/common/tuners/mxl5007t.c
@@ -619,44 +619,42 @@ fail:
619static int mxl5007t_set_params(struct dvb_frontend *fe, 619static int mxl5007t_set_params(struct dvb_frontend *fe,
620 struct dvb_frontend_parameters *params) 620 struct dvb_frontend_parameters *params)
621{ 621{
622 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
623 u32 delsys = c->delivery_system;
622 struct mxl5007t_state *state = fe->tuner_priv; 624 struct mxl5007t_state *state = fe->tuner_priv;
623 enum mxl5007t_bw_mhz bw; 625 enum mxl5007t_bw_mhz bw;
624 enum mxl5007t_mode mode; 626 enum mxl5007t_mode mode;
625 int ret; 627 int ret;
626 u32 freq = params->frequency; 628 u32 freq = c->frequency;
629 u32 band = BANDWIDTH_6_MHZ;
627 630
628 if (fe->ops.info.type == FE_ATSC) { 631 switch (delsys) {
629 switch (params->u.vsb.modulation) { 632 case SYS_ATSC:
630 case VSB_8: 633 mode = MxL_MODE_ATSC;
631 case VSB_16: 634 bw = MxL_BW_6MHz;
632 mode = MxL_MODE_ATSC; 635 break;
633 break; 636 case SYS_DVBC_ANNEX_B:
634 case QAM_64: 637 mode = MxL_MODE_CABLE;
635 case QAM_256:
636 mode = MxL_MODE_CABLE;
637 break;
638 default:
639 mxl_err("modulation not set!");
640 return -EINVAL;
641 }
642 bw = MxL_BW_6MHz; 638 bw = MxL_BW_6MHz;
643 } else if (fe->ops.info.type == FE_OFDM) { 639 break;
644 switch (params->u.ofdm.bandwidth) { 640 case SYS_DVBT:
645 case BANDWIDTH_6_MHZ: 641 case SYS_DVBT2:
642 mode = MxL_MODE_DVBT;
643 switch (c->bandwidth_hz) {
644 case 6000000:
646 bw = MxL_BW_6MHz; 645 bw = MxL_BW_6MHz;
647 break; 646 break;
648 case BANDWIDTH_7_MHZ: 647 case 7000000:
649 bw = MxL_BW_7MHz; 648 bw = MxL_BW_7MHz;
650 break; 649 band = BANDWIDTH_7_MHZ;
651 case BANDWIDTH_8_MHZ: 650 case 8000000:
652 bw = MxL_BW_8MHz; 651 bw = MxL_BW_8MHz;
653 break; 652 band = BANDWIDTH_8_MHZ;
654 default: 653 default:
655 mxl_err("bandwidth not set!");
656 return -EINVAL; 654 return -EINVAL;
657 } 655 }
658 mode = MxL_MODE_DVBT; 656 break;
659 } else { 657 default:
660 mxl_err("modulation type not supported!"); 658 mxl_err("modulation type not supported!");
661 return -EINVAL; 659 return -EINVAL;
662 } 660 }
@@ -675,8 +673,7 @@ static int mxl5007t_set_params(struct dvb_frontend *fe,
675 goto fail; 673 goto fail;
676 674
677 state->frequency = freq; 675 state->frequency = freq;
678 state->bandwidth = (fe->ops.info.type == FE_OFDM) ? 676 state->bandwidth = band;
679 params->u.ofdm.bandwidth : 0;
680fail: 677fail:
681 mutex_unlock(&state->lock); 678 mutex_unlock(&state->lock);
682 679