summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/frontends/ves1x93.c
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2006-04-25 19:26:46 -0500
committerMike Isely <isely@pobox.com>2006-04-25 19:26:46 -0500
commite362706b3e90987c5ca839def8372bff58fea7c0 (patch)
tree2c94262c383b9f881b278b9bfe0499231a7458ef /linux/drivers/media/dvb/frontends/ves1x93.c
parent60f073ffa46dc14bcbc82b9c14ff5fb6cc2a5102 (diff)
parent682261e2c90d58868dd27ef1c524e327074a637d (diff)
downloadmediapointer-dvb-s2-e362706b3e90987c5ca839def8372bff58fea7c0.tar.gz
mediapointer-dvb-s2-e362706b3e90987c5ca839def8372bff58fea7c0.tar.bz2
Merge from master
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
Diffstat (limited to 'linux/drivers/media/dvb/frontends/ves1x93.c')
-rw-r--r--linux/drivers/media/dvb/frontends/ves1x93.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/linux/drivers/media/dvb/frontends/ves1x93.c b/linux/drivers/media/dvb/frontends/ves1x93.c
index 821df8e83..660aa7bb9 100644
--- a/linux/drivers/media/dvb/frontends/ves1x93.c
+++ b/linux/drivers/media/dvb/frontends/ves1x93.c
@@ -278,12 +278,6 @@ static int ves1x93_init (struct dvb_frontend* fe)
}
}
- if (state->config->pll_init) {
- ves1x93_writereg(state, 0x00, 0x11);
- state->config->pll_init(fe);
- ves1x93_writereg(state, 0x00, 0x01);
- }
-
return 0;
}
@@ -395,9 +389,10 @@ static int ves1x93_set_frontend(struct dvb_frontend* fe, struct dvb_frontend_par
{
struct ves1x93_state* state = fe->demodulator_priv;
- ves1x93_writereg(state, 0x00, 0x11);
- state->config->pll_set(fe, p);
- ves1x93_writereg(state, 0x00, 0x01);
+ if (fe->ops->tuner_ops.set_params) {
+ fe->ops->tuner_ops.set_params(fe, p);
+ if (fe->ops->i2c_gate_ctrl) fe->ops->i2c_gate_ctrl(fe, 0);
+ }
ves1x93_set_inversion (state, p->inversion);
ves1x93_set_fec (state, p->u.qpsk.fec_inner);
ves1x93_set_symbolrate (state, p->u.qpsk.symbol_rate);
@@ -442,6 +437,17 @@ static void ves1x93_release(struct dvb_frontend* fe)
kfree(state);
}
+static int ves1x93_i2c_gate_ctrl(struct dvb_frontend* fe, int enable)
+{
+ struct ves1x93_state* state = fe->demodulator_priv;
+
+ if (enable) {
+ return ves1x93_writereg(state, 0x00, 0x11);
+ } else {
+ return ves1x93_writereg(state, 0x00, 0x01);
+ }
+}
+
static struct dvb_frontend_ops ves1x93_ops;
struct dvb_frontend* ves1x93_attach(const struct ves1x93_config* config,
@@ -523,6 +529,7 @@ static struct dvb_frontend_ops ves1x93_ops = {
.init = ves1x93_init,
.sleep = ves1x93_sleep,
+ .i2c_gate_ctrl = ves1x93_i2c_gate_ctrl,
.set_frontend = ves1x93_set_frontend,
.get_frontend = ves1x93_get_frontend,