[media] dvb: don't require a parameter for get_frontend
authorMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 30 Dec 2011 14:30:21 +0000 (11:30 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 31 Dec 2011 12:28:23 +0000 (10:28 -0200)
Just like set_frontend, use the dvb cache properties for get_frontend.
This is more consistent, as both functions are now symetric. Also,
at the places get_frontend is called, it makes sense to update the
cache.

Most of this patch were generated by this small perl script:

while (<>) { $file .= $_; }
if ($file =~ m/\.get_frontend\s*=\s*([\d\w_]+)/) {
my $get = $1;
$file =~ s/($get)(\s*\([^\,\)]+)\,\s*struct\s+dtv_frontend_properties\s*\*\s*([_\d\w]+)\)\s*\{/\1\2)\n{\n\tstruct dtv_frontend_properties *\3 = &fe->dtv_property_cache;/g;
}
print $file;

Of course, the changes at dvb_frontend.[ch] were made by hand,
as well as the changes on a few other places, where get_frontend()
is called internally inside the driver.

On some places, get_frontend() were just a void function. Those
occurrences were removed, as the DVB core handles such cases.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
57 files changed:
drivers/media/dvb/bt8xx/dst.c
drivers/media/dvb/dvb-core/dvb_frontend.c
drivers/media/dvb/dvb-core/dvb_frontend.h
drivers/media/dvb/dvb-usb/af9005-fe.c
drivers/media/dvb/dvb-usb/cinergyT2-fe.c
drivers/media/dvb/dvb-usb/dtt200u-fe.c
drivers/media/dvb/dvb-usb/friio-fe.c
drivers/media/dvb/dvb-usb/mxl111sf-demod.c
drivers/media/dvb/dvb-usb/vp702x-fe.c
drivers/media/dvb/firewire/firedtv-fe.c
drivers/media/dvb/frontends/af9013.c
drivers/media/dvb/frontends/atbm8830.c
drivers/media/dvb/frontends/au8522_dig.c
drivers/media/dvb/frontends/cx22700.c
drivers/media/dvb/frontends/cx22702.c
drivers/media/dvb/frontends/cx24110.c
drivers/media/dvb/frontends/cx24123.c
drivers/media/dvb/frontends/cxd2820r_core.c
drivers/media/dvb/frontends/dib3000mb.c
drivers/media/dvb/frontends/dib3000mc.c
drivers/media/dvb/frontends/dib7000m.c
drivers/media/dvb/frontends/dib7000p.c
drivers/media/dvb/frontends/dib8000.c
drivers/media/dvb/frontends/dib9000.c
drivers/media/dvb/frontends/dvb_dummy_fe.c
drivers/media/dvb/frontends/it913x-fe.c
drivers/media/dvb/frontends/l64781.c
drivers/media/dvb/frontends/lgdt3305.c
drivers/media/dvb/frontends/lgdt330x.c
drivers/media/dvb/frontends/lgs8gl5.c
drivers/media/dvb/frontends/lgs8gxx.c
drivers/media/dvb/frontends/mb86a20s.c
drivers/media/dvb/frontends/mt312.c
drivers/media/dvb/frontends/mt352.c
drivers/media/dvb/frontends/or51132.c
drivers/media/dvb/frontends/s5h1409.c
drivers/media/dvb/frontends/s5h1411.c
drivers/media/dvb/frontends/s5h1420.c
drivers/media/dvb/frontends/s921.c
drivers/media/dvb/frontends/stb0899_drv.c
drivers/media/dvb/frontends/stb6100.c
drivers/media/dvb/frontends/stv0297.c
drivers/media/dvb/frontends/stv0299.c
drivers/media/dvb/frontends/stv0367.c
drivers/media/dvb/frontends/stv0900_core.c
drivers/media/dvb/frontends/tda10021.c
drivers/media/dvb/frontends/tda10023.c
drivers/media/dvb/frontends/tda10048.c
drivers/media/dvb/frontends/tda1004x.c
drivers/media/dvb/frontends/tda10071.c
drivers/media/dvb/frontends/tda10086.c
drivers/media/dvb/frontends/tda8083.c
drivers/media/dvb/frontends/ves1820.c
drivers/media/dvb/frontends/ves1x93.c
drivers/media/dvb/frontends/zl10353.c
drivers/media/dvb/siano/smsdvb.c
drivers/media/video/tlg2300/pd-dvb.c

index 80b1f2a..9c5cbf1 100644 (file)
@@ -1685,8 +1685,9 @@ static int dst_get_tuning_algo(struct dvb_frontend *fe)
        return dst_algo ? DVBFE_ALGO_HW : DVBFE_ALGO_SW;
 }
 
-static int dst_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *p)
+static int dst_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct dst_state *state = fe->demodulator_priv;
 
        p->frequency = state->decode_freq;
index 0ab473c..d030cd3 100644 (file)
@@ -143,7 +143,6 @@ struct dvb_frontend_private {
 
 static void dvb_frontend_wakeup(struct dvb_frontend *fe);
 static int dtv_get_frontend(struct dvb_frontend *fe,
-                           struct dtv_frontend_properties *c,
                            struct dvb_frontend_parameters *p_out);
 
 static bool has_get_frontend(struct dvb_frontend *fe)
@@ -161,7 +160,7 @@ static void dvb_frontend_add_event(struct dvb_frontend *fe, fe_status_t status)
        dprintk ("%s\n", __func__);
 
        if ((status & FE_HAS_LOCK) && has_get_frontend(fe))
-               dtv_get_frontend(fe, NULL, &fepriv->parameters_out);
+               dtv_get_frontend(fe, &fepriv->parameters_out);
 
        mutex_lock(&events->mtx);
 
@@ -1261,33 +1260,20 @@ static void dtv_property_cache_submit(struct dvb_frontend *fe)
  * If p_out is not null, it will update the DVBv3 params pointed by it.
  */
 static int dtv_get_frontend(struct dvb_frontend *fe,
-                           struct dtv_frontend_properties *c,
                            struct dvb_frontend_parameters *p_out)
 {
-       const struct dtv_frontend_properties *cache = &fe->dtv_property_cache;
-       struct dtv_frontend_properties tmp_cache;
-       struct dvb_frontend_parameters tmp_out;
-       bool fill_params = (p_out != NULL);
        int r;
 
-       if (!p_out)
-               p_out = &tmp_out;
-
-       if (!c)
-               c = &tmp_cache;
-       else
-               memcpy(c, cache, sizeof(*c));
-
        if (fe->ops.get_frontend) {
-               r = fe->ops.get_frontend(fe, c);
+               r = fe->ops.get_frontend(fe);
                if (unlikely(r < 0))
                        return r;
-               if (fill_params)
+               if (p_out)
                        dtv_property_legacy_params_sync(fe, p_out);
                return 0;
        }
 
-       /* As everything is in cache, this is always supported */
+       /* As everything is in cache, get_frontend fops are always supported */
        return 0;
 }
 
@@ -1717,8 +1703,6 @@ static int dvb_frontend_ioctl_properties(struct file *file,
 
        } else
        if(cmd == FE_GET_PROPERTY) {
-               struct dtv_frontend_properties cache_out;
-
                tvps = (struct dtv_properties __user *)parg;
 
                dprintk("%s() properties.num = %d\n", __func__, tvps->num);
@@ -1744,9 +1728,9 @@ static int dvb_frontend_ioctl_properties(struct file *file,
                 * Fills the cache out struct with the cache contents, plus
                 * the data retrieved from get_frontend.
                 */
-               dtv_get_frontend(fe, &cache_out, NULL);
+               dtv_get_frontend(fe, NULL);
                for (i = 0; i < tvps->num; i++) {
-                       err = dtv_property_process_get(fe, &cache_out, tvp + i, file);
+                       err = dtv_property_process_get(fe, c, tvp + i, file);
                        if (err < 0)
                                goto out;
                        (tvp + i)->result = err;
@@ -2043,7 +2027,7 @@ static int dvb_frontend_ioctl_legacy(struct file *file,
                break;
 
        case FE_GET_FRONTEND:
-               err = dtv_get_frontend(fe, NULL, &fepriv->parameters_out);
+               err = dtv_get_frontend(fe, &fepriv->parameters_out);
                if (err >= 0)
                        memcpy(parg, &fepriv->parameters_out,
                               sizeof(struct dvb_frontend_parameters));
index 676481c..0a080c3 100644 (file)
@@ -284,7 +284,7 @@ struct dvb_frontend_ops {
        int (*set_frontend)(struct dvb_frontend *fe);
        int (*get_tune_settings)(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* settings);
 
-       int (*get_frontend)(struct dvb_frontend *fe, struct dtv_frontend_properties *props);
+       int (*get_frontend)(struct dvb_frontend *fe);
 
        int (*read_status)(struct dvb_frontend* fe, fe_status_t* status);
        int (*read_ber)(struct dvb_frontend* fe, u32* ber);
index df44949..0e1b04f 100644 (file)
@@ -1226,9 +1226,9 @@ static int af9005_fe_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int af9005_fe_get_frontend(struct dvb_frontend *fe,
-                                 struct dtv_frontend_properties *fep)
+static int af9005_fe_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
        struct af9005_fe_state *state = fe->demodulator_priv;
        int ret;
        u8 temp;
index 6cd56e2..0315db8 100644 (file)
@@ -296,12 +296,6 @@ static int cinergyt2_fe_set_frontend(struct dvb_frontend *fe)
        return (err < 0) ? err : 0;
 }
 
-static int cinergyt2_fe_get_frontend(struct dvb_frontend *fe,
-                                 struct dtv_frontend_properties *fep)
-{
-       return 0;
-}
-
 static void cinergyt2_fe_release(struct dvb_frontend *fe)
 {
        struct cinergyt2_fe_state *state = fe->demodulator_priv;
@@ -352,7 +346,6 @@ static struct dvb_frontend_ops cinergyt2_fe_ops = {
        .sleep                  = cinergyt2_fe_sleep,
 
        .set_frontend           = cinergyt2_fe_set_frontend,
-       .get_frontend           = cinergyt2_fe_get_frontend,
        .get_tune_settings      = cinergyt2_fe_get_tune_settings,
 
        .read_status            = cinergyt2_fe_read_status,
index 9e887b8..c94da3c 100644 (file)
@@ -139,9 +139,9 @@ static int dtt200u_fe_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int dtt200u_fe_get_frontend(struct dvb_frontend* fe,
-                                 struct dtv_frontend_properties *fep)
+static int dtt200u_fe_get_frontend(struct dvb_frontend* fe)
 {
+       struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
        struct dtt200u_fe_state *state = fe->demodulator_priv;
        memcpy(fep, &state->fep, sizeof(struct dtv_frontend_properties));
        return 0;
index 375815d..0660a87 100644 (file)
@@ -282,9 +282,9 @@ static int jdvbt90502_set_property(struct dvb_frontend *fe,
        return r;
 }
 
-static int jdvbt90502_get_frontend(struct dvb_frontend *fe,
-                                  struct dtv_frontend_properties *p)
+static int jdvbt90502_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        p->inversion = INVERSION_AUTO;
        p->bandwidth_hz = 6000000;
        p->code_rate_HP = FEC_AUTO;
index c61f246..694e207 100644 (file)
@@ -507,9 +507,9 @@ static int mxl111sf_demod_read_signal_strength(struct dvb_frontend *fe,
        return 0;
 }
 
-static int mxl111sf_demod_get_frontend(struct dvb_frontend *fe,
-                                      struct dtv_frontend_properties *p)
+static int mxl111sf_demod_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct mxl111sf_demod_state *state = fe->demodulator_priv;
 
        mxl_dbg("()");
index de1136e..8d8c6ad 100644 (file)
@@ -211,13 +211,6 @@ static int vp702x_fe_sleep(struct dvb_frontend *fe)
        return 0;
 }
 
-static int vp702x_fe_get_frontend(struct dvb_frontend* fe,
-                                 struct dtv_frontend_properties *fep)
-{
-       deb_fe("%s\n",__func__);
-       return 0;
-}
-
 static int vp702x_fe_send_diseqc_msg (struct dvb_frontend* fe,
                                    struct dvb_diseqc_master_cmd *m)
 {
@@ -372,7 +365,6 @@ static struct dvb_frontend_ops vp702x_fe_ops = {
        .sleep = vp702x_fe_sleep,
 
        .set_frontend = vp702x_fe_set_frontend,
-       .get_frontend = vp702x_fe_get_frontend,
        .get_tune_settings = vp702x_fe_get_tune_settings,
 
        .read_status = vp702x_fe_read_status,
index e1705a9..39f5caa 100644 (file)
@@ -149,22 +149,6 @@ static int fdtv_set_frontend(struct dvb_frontend *fe)
        return avc_tuner_dsd(fdtv, p);
 }
 
-static int fdtv_get_frontend(struct dvb_frontend *fe,
-                            struct dtv_frontend_properties *params)
-{
-       return -EOPNOTSUPP;
-}
-
-static int fdtv_get_property(struct dvb_frontend *fe, struct dtv_property *tvp)
-{
-       return 0;
-}
-
-static int fdtv_set_property(struct dvb_frontend *fe, struct dtv_property *tvp)
-{
-       return 0;
-}
-
 void fdtv_frontend_init(struct firedtv *fdtv, const char *name)
 {
        struct dvb_frontend_ops *ops = &fdtv->fe.ops;
@@ -174,10 +158,6 @@ void fdtv_frontend_init(struct firedtv *fdtv, const char *name)
        ops->sleep                      = fdtv_sleep;
 
        ops->set_frontend               = fdtv_set_frontend;
-       ops->get_frontend               = fdtv_get_frontend;
-
-       ops->get_property               = fdtv_get_property;
-       ops->set_property               = fdtv_set_property;
 
        ops->read_status                = fdtv_read_status;
        ops->read_ber                   = fdtv_read_ber;
index a70358c..e6ba3e0 100644 (file)
@@ -845,9 +845,9 @@ err:
        return ret;
 }
 
-static int af9013_get_frontend(struct dvb_frontend *fe,
-                              struct dtv_frontend_properties *c)
+static int af9013_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        struct af9013_state *state = fe->demodulator_priv;
        int ret;
        u8 buf[3];
index c4edbbe..ff86074 100644 (file)
@@ -297,9 +297,9 @@ static int atbm8830_set_fe(struct dvb_frontend *fe)
        return 0;
 }
 
-static int atbm8830_get_fe(struct dvb_frontend *fe,
-                          struct dtv_frontend_properties *c)
+static int atbm8830_get_fe(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        dprintk("%s\n", __func__);
 
        /* TODO: get real readings from device */
index 027d45d..762cd5e 100644 (file)
@@ -911,9 +911,9 @@ static int au8522_read_ber(struct dvb_frontend *fe, u32 *ber)
        return au8522_read_ucblocks(fe, ber);
 }
 
-static int au8522_get_frontend(struct dvb_frontend *fe,
-                              struct dtv_frontend_properties *c)
+static int au8522_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        struct au8522_state *state = fe->demodulator_priv;
 
        c->frequency = state->current_frequency;
index cc9b98d..a5b1521 100644 (file)
@@ -341,9 +341,9 @@ static int cx22700_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int cx22700_get_frontend(struct dvb_frontend *fe,
-                               struct dtv_frontend_properties *c)
+static int cx22700_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        struct cx22700_state* state = fe->demodulator_priv;
        u8 reg09 = cx22700_readreg (state, 0x09);
 
index fc8f621..a0dcbd6 100644 (file)
@@ -546,9 +546,9 @@ static int cx22702_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)
        return 0;
 }
 
-static int cx22702_get_frontend(struct dvb_frontend *fe,
-                               struct dtv_frontend_properties *c)
+static int cx22702_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        struct cx22702_state *state = fe->demodulator_priv;
 
        u8 reg0C = cx22702_readreg(state, 0x0C);
index 29a5ceb..2f07c49 100644 (file)
@@ -549,9 +549,9 @@ static int cx24110_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int cx24110_get_frontend(struct dvb_frontend *fe,
-                               struct dtv_frontend_properties *p)
+static int cx24110_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct cx24110_state *state = fe->demodulator_priv;
        s32 afc; unsigned sclk;
 
index faafb1f..ad5d1a4 100644 (file)
@@ -959,9 +959,9 @@ static int cx24123_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int cx24123_get_frontend(struct dvb_frontend *fe,
-                               struct dtv_frontend_properties *p)
+static int cx24123_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct cx24123_state *state = fe->demodulator_priv;
 
        dprintk("\n");
index 0f33dfa..07c1a95 100644 (file)
@@ -307,8 +307,7 @@ static int cxd2820r_read_status(struct dvb_frontend *fe, fe_status_t *status)
        return ret;
 }
 
-static int cxd2820r_get_frontend(struct dvb_frontend *fe,
-                                struct dtv_frontend_properties *c)
+static int cxd2820r_get_frontend(struct dvb_frontend *fe)
 {
        int ret;
 
index de9ed6c..a1c5bdb 100644 (file)
@@ -112,8 +112,7 @@ static u16 dib3000_seq[2][2][2] =     /* fft,gua,   inv   */
                }
        };
 
-static int dib3000mb_get_frontend(struct dvb_frontend* fe,
-                                 struct dtv_frontend_properties *c);
+static int dib3000mb_get_frontend(struct dvb_frontend* fe);
 
 static int dib3000mb_set_frontend(struct dvb_frontend *fe, int tuner)
 {
@@ -360,7 +359,7 @@ static int dib3000mb_set_frontend(struct dvb_frontend *fe, int tuner)
                deb_setf("search_state after autosearch %d after %d checks\n",search_state,as_count);
 
                if (search_state == 1) {
-                       if (dib3000mb_get_frontend(fe, c) == 0) {
+                       if (dib3000mb_get_frontend(fe) == 0) {
                                deb_setf("reading tuning data from frontend succeeded.\n");
                                return dib3000mb_set_frontend(fe, 0);
                        }
@@ -451,9 +450,9 @@ static int dib3000mb_fe_init(struct dvb_frontend* fe, int mobile_mode)
        return 0;
 }
 
-static int dib3000mb_get_frontend(struct dvb_frontend* fe,
-                                 struct dtv_frontend_properties *c)
+static int dib3000mb_get_frontend(struct dvb_frontend* fe)
 {
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        struct dib3000_state* state = fe->demodulator_priv;
        fe_code_rate_t *cr;
        u16 tps_val;
index d9ea210..e500b89 100644 (file)
@@ -632,9 +632,9 @@ struct i2c_adapter * dib3000mc_get_tuner_i2c_master(struct dvb_frontend *demod,
 
 EXPORT_SYMBOL(dib3000mc_get_tuner_i2c_master);
 
-static int dib3000mc_get_frontend(struct dvb_frontend* fe,
-                                 struct dtv_frontend_properties *fep)
+static int dib3000mc_get_frontend(struct dvb_frontend* fe)
 {
+       struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
        struct dib3000mc_state *state = fe->demodulator_priv;
        u16 tps = dib3000mc_read_word(state,458);
 
@@ -689,7 +689,7 @@ static int dib3000mc_get_frontend(struct dvb_frontend* fe,
 
 static int dib3000mc_set_frontend(struct dvb_frontend *fe)
 {
-       struct dtv_frontend_properties *fep = &fe->dtv_property_cache, tmp;
+       struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
        struct dib3000mc_state *state = fe->demodulator_priv;
        int ret;
 
@@ -712,8 +712,6 @@ static int dib3000mc_set_frontend(struct dvb_frontend *fe)
            fep->code_rate_HP   == FEC_AUTO) {
                int i = 1000, found;
 
-               tmp = *fep;
-
                dib3000mc_autosearch_start(fe);
                do {
                        msleep(1);
@@ -724,7 +722,7 @@ static int dib3000mc_set_frontend(struct dvb_frontend *fe)
                if (found == 0 || found == 1)
                        return 0; // no channel found
 
-               dib3000mc_get_frontend(fe, &tmp);
+               dib3000mc_get_frontend(fe);
        }
 
        ret = dib3000mc_tune(fe);
index 9f2330d..2a2d646 100644 (file)
@@ -1154,9 +1154,9 @@ static int dib7000m_identify(struct dib7000m_state *state)
 }
 
 
-static int dib7000m_get_frontend(struct dvb_frontend* fe,
-                                struct dtv_frontend_properties *fep)
+static int dib7000m_get_frontend(struct dvb_frontend* fe)
 {
+       struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
        struct dib7000m_state *state = fe->demodulator_priv;
        u16 tps = dib7000m_read_word(state,480);
 
@@ -1214,7 +1214,7 @@ static int dib7000m_get_frontend(struct dvb_frontend* fe,
 
 static int dib7000m_set_frontend(struct dvb_frontend *fe)
 {
-       struct dtv_frontend_properties *fep = &fe->dtv_property_cache, tmp;
+       struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
        struct dib7000m_state *state = fe->demodulator_priv;
        int time, ret;
 
@@ -1239,8 +1239,6 @@ static int dib7000m_set_frontend(struct dvb_frontend *fe)
                fep->code_rate_HP      == FEC_AUTO) {
                int i = 800, found;
 
-               tmp = *fep;
-
                dib7000m_autosearch_start(fe);
                do {
                        msleep(1);
@@ -1251,7 +1249,7 @@ static int dib7000m_set_frontend(struct dvb_frontend *fe)
                if (found == 0 || found == 1)
                        return 0; // no channel found
 
-               dib7000m_get_frontend(fe, &tmp);
+               dib7000m_get_frontend(fe);
        }
 
        ret = dib7000m_tune(fe);
index c92c1a0..361bdb1 100644 (file)
@@ -1384,9 +1384,9 @@ static int dib7000p_identify(struct dib7000p_state *st)
        return 0;
 }
 
-static int dib7000p_get_frontend(struct dvb_frontend *fe,
-                                struct dtv_frontend_properties *fep)
+static int dib7000p_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
        struct dib7000p_state *state = fe->demodulator_priv;
        u16 tps = dib7000p_read_word(state, 463);
 
@@ -1482,7 +1482,7 @@ static int dib7000p_get_frontend(struct dvb_frontend *fe,
 
 static int dib7000p_set_frontend(struct dvb_frontend *fe)
 {
-       struct dtv_frontend_properties *fep = &fe->dtv_property_cache, tmp;
+       struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
        struct dib7000p_state *state = fe->demodulator_priv;
        int time, ret;
 
@@ -1509,7 +1509,6 @@ static int dib7000p_set_frontend(struct dvb_frontend *fe)
                fep->guard_interval == GUARD_INTERVAL_AUTO || fep->modulation == QAM_AUTO || fep->code_rate_HP == FEC_AUTO) {
                int i = 800, found;
 
-               tmp = *fep;
                dib7000p_autosearch_start(fe);
                do {
                        msleep(1);
@@ -1520,7 +1519,7 @@ static int dib7000p_set_frontend(struct dvb_frontend *fe)
                if (found == 0 || found == 1)
                        return 0;
 
-               dib7000p_get_frontend(fe, &tmp);
+               dib7000p_get_frontend(fe);
        }
 
        ret = dib7000p_tune(fe);
index 115c099..fe07d74 100644 (file)
@@ -2810,7 +2810,7 @@ int dib8000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tun
 }
 EXPORT_SYMBOL(dib8000_set_tune_state);
 
-static int dib8000_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *c)
+static int dib8000_get_frontend(struct dvb_frontend *fe)
 {
        struct dib8000_state *state = fe->demodulator_priv;
        u16 i, val = 0;
@@ -2824,7 +2824,7 @@ static int dib8000_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_pro
                if (stat&FE_HAS_SYNC) {
                        dprintk("TMCC lock on the slave%i", index_frontend);
                        /* synchronize the cache with the other frontends */
-                       state->fe[index_frontend]->ops.get_frontend(state->fe[index_frontend], c);
+                       state->fe[index_frontend]->ops.get_frontend(state->fe[index_frontend]);
                        for (sub_index_frontend = 0; (sub_index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[sub_index_frontend] != NULL); sub_index_frontend++) {
                                if (sub_index_frontend != index_frontend) {
                                        state->fe[sub_index_frontend]->dtv_property_cache.isdbt_sb_mode = state->fe[index_frontend]->dtv_property_cache.isdbt_sb_mode;
@@ -3088,7 +3088,7 @@ static int dib8000_set_frontend(struct dvb_frontend *fe)
 
                dprintk("tune success on frontend%i", index_frontend_success);
 
-               dib8000_get_frontend(fe, &state->fe[0]->dtv_property_cache);
+               dib8000_get_frontend(fe);
        }
 
        for (index_frontend = 0, ret = 0; (ret >= 0) && (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++)
index 974c2b7..2312b4d 100644 (file)
@@ -1867,7 +1867,7 @@ static int dib9000_fe_get_tune_settings(struct dvb_frontend *fe, struct dvb_fron
        return 0;
 }
 
-static int dib9000_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *c)
+static int dib9000_get_frontend(struct dvb_frontend *fe)
 {
        struct dib9000_state *state = fe->demodulator_priv;
        u8 index_frontend, sub_index_frontend;
@@ -1883,7 +1883,7 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_pro
                        dprintk("TPS lock on the slave%i", index_frontend);
 
                        /* synchronize the cache with the other frontends */
-                       state->fe[index_frontend]->ops.get_frontend(state->fe[index_frontend], c);
+                       state->fe[index_frontend]->ops.get_frontend(state->fe[index_frontend]);
                        for (sub_index_frontend = 0; (sub_index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[sub_index_frontend] != NULL);
                             sub_index_frontend++) {
                                if (sub_index_frontend != index_frontend) {
@@ -2054,7 +2054,7 @@ static int dib9000_set_frontend(struct dvb_frontend *fe)
 
        /* synchronize all the channel cache */
        state->get_frontend_internal = 1;
-       dib9000_get_frontend(state->fe[0], &state->fe[0]->dtv_property_cache);
+       dib9000_get_frontend(state->fe[0]);
        state->get_frontend_internal = 0;
 
        /* retune the other frontends with the found channel */
index c63b024..ac4c8d2 100644 (file)
@@ -68,8 +68,10 @@ static int dvb_dummy_fe_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
        return 0;
 }
 
-static int dvb_dummy_fe_get_frontend(struct dvb_frontend *fe,
-                                    struct dtv_frontend_properties *c)
+/*
+ * Only needed if it actually reads something from the hardware
+ */
+static int dvb_dummy_fe_get_frontend(struct dvb_frontend *fe)
 {
        return 0;
 }
index a75dee8..754d0f5 100644 (file)
@@ -572,9 +572,9 @@ static int it913x_fe_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)
        return 0;
 }
 
-static int it913x_fe_get_frontend(struct dvb_frontend *fe,
-                       struct dtv_frontend_properties *p)
+static int it913x_fe_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct it913x_fe_state *state = fe->demodulator_priv;
        int ret;
        u8 reg[8];
index 247d653..dc3e42c 100644 (file)
@@ -243,9 +243,9 @@ static int apply_frontend_param(struct dvb_frontend *fe)
        return 0;
 }
 
-static int get_frontend(struct dvb_frontend *fe,
-                       struct dtv_frontend_properties *p)
+static int get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct l64781_state* state = fe->demodulator_priv;
        int tmp;
 
index 58eb7bc..0b289b2 100644 (file)
@@ -813,9 +813,9 @@ fail:
        return ret;
 }
 
-static int lgdt3305_get_frontend(struct dvb_frontend *fe,
-                                struct dtv_frontend_properties *p)
+static int lgdt3305_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct lgdt3305_state *state = fe->demodulator_priv;
 
        lg_dbg("\n");
index 1979a38..0e6f41b 100644 (file)
@@ -437,9 +437,9 @@ static int lgdt330x_set_parameters(struct dvb_frontend *fe)
        return 0;
 }
 
-static int lgdt330x_get_frontend(struct dvb_frontend *fe,
-                                struct dtv_frontend_properties *p)
+static int lgdt330x_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct lgdt330x_state *state = fe->demodulator_priv;
        p->frequency = state->current_frequency;
        return 0;
index 0f4bc16..8f2f43b 100644 (file)
@@ -336,9 +336,9 @@ lgs8gl5_set_frontend(struct dvb_frontend *fe)
 
 
 static int
-lgs8gl5_get_frontend(struct dvb_frontend *fe,
-               struct dtv_frontend_properties *p)
+lgs8gl5_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct lgs8gl5_state *state = fe->demodulator_priv;
        u8 inv = lgs8gl5_read_reg(state, REG_INVERSION);
 
index da7d8f6..a47add2 100644 (file)
@@ -691,9 +691,9 @@ static int lgs8gxx_set_fe(struct dvb_frontend *fe)
        return 0;
 }
 
-static int lgs8gxx_get_fe(struct dvb_frontend *fe,
-                         struct dtv_frontend_properties *fe_params)
+static int lgs8gxx_get_fe(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *fe_params = &fe->dtv_property_cache;
        dprintk("%s\n", __func__);
 
        /* TODO: get real readings from device */
index d71d6ee..4267e51 100644 (file)
@@ -525,9 +525,9 @@ static int mb86a20s_set_frontend(struct dvb_frontend *fe)
        return rc;
 }
 
-static int mb86a20s_get_frontend(struct dvb_frontend *fe,
-                                struct dtv_frontend_properties *p)
+static int mb86a20s_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
 
        /* FIXME: For now, it does nothing */
 
index 3e4512a..90aac0d 100644 (file)
@@ -636,9 +636,9 @@ static int mt312_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int mt312_get_frontend(struct dvb_frontend *fe,
-                             struct dtv_frontend_properties *p)
+static int mt312_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct mt312_state *state = fe->demodulator_priv;
        int ret;
 
index e6b2795..0321eec 100644 (file)
@@ -311,9 +311,9 @@ static int mt352_set_parameters(struct dvb_frontend *fe)
        return 0;
 }
 
-static int mt352_get_parameters(struct dvb_frontend* fe,
-                               struct dtv_frontend_properties *op)
+static int mt352_get_parameters(struct dvb_frontend* fe)
 {
+       struct dtv_frontend_properties *op = &fe->dtv_property_cache;
        struct mt352_state* state = fe->demodulator_priv;
        u16 tps;
        u16 div;
index 1fc7778..82ee295 100644 (file)
@@ -375,9 +375,9 @@ static int or51132_set_parameters(struct dvb_frontend *fe)
        return 0;
 }
 
-static int or51132_get_parameters(struct dvb_frontend* fe,
-                                 struct dtv_frontend_properties *p)
+static int or51132_get_parameters(struct dvb_frontend* fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct or51132_state* state = fe->demodulator_priv;
        int status;
        int retry = 1;
index 2641fd5..21baea8 100644 (file)
@@ -925,9 +925,9 @@ static int s5h1409_read_ber(struct dvb_frontend *fe, u32 *ber)
        return s5h1409_read_ucblocks(fe, ber);
 }
 
-static int s5h1409_get_frontend(struct dvb_frontend *fe,
-                               struct dtv_frontend_properties *p)
+static int s5h1409_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct s5h1409_state *state = fe->demodulator_priv;
 
        p->frequency = state->current_frequency;
index 08f568c..b8c7feb 100644 (file)
@@ -840,9 +840,9 @@ static int s5h1411_read_ber(struct dvb_frontend *fe, u32 *ber)
        return s5h1411_read_ucblocks(fe, ber);
 }
 
-static int s5h1411_get_frontend(struct dvb_frontend *fe,
-                               struct dtv_frontend_properties *p)
+static int s5h1411_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct s5h1411_state *state = fe->demodulator_priv;
 
        p->frequency = state->current_frequency;
index 9a65a7f..d83d20a 100644 (file)
@@ -765,9 +765,9 @@ static int s5h1420_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int s5h1420_get_frontend(struct dvb_frontend* fe,
-                               struct dtv_frontend_properties *p)
+static int s5h1420_get_frontend(struct dvb_frontend* fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct s5h1420_state* state = fe->demodulator_priv;
 
        p->frequency = state->tunedfreq + s5h1420_getfreqoffset(state);
index 7652d3f..6012e10 100644 (file)
@@ -433,9 +433,9 @@ static int s921_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int s921_get_frontend(struct dvb_frontend *fe,
-       struct dtv_frontend_properties *p)
+static int s921_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct s921_state *state = fe->demodulator_priv;
 
        /* FIXME: Probably it is possible to get it from regs f1 and f2 */
index 9fad627..c9e1785 100644 (file)
@@ -1569,8 +1569,9 @@ static enum dvbfe_search stb0899_search(struct dvb_frontend *fe)
        return DVBFE_ALGO_SEARCH_ERROR;
 }
 
-static int stb0899_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *p)
+static int stb0899_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct stb0899_state *state             = fe->demodulator_priv;
        struct stb0899_internal *internal       = &state->internal;
 
index a566763..2d7c901 100644 (file)
@@ -337,7 +337,7 @@ static int stb6100_set_frequency(struct dvb_frontend *fe, u32 frequency)
 
        if (fe->ops.get_frontend) {
                dprintk(verbose, FE_DEBUG, 1, "Get frontend parameters");
-               fe->ops.get_frontend(fe, &p);
+               fe->ops.get_frontend(fe);
        }
        srate = p.symbol_rate;
 
index 88e8e52..dd0a190 100644 (file)
@@ -614,8 +614,9 @@ timeout:
        return 0;
 }
 
-static int stv0297_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *p)
+static int stv0297_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct stv0297_state *state = fe->demodulator_priv;
        int reg_00, reg_83;
 
index 92adf90..a7abc82 100644 (file)
@@ -596,8 +596,9 @@ static int stv0299_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int stv0299_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties * p)
+static int stv0299_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct stv0299_state* state = fe->demodulator_priv;
        s32 derot_freq;
        int invval;
index 7c8964f..6786b9e 100644 (file)
@@ -1926,9 +1926,9 @@ static int stv0367ter_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)
        return 0;
 }
 
-static int stv0367ter_get_frontend(struct dvb_frontend *fe,
-                                  struct dtv_frontend_properties *p)
+static int stv0367ter_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct stv0367_state *state = fe->demodulator_priv;
        struct stv0367ter_state *ter_state = state->ter_state;
 
@@ -3136,9 +3136,9 @@ static int stv0367cab_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int stv0367cab_get_frontend(struct dvb_frontend *fe,
-                                  struct dtv_frontend_properties *p)
+static int stv0367cab_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct stv0367_state *state = fe->demodulator_priv;
        struct stv0367cab_state *cab_state = state->cab_state;
 
index 8af1e62..33325ae 100644 (file)
@@ -1843,9 +1843,9 @@ static int stv0900_sleep(struct dvb_frontend *fe)
        return 0;
 }
 
-static int stv0900_get_frontend(struct dvb_frontend *fe,
-                               struct dtv_frontend_properties *p)
+static int stv0900_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct stv0900_state *state = fe->demodulator_priv;
        struct stv0900_internal *intp = state->internal;
        enum fe_stv0900_demod_num demod = state->demod;
index 051c6bf..a330831 100644 (file)
@@ -386,8 +386,9 @@ static int tda10021_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
        return 0;
 }
 
-static int tda10021_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *p)
+static int tda10021_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct tda10021_state* state = fe->demodulator_priv;
        int sync;
        s8 afc = 0;
index 2766b64..d0b8e86 100644 (file)
@@ -456,8 +456,9 @@ static int tda10023_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
        return 0;
 }
 
-static int tda10023_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *p)
+static int tda10023_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct tda10023_state* state = fe->demodulator_priv;
        int sync,inv;
        s8 afc = 0;
index dfd1d5a..99bf0c0 100644 (file)
@@ -1028,9 +1028,9 @@ static int tda10048_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)
        return 0;
 }
 
-static int tda10048_get_frontend(struct dvb_frontend *fe,
-       struct dtv_frontend_properties *p)
+static int tda10048_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct tda10048_state *state = fe->demodulator_priv;
 
        dprintk(1, "%s()\n", __func__);
index fe5b659..bbab4a1 100644 (file)
@@ -895,8 +895,9 @@ static int tda1004x_set_fe(struct dvb_frontend *fe)
        return 0;
 }
 
-static int tda1004x_get_fe(struct dvb_frontend *fe, struct dtv_frontend_properties *fe_params)
+static int tda1004x_get_fe(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *fe_params = &fe->dtv_property_cache;
        struct tda1004x_state* state = fe->demodulator_priv;
 
        dprintk("%s\n", __func__);
index 68dcce6..54e2aa0 100644 (file)
@@ -776,8 +776,7 @@ error:
        return ret;
 }
 
-static int tda10071_get_frontend(struct dvb_frontend *fe,
-       struct dtv_frontend_properties *p)
+static int tda10071_get_frontend(struct dvb_frontend *fe)
 {
        struct tda10071_priv *priv = fe->demodulator_priv;
        struct dtv_frontend_properties *c = &fe->dtv_property_cache;
index b94fe95..e0d2fc1 100644 (file)
@@ -457,8 +457,9 @@ static int tda10086_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int tda10086_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *fe_params)
+static int tda10086_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *fe_params = &fe->dtv_property_cache;
        struct tda10086_state* state = fe->demodulator_priv;
        u8 val;
        int tmp;
index 0f9841c..b613dfc 100644 (file)
@@ -335,8 +335,9 @@ static int tda8083_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int tda8083_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *p)
+static int tda8083_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct tda8083_state* state = fe->demodulator_priv;
 
        /*  FIXME: get symbolrate & frequency offset...*/
index ecc685b..e85a823 100644 (file)
@@ -310,8 +310,9 @@ static int ves1820_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
        return 0;
 }
 
-static int ves1820_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *p)
+static int ves1820_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct ves1820_state* state = fe->demodulator_priv;
        int sync;
        s8 afc = 0;
index 54c70b0..0ccd851 100644 (file)
@@ -403,9 +403,9 @@ static int ves1x93_set_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
-static int ves1x93_get_frontend(struct dvb_frontend *fe,
-                               struct dtv_frontend_properties *p)
+static int ves1x93_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct ves1x93_state* state = fe->demodulator_priv;
        int afc;
 
index 39c1bdb..816fa86 100644 (file)
@@ -371,9 +371,9 @@ static int zl10353_set_parameters(struct dvb_frontend *fe)
        return 0;
 }
 
-static int zl10353_get_parameters(struct dvb_frontend *fe,
-                                 struct dtv_frontend_properties *c)
+static int zl10353_get_parameters(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        struct zl10353_state *state = fe->demodulator_priv;
        int s6, s9;
        u16 tps;
index 71ee9fa..198cc0e 100644 (file)
@@ -739,9 +739,9 @@ static int smsdvb_set_frontend(struct dvb_frontend *fe)
        }
 }
 
-static int smsdvb_get_frontend(struct dvb_frontend *fe,
-                             struct dtv_frontend_properties *fep)
+static int smsdvb_get_frontend(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
        struct smsdvb_client_t *client =
                container_of(fe, struct smsdvb_client_t, frontend);
 
index 7998811..d7aac42 100644 (file)
@@ -231,9 +231,9 @@ static s32 poseidon_fe_init(struct dvb_frontend *fe)
        return 0;
 }
 
-static int poseidon_get_fe(struct dvb_frontend *fe,
-                       struct dtv_frontend_properties *fep)
+static int poseidon_get_fe(struct dvb_frontend *fe)
 {
+       struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
        struct poseidon *pd = fe->demodulator_priv;
        struct pd_dvb_adapter *pd_dvb = &pd->dvb_data;