[media] mt2063: Convert it to the DVBv5 way for set_params()
authorMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 5 Jan 2012 00:29:32 +0000 (22:29 -0200)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 5 Jan 2012 00:31:40 +0000 (22:31 -0200)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/common/tuners/mt2063.c

index b2678a468a0e54486cc942c78b5db4ef64a42764..75cb1d2ccdbc4484d42c64411e6772cf4b6d0fb4 100644 (file)
@@ -2051,9 +2051,9 @@ static int mt2063_set_analog_params(struct dvb_frontend *fe,
  */
 #define MAX_SYMBOL_RATE_6MHz   5217391
 
-static int mt2063_set_params(struct dvb_frontend *fe,
-                            struct dvb_frontend_parameters *params)
+static int mt2063_set_params(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        struct mt2063_state *state = fe->tuner_priv;
        int status;
        s32 pict_car = 0;
@@ -2065,37 +2065,25 @@ static int mt2063_set_params(struct dvb_frontend *fe,
        s32 if_mid = 0;
        s32 rcvr_mode = 0;
 
-       switch (fe->ops.info.type) {
-       case FE_OFDM:
-               switch (params->u.ofdm.bandwidth) {
-               case BANDWIDTH_6_MHZ:
-                       ch_bw = 6000000;
-                       break;
-               case BANDWIDTH_7_MHZ:
-                       ch_bw = 7000000;
-                       break;
-               case BANDWIDTH_8_MHZ:
-                       ch_bw = 8000000;
-                       break;
-               default:
-                       return -EINVAL;
-               }
+       if (c->bandwidth_hz == 0)
+               return -EINVAL;
+       if (c->bandwidth_hz <= 6000000)
+               ch_bw = 6000000;
+       else if (c->bandwidth_hz <= 7000000)
+               ch_bw = 7000000;
+       else
+               ch_bw = 8000000;
+
+       switch (c->delivery_system) {
+       case SYS_DVBT:
                rcvr_mode = MT2063_OFFAIR_COFDM;
                pict_car = 36125000;
                pict2chanb_vsb = -(ch_bw / 2);
                pict2snd1 = 0;
                pict2snd2 = 0;
                break;
-       case FE_QAM:
-               /*
-                * Using a 8MHz bandwidth sometimes fail
-                * with 6MHz-spaced channels, due to inter-carrier
-                * interference. So, it is better to narrow-down the filter
-                */
-               if (params->u.qam.symbol_rate <= MAX_SYMBOL_RATE_6MHz)
-                       ch_bw = 6000000;
-               else
-                       ch_bw = 8000000;
+       case SYS_DVBC_ANNEX_A:
+       case SYS_DVBC_ANNEX_C:
                rcvr_mode = MT2063_CABLE_QAM;
                pict_car = 36125000;
                pict2snd1 = 0;
@@ -2115,12 +2103,12 @@ static int mt2063_set_params(struct dvb_frontend *fe,
        if (status < 0)
                return status;
 
-       status = MT2063_Tune(state, (params->frequency + (pict2chanb_vsb + (ch_bw / 2))));
+       status = MT2063_Tune(state, (c->frequency + (pict2chanb_vsb + (ch_bw / 2))));
 
        if (status < 0)
                return status;
 
-       state->frequency = params->frequency;
+       state->frequency = c->frequency;
        return 0;
 }