media: m88rs2000: prevent frontend crash on continuous transponder scans
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / media / dvb-frontends / m88rs2000.c
index b235146..807cf6d 100644 (file)
@@ -715,6 +715,22 @@ static int m88rs2000_get_frontend(struct dvb_frontend *fe)
        return 0;
 }
 
+static int m88rs2000_get_tune_settings(struct dvb_frontend *fe,
+       struct dvb_frontend_tune_settings *tune)
+{
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
+
+       if (c->symbol_rate > 3000000)
+               tune->min_delay_ms = 2000;
+       else
+               tune->min_delay_ms = 3000;
+
+       tune->step_size = c->symbol_rate / 16000;
+       tune->max_drift = c->symbol_rate / 2000;
+
+       return 0;
+}
+
 static int m88rs2000_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
 {
        struct m88rs2000_state *state = fe->demodulator_priv;
@@ -766,6 +782,7 @@ static struct dvb_frontend_ops m88rs2000_ops = {
 
        .set_frontend = m88rs2000_set_frontend,
        .get_frontend = m88rs2000_get_frontend,
+       .get_tune_settings = m88rs2000_get_tune_settings,
 };
 
 struct dvb_frontend *m88rs2000_attach(const struct m88rs2000_config *config,