Hi Andreas,

On 27-12-2011 20:36, Mauro Carvalho Chehab wrote:
> On 27-12-2011 18:47, Andreas Oberritter wrote:
>> On 27.12.2011 18:26, Mauro Carvalho Chehab wrote:
>>> One usage of such call would be to retrieve the autodetected properties,
>>> after having a frontend lock.
>>
>> Btw., dvb_frontend already refreshes the cache whenever the lock status
>> changes, i.e. when generating frontend events.
> 
> True. Well, if all agree, we can add a patch after this series removing
> the extra parameter from get_frontend(), making it symmetric to the set
> calls.

The enclosed patch should do the trick. It also optimizes a little bit
the dtv_get_frontend() static function.

-
[PATCH] [media] dvb: don't require a parameter for get_frontend

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 <mche...@redhat.com>

diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c
index 80b1f2a..9c5cbf1 100644
--- a/drivers/media/dvb/bt8xx/dst.c
+++ b/drivers/media/dvb/bt8xx/dst.c
@@ -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;
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c 
b/drivers/media/dvb/dvb-core/dvb_frontend.c
index 9d092a6..9a7ee92 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -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));
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.h 
b/drivers/media/dvb/dvb-core/dvb_frontend.h
index 382d97f..1ee2e7f 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.h
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.h
@@ -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);
diff --git a/drivers/media/dvb/dvb-usb/af9005-fe.c 
b/drivers/media/dvb/dvb-usb/af9005-fe.c
index 6c1ef61..27ad0a3 100644
--- a/drivers/media/dvb/dvb-usb/af9005-fe.c
+++ b/drivers/media/dvb/dvb-usb/af9005-fe.c
@@ -1225,9 +1225,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;
diff --git a/drivers/media/dvb/dvb-usb/cinergyT2-fe.c 
b/drivers/media/dvb/dvb-usb/cinergyT2-fe.c
index 0b49d44..0b85564 100644
--- a/drivers/media/dvb/dvb-usb/cinergyT2-fe.c
+++ b/drivers/media/dvb/dvb-usb/cinergyT2-fe.c
@@ -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,
diff --git a/drivers/media/dvb/dvb-usb/dtt200u-fe.c 
b/drivers/media/dvb/dvb-usb/dtt200u-fe.c
index 643242e..270747d 100644
--- a/drivers/media/dvb/dvb-usb/dtt200u-fe.c
+++ b/drivers/media/dvb/dvb-usb/dtt200u-fe.c
@@ -133,9 +133,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;
diff --git a/drivers/media/dvb/dvb-usb/friio-fe.c 
b/drivers/media/dvb/dvb-usb/friio-fe.c
index 375815d..0660a87 100644
--- a/drivers/media/dvb/dvb-usb/friio-fe.c
+++ b/drivers/media/dvb/dvb-usb/friio-fe.c
@@ -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;
diff --git a/drivers/media/dvb/dvb-usb/mxl111sf-demod.c 
b/drivers/media/dvb/dvb-usb/mxl111sf-demod.c
index c61f246..694e207 100644
--- a/drivers/media/dvb/dvb-usb/mxl111sf-demod.c
+++ b/drivers/media/dvb/dvb-usb/mxl111sf-demod.c
@@ -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("()");
diff --git a/drivers/media/dvb/dvb-usb/vp702x-fe.c 
b/drivers/media/dvb/dvb-usb/vp702x-fe.c
index fa0b811..178e938 100644
--- a/drivers/media/dvb/dvb-usb/vp702x-fe.c
+++ b/drivers/media/dvb/dvb-usb/vp702x-fe.c
@@ -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,
diff --git a/drivers/media/dvb/firewire/firedtv-fe.c 
b/drivers/media/dvb/firewire/firedtv-fe.c
index e1705a9..39f5caa 100644
--- a/drivers/media/dvb/firewire/firedtv-fe.c
+++ b/drivers/media/dvb/firewire/firedtv-fe.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/af9013.c 
b/drivers/media/dvb/frontends/af9013.c
index a8aefe9..e630d46 100644
--- a/drivers/media/dvb/frontends/af9013.c
+++ b/drivers/media/dvb/frontends/af9013.c
@@ -670,9 +670,9 @@ error:
        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 i, buf[3];
diff --git a/drivers/media/dvb/frontends/atbm8830.c 
b/drivers/media/dvb/frontends/atbm8830.c
index c4edbbe..ff86074 100644
--- a/drivers/media/dvb/frontends/atbm8830.c
+++ b/drivers/media/dvb/frontends/atbm8830.c
@@ -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 */
diff --git a/drivers/media/dvb/frontends/au8522_dig.c 
b/drivers/media/dvb/frontends/au8522_dig.c
index 027d45d..762cd5e 100644
--- a/drivers/media/dvb/frontends/au8522_dig.c
+++ b/drivers/media/dvb/frontends/au8522_dig.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/cx22700.c 
b/drivers/media/dvb/frontends/cx22700.c
index 3c571b9..d5d61a5 100644
--- a/drivers/media/dvb/frontends/cx22700.c
+++ b/drivers/media/dvb/frontends/cx22700.c
@@ -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);
 
diff --git a/drivers/media/dvb/frontends/cx22702.c 
b/drivers/media/dvb/frontends/cx22702.c
index 225ce84..587c3ec 100644
--- a/drivers/media/dvb/frontends/cx22702.c
+++ b/drivers/media/dvb/frontends/cx22702.c
@@ -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);
diff --git a/drivers/media/dvb/frontends/cx24110.c 
b/drivers/media/dvb/frontends/cx24110.c
index 6f85bb1..98014fc 100644
--- a/drivers/media/dvb/frontends/cx24110.c
+++ b/drivers/media/dvb/frontends/cx24110.c
@@ -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;
 
diff --git a/drivers/media/dvb/frontends/cx24123.c 
b/drivers/media/dvb/frontends/cx24123.c
index faafb1f..ad5d1a4 100644
--- a/drivers/media/dvb/frontends/cx24123.c
+++ b/drivers/media/dvb/frontends/cx24123.c
@@ -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");
diff --git a/drivers/media/dvb/frontends/cxd2820r_core.c 
b/drivers/media/dvb/frontends/cxd2820r_core.c
index 96ceed7..b14e509 100644
--- a/drivers/media/dvb/frontends/cxd2820r_core.c
+++ b/drivers/media/dvb/frontends/cxd2820r_core.c
@@ -381,9 +381,9 @@ 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)
 {
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        struct cxd2820r_priv *priv = fe->demodulator_priv;
        int ret;
        dbg("%s: delsys=%d", __func__, fe->dtv_property_cache.delivery_system);
diff --git a/drivers/media/dvb/frontends/dib3000mb.c 
b/drivers/media/dvb/frontends/dib3000mb.c
index 432d1b0..01a1e30 100644
--- a/drivers/media/dvb/frontends/dib3000mb.c
+++ b/drivers/media/dvb/frontends/dib3000mb.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/dib3000mc.c 
b/drivers/media/dvb/frontends/dib3000mc.c
index d98a010..f2ad9ae 100644
--- a/drivers/media/dvb/frontends/dib3000mc.c
+++ b/drivers/media/dvb/frontends/dib3000mc.c
@@ -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);
diff --git a/drivers/media/dvb/frontends/dib7000m.c 
b/drivers/media/dvb/frontends/dib7000m.c
index b6a25a2..aa6a798 100644
--- a/drivers/media/dvb/frontends/dib7000m.c
+++ b/drivers/media/dvb/frontends/dib7000m.c
@@ -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);
diff --git a/drivers/media/dvb/frontends/dib7000p.c 
b/drivers/media/dvb/frontends/dib7000p.c
index c92c1a0..361bdb1 100644
--- a/drivers/media/dvb/frontends/dib7000p.c
+++ b/drivers/media/dvb/frontends/dib7000p.c
@@ -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);
diff --git a/drivers/media/dvb/frontends/dib8000.c 
b/drivers/media/dvb/frontends/dib8000.c
index 115c099..fe07d74 100644
--- a/drivers/media/dvb/frontends/dib8000.c
+++ b/drivers/media/dvb/frontends/dib8000.c
@@ -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++)
diff --git a/drivers/media/dvb/frontends/dib9000.c 
b/drivers/media/dvb/frontends/dib9000.c
index 974c2b7..2312b4d 100644
--- a/drivers/media/dvb/frontends/dib9000.c
+++ b/drivers/media/dvb/frontends/dib9000.c
@@ -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 */
diff --git a/drivers/media/dvb/frontends/dvb_dummy_fe.c 
b/drivers/media/dvb/frontends/dvb_dummy_fe.c
index b5e2a70..0f0796b 100644
--- a/drivers/media/dvb/frontends/dvb_dummy_fe.c
+++ b/drivers/media/dvb/frontends/dvb_dummy_fe.c
@@ -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;
 }
diff --git a/drivers/media/dvb/frontends/it913x-fe.c 
b/drivers/media/dvb/frontends/it913x-fe.c
index 5a353cb..187d9ea 100644
--- a/drivers/media/dvb/frontends/it913x-fe.c
+++ b/drivers/media/dvb/frontends/it913x-fe.c
@@ -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];
diff --git a/drivers/media/dvb/frontends/l64781.c 
b/drivers/media/dvb/frontends/l64781.c
index 1784e34..4fc6dda 100644
--- a/drivers/media/dvb/frontends/l64781.c
+++ b/drivers/media/dvb/frontends/l64781.c
@@ -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;
 
diff --git a/drivers/media/dvb/frontends/lgdt3305.c 
b/drivers/media/dvb/frontends/lgdt3305.c
index 58eb7bc..0b289b2 100644
--- a/drivers/media/dvb/frontends/lgdt3305.c
+++ b/drivers/media/dvb/frontends/lgdt3305.c
@@ -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");
diff --git a/drivers/media/dvb/frontends/lgdt330x.c 
b/drivers/media/dvb/frontends/lgdt330x.c
index f117eeb..cf69df3 100644
--- a/drivers/media/dvb/frontends/lgdt330x.c
+++ b/drivers/media/dvb/frontends/lgdt330x.c
@@ -428,9 +428,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;
diff --git a/drivers/media/dvb/frontends/lgs8gl5.c 
b/drivers/media/dvb/frontends/lgs8gl5.c
index 0f4bc16..8f2f43b 100644
--- a/drivers/media/dvb/frontends/lgs8gl5.c
+++ b/drivers/media/dvb/frontends/lgs8gl5.c
@@ -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);
 
diff --git a/drivers/media/dvb/frontends/lgs8gxx.c 
b/drivers/media/dvb/frontends/lgs8gxx.c
index da7d8f6..a47add2 100644
--- a/drivers/media/dvb/frontends/lgs8gxx.c
+++ b/drivers/media/dvb/frontends/lgs8gxx.c
@@ -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 */
diff --git a/drivers/media/dvb/frontends/mb86a20s.c 
b/drivers/media/dvb/frontends/mb86a20s.c
index d71d6ee..4267e51 100644
--- a/drivers/media/dvb/frontends/mb86a20s.c
+++ b/drivers/media/dvb/frontends/mb86a20s.c
@@ -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 */
 
diff --git a/drivers/media/dvb/frontends/mt312.c 
b/drivers/media/dvb/frontends/mt312.c
index 3e4512a..90aac0d 100644
--- a/drivers/media/dvb/frontends/mt312.c
+++ b/drivers/media/dvb/frontends/mt312.c
@@ -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;
 
diff --git a/drivers/media/dvb/frontends/mt352.c 
b/drivers/media/dvb/frontends/mt352.c
index 0155fa8..84129ae 100644
--- a/drivers/media/dvb/frontends/mt352.c
+++ b/drivers/media/dvb/frontends/mt352.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/or51132.c 
b/drivers/media/dvb/frontends/or51132.c
index 2d9e81b..5bb6f3e 100644
--- a/drivers/media/dvb/frontends/or51132.c
+++ b/drivers/media/dvb/frontends/or51132.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/s5h1409.c 
b/drivers/media/dvb/frontends/s5h1409.c
index 2641fd5..21baea8 100644
--- a/drivers/media/dvb/frontends/s5h1409.c
+++ b/drivers/media/dvb/frontends/s5h1409.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/s5h1411.c 
b/drivers/media/dvb/frontends/s5h1411.c
index 08f568c..b8c7feb 100644
--- a/drivers/media/dvb/frontends/s5h1411.c
+++ b/drivers/media/dvb/frontends/s5h1411.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/s5h1420.c 
b/drivers/media/dvb/frontends/s5h1420.c
index 0726494..3d0334a 100644
--- a/drivers/media/dvb/frontends/s5h1420.c
+++ b/drivers/media/dvb/frontends/s5h1420.c
@@ -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);
diff --git a/drivers/media/dvb/frontends/s921.c 
b/drivers/media/dvb/frontends/s921.c
index 7652d3f..6012e10 100644
--- a/drivers/media/dvb/frontends/s921.c
+++ b/drivers/media/dvb/frontends/s921.c
@@ -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 */
diff --git a/drivers/media/dvb/frontends/stb0899_drv.c 
b/drivers/media/dvb/frontends/stb0899_drv.c
index 9fad627..c9e1785 100644
--- a/drivers/media/dvb/frontends/stb0899_drv.c
+++ b/drivers/media/dvb/frontends/stb0899_drv.c
@@ -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;
 
diff --git a/drivers/media/dvb/frontends/stb6100.c 
b/drivers/media/dvb/frontends/stb6100.c
index a566763..2d7c901 100644
--- a/drivers/media/dvb/frontends/stb6100.c
+++ b/drivers/media/dvb/frontends/stb6100.c
@@ -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;
 
diff --git a/drivers/media/dvb/frontends/stv0297.c 
b/drivers/media/dvb/frontends/stv0297.c
index 88e8e52..dd0a190 100644
--- a/drivers/media/dvb/frontends/stv0297.c
+++ b/drivers/media/dvb/frontends/stv0297.c
@@ -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;
 
diff --git a/drivers/media/dvb/frontends/stv0299.c 
b/drivers/media/dvb/frontends/stv0299.c
index ad6f3a6..114d112 100644
--- a/drivers/media/dvb/frontends/stv0299.c
+++ b/drivers/media/dvb/frontends/stv0299.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/stv0367.c 
b/drivers/media/dvb/frontends/stv0367.c
index 7c8964f6..6786b9e 100644
--- a/drivers/media/dvb/frontends/stv0367.c
+++ b/drivers/media/dvb/frontends/stv0367.c
@@ -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;
 
diff --git a/drivers/media/dvb/frontends/stv0900_core.c 
b/drivers/media/dvb/frontends/stv0900_core.c
index 8af1e624..33325ae 100644
--- a/drivers/media/dvb/frontends/stv0900_core.c
+++ b/drivers/media/dvb/frontends/stv0900_core.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/tda10021.c 
b/drivers/media/dvb/frontends/tda10021.c
index c8ab01b..035e0e2 100644
--- a/drivers/media/dvb/frontends/tda10021.c
+++ b/drivers/media/dvb/frontends/tda10021.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/tda10023.c 
b/drivers/media/dvb/frontends/tda10023.c
index 8f451dc..55d7563 100644
--- a/drivers/media/dvb/frontends/tda10023.c
+++ b/drivers/media/dvb/frontends/tda10023.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/tda10048.c 
b/drivers/media/dvb/frontends/tda10048.c
index dfd1d5a..99bf0c0 100644
--- a/drivers/media/dvb/frontends/tda10048.c
+++ b/drivers/media/dvb/frontends/tda10048.c
@@ -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__);
diff --git a/drivers/media/dvb/frontends/tda1004x.c 
b/drivers/media/dvb/frontends/tda1004x.c
index d5e68af..e180103 100644
--- a/drivers/media/dvb/frontends/tda1004x.c
+++ b/drivers/media/dvb/frontends/tda1004x.c
@@ -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__);
diff --git a/drivers/media/dvb/frontends/tda10071.c 
b/drivers/media/dvb/frontends/tda10071.c
index 68dcce6..d9e0bd9 100644
--- a/drivers/media/dvb/frontends/tda10071.c
+++ b/drivers/media/dvb/frontends/tda10071.c
@@ -776,9 +776,9 @@ 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 dtv_frontend_properties *p = &fe->dtv_property_cache;
        struct tda10071_priv *priv = fe->demodulator_priv;
        struct dtv_frontend_properties *c = &fe->dtv_property_cache;
        int ret, i;
diff --git a/drivers/media/dvb/frontends/tda10086.c 
b/drivers/media/dvb/frontends/tda10086.c
index cfc6e0e..83256d5 100644
--- a/drivers/media/dvb/frontends/tda10086.c
+++ b/drivers/media/dvb/frontends/tda10086.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/tda8083.c 
b/drivers/media/dvb/frontends/tda8083.c
index 88a22d3..7a16e8d 100644
--- a/drivers/media/dvb/frontends/tda8083.c
+++ b/drivers/media/dvb/frontends/tda8083.c
@@ -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...*/
diff --git a/drivers/media/dvb/frontends/ves1820.c 
b/drivers/media/dvb/frontends/ves1820.c
index ef1b5fe..37ff9f0 100644
--- a/drivers/media/dvb/frontends/ves1820.c
+++ b/drivers/media/dvb/frontends/ves1820.c
@@ -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;
diff --git a/drivers/media/dvb/frontends/ves1x93.c 
b/drivers/media/dvb/frontends/ves1x93.c
index 15929c2..13f3a21 100644
--- a/drivers/media/dvb/frontends/ves1x93.c
+++ b/drivers/media/dvb/frontends/ves1x93.c
@@ -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;
 
diff --git a/drivers/media/dvb/frontends/zl10353.c 
b/drivers/media/dvb/frontends/zl10353.c
index 39c1bdb..816fa86 100644
--- a/drivers/media/dvb/frontends/zl10353.c
+++ b/drivers/media/dvb/frontends/zl10353.c
@@ -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;
diff --git a/drivers/media/dvb/siano/smsdvb.c b/drivers/media/dvb/siano/smsdvb.c
index 71ee9fa..198cc0e 100644
--- a/drivers/media/dvb/siano/smsdvb.c
+++ b/drivers/media/dvb/siano/smsdvb.c
@@ -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);
 
diff --git a/drivers/media/video/tlg2300/pd-dvb.c 
b/drivers/media/video/tlg2300/pd-dvb.c
index 7998811..d7aac42 100644
--- a/drivers/media/video/tlg2300/pd-dvb.c
+++ b/drivers/media/video/tlg2300/pd-dvb.c
@@ -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;
 
--
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