Instead of using DVBv3 parameters, rely on DVBv5 parameters to
set the tuner.

Signed-off-by: Mauro Carvalho Chehab <mche...@redhat.com>
---
 drivers/media/common/tuners/mxl5007t.c |   53 ++++++++++++++------------------
 1 files changed, 23 insertions(+), 30 deletions(-)

diff --git a/drivers/media/common/tuners/mxl5007t.c 
b/drivers/media/common/tuners/mxl5007t.c
index 2f0e550..0d4f17c 100644
--- a/drivers/media/common/tuners/mxl5007t.c
+++ b/drivers/media/common/tuners/mxl5007t.c
@@ -618,44 +618,38 @@ fail:
 static int mxl5007t_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 mxl5007t_state *state = fe->tuner_priv;
        enum mxl5007t_bw_mhz bw;
        enum mxl5007t_mode mode;
        int ret;
-       u32 freq = params->frequency;
+       u32 freq = c->frequency;
+       u32 band = BANDWIDTH_6_MHZ;
 
-       if (fe->ops.info.type == FE_ATSC) {
-               switch (params->u.vsb.modulation) {
-               case VSB_8:
-               case VSB_16:
-                       mode = MxL_MODE_ATSC;
-                       break;
-               case QAM_64:
-               case QAM_256:
-                       mode = MxL_MODE_CABLE;
-                       break;
-               default:
-                       mxl_err("modulation not set!");
-                       return -EINVAL;
-               }
+       switch (delsys) {
+       case SYS_ATSC:
+               mode = MxL_MODE_ATSC;
                bw = MxL_BW_6MHz;
-       } else if (fe->ops.info.type == FE_OFDM) {
-               switch (params->u.ofdm.bandwidth) {
-               case BANDWIDTH_6_MHZ:
+               break;
+       case SYS_DVBC_ANNEX_B:
+               mode = MxL_MODE_CABLE;
+               bw = MxL_BW_6MHz;
+               break;
+       case SYS_DVBT:
+       case SYS_DVBT2:
+               mode = MxL_MODE_DVBT;
+               if (c->bandwidth_hz <= 6000000) {
                        bw = MxL_BW_6MHz;
-                       break;
-               case BANDWIDTH_7_MHZ:
+               } else if (c->bandwidth_hz <= 7000000) {
                        bw = MxL_BW_7MHz;
-                       break;
-               case BANDWIDTH_8_MHZ:
+                       band = BANDWIDTH_7_MHZ;
+               } else {
                        bw = MxL_BW_8MHz;
-                       break;
-               default:
-                       mxl_err("bandwidth not set!");
-                       return -EINVAL;
+                       band = BANDWIDTH_8_MHZ;
                }
-               mode = MxL_MODE_DVBT;
-       } else {
+               break;
+       default:
                mxl_err("modulation type not supported!");
                return -EINVAL;
        }
@@ -674,8 +668,7 @@ static int mxl5007t_set_params(struct dvb_frontend *fe,
                goto fail;
 
        state->frequency = freq;
-       state->bandwidth = (fe->ops.info.type == FE_OFDM) ?
-               params->u.ofdm.bandwidth : 0;
+       state->bandwidth = band;
 fail:
        mutex_unlock(&state->lock);
 
-- 
1.7.8.352.g876a6

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to