summaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/mxl111sf-tuner.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab2011-12-23 22:55:51 +0100
committerMauro Carvalho Chehab2011-12-31 11:37:51 +0100
commit93ce675c5cc57cac37e32953fdd43179e02f5c54 (patch)
tree797376cf98a338f85ba47d4908ec6567bc0a4e4b /drivers/media/dvb/dvb-usb/mxl111sf-tuner.c
parent[media] tda826x: use DVBv5 parameters on set_params() (diff)
downloadkernel-qcow2-linux-93ce675c5cc57cac37e32953fdd43179e02f5c54.tar.gz
kernel-qcow2-linux-93ce675c5cc57cac37e32953fdd43179e02f5c54.tar.xz
kernel-qcow2-linux-93ce675c5cc57cac37e32953fdd43179e02f5c54.zip
[media] mxl111sf-tuner: 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>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/mxl111sf-tuner.c')
-rw-r--r--drivers/media/dvb/dvb-usb/mxl111sf-tuner.c46
1 files changed, 22 insertions, 24 deletions
diff --git a/drivers/media/dvb/dvb-usb/mxl111sf-tuner.c b/drivers/media/dvb/dvb-usb/mxl111sf-tuner.c
index 3bfc6d8368a8..aeac7a9a80d6 100644
--- a/drivers/media/dvb/dvb-usb/mxl111sf-tuner.c
+++ b/drivers/media/dvb/dvb-usb/mxl111sf-tuner.c
@@ -275,52 +275,50 @@ static int mxl1x1sf_tuner_loop_thru_ctrl(struct mxl111sf_tuner_state *state,
static int mxl111sf_tuner_set_params(struct dvb_frontend *fe,
struct dvb_frontend_parameters *params)
{
+ struct dtv_frontend_properties *c = &fe->dtv_property_cache;
+ u32 delsys = c->delivery_system;
struct mxl111sf_tuner_state *state = fe->tuner_priv;
int ret;
u8 bw;
+ u32 band = BANDWIDTH_6_MHZ;
mxl_dbg("()");
- if (fe->ops.info.type == FE_ATSC) {
- switch (params->u.vsb.modulation) {
- case VSB_8:
- case VSB_16:
- bw = 0; /* ATSC */
- break;
- case QAM_64:
- case QAM_256:
- bw = 1; /* US CABLE */
- break;
- default:
- err("%s: modulation not set!", __func__);
- return -EINVAL;
- }
- } else if (fe->ops.info.type == FE_OFDM) {
- switch (params->u.ofdm.bandwidth) {
- case BANDWIDTH_6_MHZ:
+ switch (delsys) {
+ case SYS_ATSC:
+ bw = 0; /* ATSC */
+ break;
+ case SYS_DVBC_ANNEX_B:
+ bw = 1; /* US CABLE */
+ break;
+ case SYS_DVBT:
+ switch (c->bandwidth_hz) {
+ case 6000000:
bw = 6;
break;
- case BANDWIDTH_7_MHZ:
+ case 7000000:
bw = 7;
+ band = BANDWIDTH_7_MHZ;
break;
- case BANDWIDTH_8_MHZ:
+ case 8000000:
bw = 8;
+ band = BANDWIDTH_8_MHZ;
break;
default:
err("%s: bandwidth not set!", __func__);
return -EINVAL;
}
- } else {
+ break;
+ default:
err("%s: modulation type not supported!", __func__);
return -EINVAL;
}
- ret = mxl1x1sf_tune_rf(fe, params->frequency, bw);
+ ret = mxl1x1sf_tune_rf(fe, c->frequency, bw);
if (mxl_fail(ret))
goto fail;
- state->frequency = params->frequency;
- state->bandwidth = (fe->ops.info.type == FE_OFDM) ?
- params->u.ofdm.bandwidth : 0;
+ state->frequency = c->frequency;
+ state->bandwidth = band;
fail:
return ret;
}