struct tda18212_priv {
        struct tda18212_config *cfg;
        struct i2c_adapter *i2c;
+
+       u32 if_frequency;
 };
 
 #define dbg(fmt, arg...)                                       \
        if (ret)
                goto error;
 
+       /* actual IF rounded as it is on register */
+       priv->if_frequency = buf[3] * 50 * 1000;
+
 exit:
        if (fe->ops.i2c_gate_ctrl)
                fe->ops.i2c_gate_ctrl(fe, 0); /* close I2C-gate */
        goto exit;
 }
 
+static int tda18212_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)
+{
+       struct tda18212_priv *priv = fe->tuner_priv;
+
+       *frequency = priv->if_frequency;
+
+       return 0;
+}
+
 static int tda18212_release(struct dvb_frontend *fe)
 {
        kfree(fe->tuner_priv);
        .release       = tda18212_release,
 
        .set_params    = tda18212_set_params,
+       .get_if_frequency = tda18212_get_if_frequency,
 };
 
 struct dvb_frontend *tda18212_attach(struct dvb_frontend *fe,