Commit d1c53424 authored by Michael Krufky's avatar Michael Krufky Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (7213): tda18271: consolidate tune functions



combine tda18271c1_tune and tda18271c2_tune into a single function

Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 4d2d42bc
Loading
Loading
Loading
Loading
+16 −44
Original line number Diff line number Diff line
@@ -195,7 +195,7 @@ static int tda18271_read_thermometer(struct dvb_frontend *fe)
	return tm;
}

static int tda18271_rf_tracking_filters_correction(struct dvb_frontend *fe,
static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe,
						     u32 freq)
{
	struct tda18271_priv *priv = fe->tuner_priv;
@@ -630,26 +630,6 @@ static int tda18271_init(struct dvb_frontend *fe)
	return 0;
}

static int tda18271c2_tune(struct dvb_frontend *fe,
			   u32 ifc, u32 freq, u32 bw, u8 std, int radio)
{
	struct tda18271_priv *priv = fe->tuner_priv;

	tda_dbg("freq = %d, ifc = %d\n", freq, ifc);

	tda18271_init(fe);

	mutex_lock(&priv->lock);

	tda18271_rf_tracking_filters_correction(fe, freq);

	tda18271_channel_configuration(fe, ifc, freq, bw, std, radio);

	mutex_unlock(&priv->lock);

	return 0;
}

/* ------------------------------------------------------------------ */

static int tda18271c1_rf_tracking_filter_calibration(struct dvb_frontend *fe,
@@ -747,41 +727,33 @@ static int tda18271c1_rf_tracking_filter_calibration(struct dvb_frontend *fe,
	return 0;
}

static int tda18271c1_tune(struct dvb_frontend *fe,
/* ------------------------------------------------------------------ */

static int tda18271_tune(struct dvb_frontend *fe,
			 u32 ifc, u32 freq, u32 bw, u8 std, int radio)
{
	struct tda18271_priv *priv = fe->tuner_priv;

	tda_dbg("freq = %d, ifc = %d, bw = %d, std = 0x%02x\n",
		freq, ifc, bw, std);

	tda18271_init(fe);

	mutex_lock(&priv->lock);

	tda_dbg("freq = %d, ifc = %d\n", freq, ifc);

	tda18271c1_rf_tracking_filter_calibration(fe, freq, bw);

	tda18271_channel_configuration(fe, ifc, freq, bw, std, radio);

	mutex_unlock(&priv->lock);

	return 0;
}

static inline int tda18271_tune(struct dvb_frontend *fe,
				u32 ifc, u32 freq, u32 bw, u8 std, int radio)
{
	struct tda18271_priv *priv = fe->tuner_priv;
	int ret = -EINVAL;

	switch (priv->id) {
	case TDA18271HDC1:
		ret = tda18271c1_tune(fe, ifc, freq, bw, std, radio);
		tda18271c1_rf_tracking_filter_calibration(fe, freq, bw);
		break;
	case TDA18271HDC2:
		ret = tda18271c2_tune(fe, ifc, freq, bw, std, radio);
		tda18271c2_rf_tracking_filters_correction(fe, freq);
		break;
	}
	return ret;
	tda18271_channel_configuration(fe, ifc, freq, bw, std, radio);

	mutex_unlock(&priv->lock);

	return 0;
}

/* ------------------------------------------------------------------ */