Commit 02444222 authored by Andrew de Quincey's avatar Andrew de Quincey Committed by Mauro Carvalho Chehab

V4L/DVB (3848): Convert cx22702 to refactored tuner code

Convert to tuner_ops calls.
Remove pll function pointers from structure.
Remove unneeded tuner calls.
Add i2c gate control function.
Remove dvb-pll support - done elsewhere now.
Signed-off-by: default avatarAndrew de Quincey <adq_dvb@lidskialf.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 5becb3b0
...@@ -211,22 +211,10 @@ static int cx22702_set_tps (struct dvb_frontend* fe, struct dvb_frontend_paramet ...@@ -211,22 +211,10 @@ static int cx22702_set_tps (struct dvb_frontend* fe, struct dvb_frontend_paramet
u8 val; u8 val;
struct cx22702_state* state = fe->demodulator_priv; struct cx22702_state* state = fe->demodulator_priv;
/* set PLL */ if (fe->ops->tuner_ops.set_params) {
cx22702_i2c_gate_ctrl(fe, 1); fe->ops->tuner_ops.set_params(fe, p);
if (state->config->pll_set) { if (fe->ops->i2c_gate_ctrl) fe->ops->i2c_gate_ctrl(fe, 0);
state->config->pll_set(fe, p);
} else if (state->config->pll_desc) {
u8 pllbuf[4];
struct i2c_msg msg = { .addr = state->config->pll_address,
.buf = pllbuf, .len = 4 };
dvb_pll_configure(state->config->pll_desc, pllbuf,
p->frequency,
p->u.ofdm.bandwidth);
i2c_transfer(state->i2c, &msg, 1);
} else {
BUG();
} }
cx22702_i2c_gate_ctrl(fe, 0);
/* set inversion */ /* set inversion */
cx22702_set_inversion (state, p->inversion); cx22702_set_inversion (state, p->inversion);
...@@ -358,10 +346,6 @@ static int cx22702_init (struct dvb_frontend* fe) ...@@ -358,10 +346,6 @@ static int cx22702_init (struct dvb_frontend* fe)
cx22702_writereg (state, 0xf8, (state->config->output_mode << 1) & 0x02); cx22702_writereg (state, 0xf8, (state->config->output_mode << 1) & 0x02);
/* init PLL */
if (state->config->pll_init)
state->config->pll_init(fe);
cx22702_i2c_gate_ctrl(fe, 0); cx22702_i2c_gate_ctrl(fe, 0);
return 0; return 0;
...@@ -530,6 +514,7 @@ static struct dvb_frontend_ops cx22702_ops = { ...@@ -530,6 +514,7 @@ static struct dvb_frontend_ops cx22702_ops = {
.release = cx22702_release, .release = cx22702_release,
.init = cx22702_init, .init = cx22702_init,
.i2c_gate_ctrl = cx22702_i2c_gate_ctrl,
.set_frontend = cx22702_set_tps, .set_frontend = cx22702_set_tps,
.get_frontend = cx22702_get_frontend, .get_frontend = cx22702_get_frontend,
...@@ -540,7 +525,6 @@ static struct dvb_frontend_ops cx22702_ops = { ...@@ -540,7 +525,6 @@ static struct dvb_frontend_ops cx22702_ops = {
.read_signal_strength = cx22702_read_signal_strength, .read_signal_strength = cx22702_read_signal_strength,
.read_snr = cx22702_read_snr, .read_snr = cx22702_read_snr,
.read_ucblocks = cx22702_read_ucblocks, .read_ucblocks = cx22702_read_ucblocks,
.i2c_gate_ctrl = cx22702_i2c_gate_ctrl,
}; };
module_param(debug, int, 0644); module_param(debug, int, 0644);
......
...@@ -39,13 +39,6 @@ struct cx22702_config ...@@ -39,13 +39,6 @@ struct cx22702_config
#define CX22702_PARALLEL_OUTPUT 0 #define CX22702_PARALLEL_OUTPUT 0
#define CX22702_SERIAL_OUTPUT 1 #define CX22702_SERIAL_OUTPUT 1
u8 output_mode; u8 output_mode;
/* PLL maintenance */
u8 pll_address;
struct dvb_pll_desc *pll_desc;
int (*pll_init)(struct dvb_frontend* fe);
int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params);
}; };
extern struct dvb_frontend* cx22702_attach(const struct cx22702_config* config, extern struct dvb_frontend* cx22702_attach(const struct cx22702_config* config,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment