Skip to content

Commit

Permalink
[PATCH] DVB: lgdt330x check callback fix
Browse files Browse the repository at this point in the history
Most of the patch is whitespace cleanup, but more importantly, this patch
checks to see whether a callback is set before calling it.  On cx88 boards
(currently the only boards using lgdt330x in 2.6.13) every callback is set.
However, newer drivers currently in development leave a callback undefined,
and lgdt330x must not call it if it isn't defined.

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Michael Krufky authored and Linus Torvalds committed Sep 7, 2005
1 parent 2684f5c commit dc9ca2a
Showing 1 changed file with 25 additions and 25 deletions.
50 changes: 25 additions & 25 deletions drivers/media/dvb/frontends/lgdt330x.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ struct lgdt330x_state
};

static int i2c_write_demod_bytes (struct lgdt330x_state* state,
u8 *buf, /* data bytes to send */
int len /* number of bytes to send */ )
u8 *buf, /* data bytes to send */
int len /* number of bytes to send */ )
{
struct i2c_msg msg =
{ .addr = state->config->demod_address,
Expand Down Expand Up @@ -129,13 +129,13 @@ static int lgdt3302_SwReset(struct lgdt330x_state* state)
};

ret = i2c_write_demod_bytes(state,
reset, sizeof(reset));
reset, sizeof(reset));
if (ret == 0) {

/* force reset high (inactive) and unmask interrupts */
reset[1] = 0x7f;
ret = i2c_write_demod_bytes(state,
reset, sizeof(reset));
reset, sizeof(reset));
}
return ret;
}
Expand All @@ -149,13 +149,13 @@ static int lgdt3303_SwReset(struct lgdt330x_state* state)
};

ret = i2c_write_demod_bytes(state,
reset, sizeof(reset));
reset, sizeof(reset));
if (ret == 0) {

/* force reset high (inactive) */
reset[1] = 0x01;
ret = i2c_write_demod_bytes(state,
reset, sizeof(reset));
reset, sizeof(reset));
}
return ret;
}
Expand All @@ -172,7 +172,6 @@ static int lgdt330x_SwReset(struct lgdt330x_state* state)
}
}


static int lgdt330x_init(struct dvb_frontend* fe)
{
/* Hardware reset is done using gpio[0] of cx23880x chip.
Expand Down Expand Up @@ -229,13 +228,13 @@ static int lgdt330x_init(struct dvb_frontend* fe)
case LGDT3302:
chip_name = "LGDT3302";
err = i2c_write_demod_bytes(state, lgdt3302_init_data,
sizeof(lgdt3302_init_data));
break;
sizeof(lgdt3302_init_data));
break;
case LGDT3303:
chip_name = "LGDT3303";
err = i2c_write_demod_bytes(state, lgdt3303_init_data,
sizeof(lgdt3303_init_data));
break;
sizeof(lgdt3303_init_data));
break;
default:
chip_name = "undefined";
printk (KERN_WARNING "Only LGDT3302 and LGDT3303 are supported chips.\n");
Expand All @@ -262,15 +261,15 @@ static int lgdt330x_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
switch (state->config->demod_chip) {
case LGDT3302:
err = i2c_read_demod_bytes(state, LGDT3302_PACKET_ERR_COUNTER1,
buf, sizeof(buf));
break;
buf, sizeof(buf));
break;
case LGDT3303:
err = i2c_read_demod_bytes(state, LGDT3303_PACKET_ERR_COUNTER1,
buf, sizeof(buf));
break;
buf, sizeof(buf));
break;
default:
printk(KERN_WARNING
"Only LGDT3302 and LGDT3303 are supported chips.\n");
"Only LGDT3302 and LGDT3303 are supported chips.\n");
err = -ENODEV;
}

Expand Down Expand Up @@ -330,7 +329,7 @@ static int lgdt330x_set_parameters(struct dvb_frontend* fe,

if (state->config->demod_chip == LGDT3303) {
err = i2c_write_demod_bytes(state, lgdt3303_8vsb_44_data,
sizeof(lgdt3303_8vsb_44_data));
sizeof(lgdt3303_8vsb_44_data));
}
break;

Expand Down Expand Up @@ -378,18 +377,19 @@ static int lgdt330x_set_parameters(struct dvb_frontend* fe,

/* Select the requested mode */
i2c_write_demod_bytes(state, top_ctrl_cfg,
sizeof(top_ctrl_cfg));
state->config->set_ts_params(fe, 0);
sizeof(top_ctrl_cfg));
if (state->config->set_ts_params)
state->config->set_ts_params(fe, 0);
state->current_modulation = param->u.vsb.modulation;
}

/* Change only if we are actually changing the channel */
if (state->current_frequency != param->frequency) {
/* Tune to the new frequency */
/* Tune to the specified frequency */
if (state->config->pll_set)
state->config->pll_set(fe, param);
/* Keep track of the new frequency */
state->current_frequency = param->frequency;
}

/* Keep track of the new frequency */
state->current_frequency = param->frequency;

lgdt330x_SwReset(state);
return 0;
}
Expand Down

0 comments on commit dc9ca2a

Please sign in to comment.