diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-12-21 05:10:58 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-12-31 05:27:06 -0500 |
commit | 9818d7dff2a0a1d8a51f077a16efbe5b705278b5 (patch) | |
tree | b50d30e440f96f01ee5275b3e0034de1c238919c | |
parent | 82c0126ff2e3278ecf1d6c7d0bf71838e189dbdc (diff) |
[media] mxl5005s: 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/mxl5005s.c | 65 |
1 files changed, 29 insertions, 36 deletions
diff --git a/drivers/media/common/tuners/mxl5005s.c b/drivers/media/common/tuners/mxl5005s.c index 54be9e6faaaf..c63f7676992b 100644 --- a/drivers/media/common/tuners/mxl5005s.c +++ b/drivers/media/common/tuners/mxl5005s.c | |||
@@ -3983,50 +3983,43 @@ static int mxl5005s_set_params(struct dvb_frontend *fe, | |||
3983 | struct dvb_frontend_parameters *params) | 3983 | struct dvb_frontend_parameters *params) |
3984 | { | 3984 | { |
3985 | struct mxl5005s_state *state = fe->tuner_priv; | 3985 | struct mxl5005s_state *state = fe->tuner_priv; |
3986 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | ||
3987 | u32 delsys = c->delivery_system; | ||
3988 | u32 bw = c->bandwidth_hz; | ||
3986 | u32 req_mode, req_bw = 0; | 3989 | u32 req_mode, req_bw = 0; |
3987 | int ret; | 3990 | int ret; |
3988 | 3991 | ||
3989 | dprintk(1, "%s()\n", __func__); | 3992 | dprintk(1, "%s()\n", __func__); |
3990 | 3993 | ||
3991 | if (fe->ops.info.type == FE_ATSC) { | 3994 | switch (delsys) { |
3992 | switch (params->u.vsb.modulation) { | 3995 | case SYS_ATSC: |
3993 | case VSB_8: | 3996 | req_mode = MXL_ATSC; |
3994 | req_mode = MXL_ATSC; break; | 3997 | req_bw = MXL5005S_BANDWIDTH_6MHZ; |
3995 | default: | 3998 | break; |
3996 | case QAM_64: | 3999 | case SYS_DVBC_ANNEX_B: |
3997 | case QAM_256: | 4000 | req_mode = MXL_QAM; |
3998 | case QAM_AUTO: | 4001 | req_bw = MXL5005S_BANDWIDTH_6MHZ; |
3999 | req_mode = MXL_QAM; break; | 4002 | break; |
4000 | } | 4003 | default: /* Assume DVB-T */ |
4001 | } else | ||
4002 | req_mode = MXL_DVBT; | 4004 | req_mode = MXL_DVBT; |
4003 | 4005 | switch (bw) { | |
4004 | /* Change tuner for new modulation type if reqd */ | 4006 | case 6000000: |
4005 | if (req_mode != state->current_mode) { | 4007 | req_bw = MXL5005S_BANDWIDTH_6MHZ; |
4006 | switch (req_mode) { | 4008 | break; |
4007 | case MXL_ATSC: | 4009 | case 7000000: |
4008 | case MXL_QAM: | 4010 | req_bw = MXL5005S_BANDWIDTH_7MHZ; |
4009 | req_bw = MXL5005S_BANDWIDTH_6MHZ; | 4011 | break; |
4012 | case 8000000: | ||
4013 | case 0: | ||
4014 | req_bw = MXL5005S_BANDWIDTH_8MHZ; | ||
4010 | break; | 4015 | break; |
4011 | case MXL_DVBT: | ||
4012 | default: | 4016 | default: |
4013 | /* Assume DVB-T */ | 4017 | return -EINVAL; |
4014 | switch (params->u.ofdm.bandwidth) { | ||
4015 | case BANDWIDTH_6_MHZ: | ||
4016 | req_bw = MXL5005S_BANDWIDTH_6MHZ; | ||
4017 | break; | ||
4018 | case BANDWIDTH_7_MHZ: | ||
4019 | req_bw = MXL5005S_BANDWIDTH_7MHZ; | ||
4020 | break; | ||
4021 | case BANDWIDTH_AUTO: | ||
4022 | case BANDWIDTH_8_MHZ: | ||
4023 | req_bw = MXL5005S_BANDWIDTH_8MHZ; | ||
4024 | break; | ||
4025 | default: | ||
4026 | return -EINVAL; | ||
4027 | } | ||
4028 | } | 4018 | } |
4019 | } | ||
4029 | 4020 | ||
4021 | /* Change tuner for new modulation type if reqd */ | ||
4022 | if (req_mode != state->current_mode) { | ||
4030 | state->current_mode = req_mode; | 4023 | state->current_mode = req_mode; |
4031 | ret = mxl5005s_reconfigure(fe, req_mode, req_bw); | 4024 | ret = mxl5005s_reconfigure(fe, req_mode, req_bw); |
4032 | 4025 | ||
@@ -4034,8 +4027,8 @@ static int mxl5005s_set_params(struct dvb_frontend *fe, | |||
4034 | ret = 0; | 4027 | ret = 0; |
4035 | 4028 | ||
4036 | if (ret == 0) { | 4029 | if (ret == 0) { |
4037 | dprintk(1, "%s() freq=%d\n", __func__, params->frequency); | 4030 | dprintk(1, "%s() freq=%d\n", __func__, c->frequency); |
4038 | ret = mxl5005s_SetRfFreqHz(fe, params->frequency); | 4031 | ret = mxl5005s_SetRfFreqHz(fe, c->frequency); |
4039 | } | 4032 | } |
4040 | 4033 | ||
4041 | return ret; | 4034 | return ret; |