V4L/DVB (3866): Convert nxt200x to refactored tuner code

Convert to tuner_ops calls.
Remove pll function pointers from structure.
Remove unneeded tuner calls.
Standardise the calls used to retrieve tuner data.

Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
Andrew de Quincey 2006-04-18 17:47:10 -03:00 коммит произвёл Mauro Carvalho Chehab
Родитель 44d92aa781
Коммит 638a3fba39
2 изменённых файлов: 9 добавлений и 11 удалений

Просмотреть файл

@ -333,17 +333,17 @@ static int nxt200x_writetuner (struct nxt200x_state* state, u8* data)
dprintk("%s\n", __FUNCTION__); dprintk("%s\n", __FUNCTION__);
dprintk("Tuner Bytes: %02X %02X %02X %02X\n", data[0], data[1], data[2], data[3]); dprintk("Tuner Bytes: %02X %02X %02X %02X\n", data[1], data[2], data[3], data[4]);
/* if NXT2004, write directly to tuner. if NXT2002, write through NXT chip. /* if NXT2004, write directly to tuner. if NXT2002, write through NXT chip.
* direct write is required for Philips TUV1236D and ALPS TDHU2 */ * direct write is required for Philips TUV1236D and ALPS TDHU2 */
switch (state->demod_chip) { switch (state->demod_chip) {
case NXT2004: case NXT2004:
if (i2c_writebytes(state, state->config->pll_address, data, 4)) if (i2c_writebytes(state, data[0], data+1, 4))
printk(KERN_WARNING "nxt200x: error writing to tuner\n"); printk(KERN_WARNING "nxt200x: error writing to tuner\n");
/* wait until we have a lock */ /* wait until we have a lock */
while (count < 20) { while (count < 20) {
i2c_readbytes(state, state->config->pll_address, &buf, 1); i2c_readbytes(state, data[0], &buf, 1);
if (buf & 0x40) if (buf & 0x40)
return 0; return 0;
msleep(100); msleep(100);
@ -361,10 +361,10 @@ static int nxt200x_writetuner (struct nxt200x_state* state, u8* data)
nxt200x_writebytes(state, 0x34, &buf, 1); nxt200x_writebytes(state, 0x34, &buf, 1);
/* write actual tuner bytes */ /* write actual tuner bytes */
nxt200x_writebytes(state, 0x36, data, 4); nxt200x_writebytes(state, 0x36, data+1, 4);
/* set tuner i2c address */ /* set tuner i2c address */
buf = state->config->pll_address; buf = data[0] << 1;
nxt200x_writebytes(state, 0x35, &buf, 1); nxt200x_writebytes(state, 0x35, &buf, 1);
/* write UC Opmode to begin transfer */ /* write UC Opmode to begin transfer */
@ -534,7 +534,7 @@ static int nxt200x_setup_frontend_parameters (struct dvb_frontend* fe,
struct dvb_frontend_parameters *p) struct dvb_frontend_parameters *p)
{ {
struct nxt200x_state* state = fe->demodulator_priv; struct nxt200x_state* state = fe->demodulator_priv;
u8 buf[4]; u8 buf[5];
/* stop the micro first */ /* stop the micro first */
nxt200x_microcontroller_stop(state); nxt200x_microcontroller_stop(state);
@ -548,7 +548,9 @@ static int nxt200x_setup_frontend_parameters (struct dvb_frontend* fe,
} }
/* get tuning information */ /* get tuning information */
dvb_pll_configure(state->config->pll_desc, buf, p->frequency, 0); if (fe->ops->tuner_ops.pllbuf) {
fe->ops->tuner_ops.pllbuf(fe, p, buf, 5);
}
/* set additional params */ /* set additional params */
switch (p->u.vsb.modulation) { switch (p->u.vsb.modulation) {

Просмотреть файл

@ -38,10 +38,6 @@ struct nxt200x_config
/* the demodulator's i2c address */ /* the demodulator's i2c address */
u8 demod_address; u8 demod_address;
/* tuner information */
u8 pll_address;
struct dvb_pll_desc *pll_desc;
/* used to set pll input */ /* used to set pll input */
int (*set_pll_input)(u8* buf, int input); int (*set_pll_input)(u8* buf, int input);