summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2008-02-14 00:07:57 -0500
committerMichael Krufky <mkrufky@linuxtv.org>2008-02-14 00:07:57 -0500
commit4862d337c0d4d0b060bc36e525635ca72d8142a4 (patch)
tree8db616d6c72672d8a5ff884b568a77fda5bff7fa /linux
parentdfb32c854e17815d590d30adbe10c3c303e7f57c (diff)
downloadmediapointer-dvb-s2-4862d337c0d4d0b060bc36e525635ca72d8142a4.tar.gz
mediapointer-dvb-s2-4862d337c0d4d0b060bc36e525635ca72d8142a4.tar.bz2
tda18271: move rf calibration code from tda18271c1_tune into a new function
From: Michael Krufky <mkrufky@linuxtv.org> move rf calibration code from tda18271c1_tune into a new function, tda18271c1_rf_tracking_filter_calibration Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/dvb/frontends/tda18271-fe.c30
1 files changed, 19 insertions, 11 deletions
diff --git a/linux/drivers/media/dvb/frontends/tda18271-fe.c b/linux/drivers/media/dvb/frontends/tda18271-fe.c
index c144a4a23..c5a44e77b 100644
--- a/linux/drivers/media/dvb/frontends/tda18271-fe.c
+++ b/linux/drivers/media/dvb/frontends/tda18271-fe.c
@@ -676,21 +676,13 @@ static int tda18271c2_tune(struct dvb_frontend *fe,
/* ------------------------------------------------------------------ */
-static int tda18271c1_tune(struct dvb_frontend *fe,
- u32 ifc, u32 freq, u32 bw, u8 std, int radio)
+static int tda18271c1_rf_tracking_filter_calibration(struct dvb_frontend *fe,
+ u32 freq, u32 bw)
{
struct tda18271_priv *priv = fe->tuner_priv;
unsigned char *regs = priv->tda18271_regs;
u32 N = 0;
- tda18271_init(fe);
-
- mutex_lock(&priv->lock);
-
- tda_dbg("freq = %d, ifc = %d\n", freq, ifc);
-
- /* RF tracking filter calibration */
-
/* calculate bp filter */
tda18271_calc_bp_filter(fe, &freq);
tda18271_write_regs(fe, R_EP1, 1);
@@ -761,7 +753,7 @@ static int tda18271c1_tune(struct dvb_frontend *fe,
regs[R_EB7] = 0x40;
tda18271_write_regs(fe, R_EB7, 1);
- msleep(10);
+ msleep(10); /* pll locking */
regs[R_EB20] = 0xec;
tda18271_write_regs(fe, R_EB20, 1);
@@ -776,6 +768,22 @@ static int tda18271c1_tune(struct dvb_frontend *fe,
if (0 == tda18271_calc_rf_cal(fe, &freq))
tda18271_write_regs(fe, R_EB14, 1);
+ return 0;
+}
+
+static int tda18271c1_tune(struct dvb_frontend *fe,
+ u32 ifc, u32 freq, u32 bw, u8 std, int radio)
+{
+ struct tda18271_priv *priv = fe->tuner_priv;
+
+ 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);