diff options
| author | Andrew de Quincey <adq_dvb@lidskialf.net> | 2006-05-16 21:22:02 +0100 |
|---|---|---|
| committer | Andrew de Quincey <adq_dvb@lidskialf.net> | 2006-05-16 21:22:02 +0100 |
| commit | 7b2b6e9be7a9c4c8ba356cfed999b6283579c7ae (patch) | |
| tree | 4bb05b3af93e5ed910863b872e3f69102bbc7baf /linux/drivers/media/dvb | |
| parent | 09face28b78569cdcc7c6ab30a96e8548c85f319 (diff) | |
| download | mediapointer-dvb-s2-7b2b6e9be7a9c4c8ba356cfed999b6283579c7ae.tar.gz mediapointer-dvb-s2-7b2b6e9be7a9c4c8ba356cfed999b6283579c7ae.tar.bz2 | |
Fix Pinnacle 300i
From: Andrew de Quincey <adq_dvb@lidskialf.net>
I had broken the mt352 tuning when a non-directly connected PLL was used -
uncommon, but this is what is used on the pinnacle card.
Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net>
Diffstat (limited to 'linux/drivers/media/dvb')
| -rw-r--r-- | linux/drivers/media/dvb/frontends/mt352.c | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/linux/drivers/media/dvb/frontends/mt352.c b/linux/drivers/media/dvb/frontends/mt352.c index ed3bede02..8601a3f43 100644 --- a/linux/drivers/media/dvb/frontends/mt352.c +++ b/linux/drivers/media/dvb/frontends/mt352.c @@ -287,30 +287,22 @@ static int mt352_set_parameters(struct dvb_frontend* fe, mt352_calc_nominal_rate(state, op->bandwidth, buf+4); mt352_calc_input_freq(state, buf+6); - // if there is no secondary tuner, call set_params to set up a potential - // tuner attached elsewhere if (state->config.no_tuner) { if (fe->ops->tuner_ops.set_params) { fe->ops->tuner_ops.set_params(fe, param); - if (fe->ops->i2c_gate_ctrl) fe->ops->i2c_gate_ctrl(fe, 0); + if (fe->ops->i2c_gate_ctrl) + fe->ops->i2c_gate_ctrl(fe, 0); } - /* start decoding only */ + mt352_write(fe, buf, 8); mt352_write(fe, fsm_go, 2); - } - - // retrieve the pllbuf - we do this even if there is no - // secondary tuner simply so we have a record of what was sent for - // debugging. - if (fe->ops->tuner_ops.calc_regs) { - fe->ops->tuner_ops.calc_regs(fe, param, buf+8, 5); - buf[8] <<= 1; - mt352_write(fe, buf, sizeof(buf)); - } - - // send PLL and start tuning and then decoding - if (!state->config.no_tuner) { - mt352_write(fe, tuner_go, 2); + } else { + if (fe->ops->tuner_ops.calc_regs) { + fe->ops->tuner_ops.calc_regs(fe, param, buf+8, 5); + buf[8] <<= 1; + mt352_write(fe, buf, sizeof(buf)); + mt352_write(fe, tuner_go, 2); + } } return 0; |
