struct dtv_frontend_properties *c = &fe->dtv_property_cache;
 
        struct stv0900_search_params p_search;
-       struct stv0900_signal_info p_result;
+       struct stv0900_signal_info p_result = intp->result[demod];
 
        enum fe_stv0900_error error = STV0900_NO_ERROR;
 
        kfree(state);
 }
 
+static int stv0900_get_frontend(struct dvb_frontend *fe,
+                               struct dvb_frontend_parameters *p)
+{
+       struct stv0900_state *state = fe->demodulator_priv;
+       struct stv0900_internal *intp = state->internal;
+       enum fe_stv0900_demod_num demod = state->demod;
+       struct stv0900_signal_info p_result = intp->result[demod];
+
+       p->frequency = p_result.locked ? p_result.frequency : 0;
+       p->u.qpsk.symbol_rate = p_result.locked ? p_result.symbol_rate : 0;
+       return 0;
+}
+
 static struct dvb_frontend_ops stv0900_ops = {
 
        .info = {
        },
        .release                        = stv0900_release,
        .init                           = stv0900_init,
+       .get_frontend                   = stv0900_get_frontend,
        .get_frontend_algo              = stv0900_frontend_algo,
        .i2c_gate_ctrl                  = stv0900_i2c_gate_ctrl,
        .diseqc_send_master_cmd         = stv0900_send_master_cmd,