diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-12-21 05:31:23 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-12-31 05:27:16 -0500 |
commit | e12617e6f0586a336c76dd7b70e5a451ba5e7786 (patch) | |
tree | c312b0f2ca34e716b5c0a4a7735dbe12d856ac5b | |
parent | 1b750d09fe362a231b9a25ed75e61f642f24c880 (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.c | 51 |
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: | |||
619 | static int mxl5007t_set_params(struct dvb_frontend *fe, | 619 | static 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; | ||
680 | fail: | 677 | fail: |
681 | mutex_unlock(&state->lock); | 678 | mutex_unlock(&state->lock); |
682 | 679 | ||