summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/frontends
diff options
context:
space:
mode:
authorPatrick Boettcher <pb@linuxtv.org>2008-01-25 11:25:20 +0100
committerPatrick Boettcher <pb@linuxtv.org>2008-01-25 11:25:20 +0100
commit37e8e0075faefb10bec87e27293c148236168495 (patch)
tree228b4ae7056dbcc7e923a3b0058dfc60fabd1f60 /linux/drivers/media/dvb/frontends
parent491562f798e88aa424e30a77869e46da44d06786 (diff)
downloadmediapointer-dvb-s2-37e8e0075faefb10bec87e27293c148236168495.tar.gz
mediapointer-dvb-s2-37e8e0075faefb10bec87e27293c148236168495.tar.bz2
DiB7070: Reception quality improved
From: Patrick Boettcher <pb@linuxtv.org> Removing two bugs to improve sensitivity for DiB7070 and Dib7000P with MT2266. Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Diffstat (limited to 'linux/drivers/media/dvb/frontends')
-rw-r--r--linux/drivers/media/dvb/frontends/dib0070.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/linux/drivers/media/dvb/frontends/dib0070.c b/linux/drivers/media/dvb/frontends/dib0070.c
index e0a2019b9..e9fab2d3e 100644
--- a/linux/drivers/media/dvb/frontends/dib0070.c
+++ b/linux/drivers/media/dvb/frontends/dib0070.c
@@ -435,9 +435,14 @@ static u16 dib0070_p1f_defaults[] =
0,
};
-static void dib0070_wbd_calibration(struct dib0070_state *state)
+static void dib0070_wbd_calibration(struct dvb_frontend *fe)
{
u16 wbd_offs;
+ struct dib0070_state *state = fe->tuner_priv;
+
+ if (state->cfg->sleep)
+ state->cfg->sleep(fe, 0);
+
dib0070_write_reg(state, 0x0f, 0x6d81);
dib0070_write_reg(state, 0x20, 0x0040 | 0x0020 | 0x0010 | 0x0008 | 0x0002 | 0x0001);
msleep(9);
@@ -445,6 +450,10 @@ static void dib0070_wbd_calibration(struct dib0070_state *state)
dib0070_write_reg(state, 0x20, 0);
state->wbd_ff_offset = ((wbd_offs * 8 * 18 / 33 + 1) / 2);
dprintk( "WBDStart = %d (Vargen) - FF = %hd", (u32) wbd_offs * 1800/1024, state->wbd_ff_offset);
+
+ if (state->cfg->sleep)
+ state->cfg->sleep(fe, 1);
+
}
u16 dib0070_wbd_offset(struct dvb_frontend *fe)
@@ -576,7 +585,7 @@ struct dvb_frontend * dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter
if (dib0070_reset(state) != 0)
goto free_mem;
- dib0070_wbd_calibration(state);
+ dib0070_wbd_calibration(fe);
printk(KERN_INFO "DiB0070: successfully identified\n");
memcpy(&fe->ops.tuner_ops, &dib0070_ops, sizeof(struct dvb_tuner_ops));