libdvbv5: don't override a parameter when setting lna
authorMauro Carvalho Chehab <m.chehab@samsung.com>
Wed, 23 Apr 2014 19:00:58 +0000 (16:00 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Wed, 23 Apr 2014 19:52:19 +0000 (16:52 -0300)
We should not fill the parameters before setting LNA, as, otherwise,
the first property (typically frequency) would be overriden.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
lib/libdvbv5/dvb-fe.c

index 0841546..013edd6 100644 (file)
@@ -629,15 +629,11 @@ int dvb_fe_set_parms(struct dvb_v5_fe_parms *parms)
        struct dvb_frontend_parameters v3_parms;
        uint32_t bw;
 
-       if (dvb_fe_is_satellite(tmp_parms.current_sys))
-               dvb_sat_set_parms(&tmp_parms);
-
-       /* Filter out any user DTV_foo property such as DTV_POLARIZATION */
-       tmp_parms.n_props = dvb_copy_fe_props(tmp_parms.dvb_prop, tmp_parms.n_props, tmp_parms.dvb_prop);
-
        if (parms->lna != LNA_AUTO && !parms->legacy_fe) {
+               struct dvb_v5_fe_parms tmp_lna_parms;
+
                memset(&prop, 0, sizeof(prop));
-               prop.props = tmp_parms.dvb_prop;
+               prop.props = tmp_lna_parms.dvb_prop;
 
                prop.props[0].cmd = DTV_LNA;
                prop.props[0].u.data = parms->lna;
@@ -649,6 +645,12 @@ int dvb_fe_set_parms(struct dvb_v5_fe_parms *parms)
                        dvb_logdbg("LNA is %s", parms->lna ? "ON" : "OFF");
        }
 
+       if (dvb_fe_is_satellite(tmp_parms.current_sys))
+               dvb_sat_set_parms(&tmp_parms);
+
+       /* Filter out any user DTV_foo property such as DTV_POLARIZATION */
+       tmp_parms.n_props = dvb_copy_fe_props(tmp_parms.dvb_prop, tmp_parms.n_props, tmp_parms.dvb_prop);
+
        memset(&prop, 0, sizeof(prop));
        prop.props = tmp_parms.dvb_prop;
        prop.num = tmp_parms.n_props;