diff options
Diffstat (limited to 'drivers/media/dvb/frontends/stv6110.c')
| -rw-r--r-- | drivers/media/dvb/frontends/stv6110.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/media/dvb/frontends/stv6110.c b/drivers/media/dvb/frontends/stv6110.c index dcf1b21ea974..bef0cc838471 100644 --- a/drivers/media/dvb/frontends/stv6110.c +++ b/drivers/media/dvb/frontends/stv6110.c | |||
| @@ -37,6 +37,7 @@ struct stv6110_priv { | |||
| 37 | 37 | ||
| 38 | u32 mclk; | 38 | u32 mclk; |
| 39 | u8 clk_div; | 39 | u8 clk_div; |
| 40 | u8 gain; | ||
| 40 | u8 regs[8]; | 41 | u8 regs[8]; |
| 41 | }; | 42 | }; |
| 42 | 43 | ||
| @@ -255,7 +256,7 @@ static int stv6110_set_frequency(struct dvb_frontend *fe, u32 frequency) | |||
| 255 | u8 ret = 0x04; | 256 | u8 ret = 0x04; |
| 256 | u32 divider, ref, p, presc, i, result_freq, vco_freq; | 257 | u32 divider, ref, p, presc, i, result_freq, vco_freq; |
| 257 | s32 p_calc, p_calc_opt = 1000, r_div, r_div_opt = 0, p_val; | 258 | s32 p_calc, p_calc_opt = 1000, r_div, r_div_opt = 0, p_val; |
| 258 | s32 srate; u8 gain; | 259 | s32 srate; |
| 259 | 260 | ||
| 260 | dprintk("%s, freq=%d kHz, mclk=%d Hz\n", __func__, | 261 | dprintk("%s, freq=%d kHz, mclk=%d Hz\n", __func__, |
| 261 | frequency, priv->mclk); | 262 | frequency, priv->mclk); |
| @@ -273,15 +274,8 @@ static int stv6110_set_frequency(struct dvb_frontend *fe, u32 frequency) | |||
| 273 | } else | 274 | } else |
| 274 | srate = 15000000; | 275 | srate = 15000000; |
| 275 | 276 | ||
| 276 | if (srate >= 15000000) | ||
| 277 | gain = 3; /* +6 dB */ | ||
| 278 | else if (srate >= 5000000) | ||
| 279 | gain = 3; /* +6 dB */ | ||
| 280 | else | ||
| 281 | gain = 3; /* +6 dB */ | ||
| 282 | |||
| 283 | priv->regs[RSTV6110_CTRL2] &= ~0x0f; | 277 | priv->regs[RSTV6110_CTRL2] &= ~0x0f; |
| 284 | priv->regs[RSTV6110_CTRL2] |= (gain & 0x0f); | 278 | priv->regs[RSTV6110_CTRL2] |= (priv->gain & 0x0f); |
| 285 | 279 | ||
| 286 | if (frequency <= 1023000) { | 280 | if (frequency <= 1023000) { |
| 287 | p = 1; | 281 | p = 1; |
| @@ -436,6 +430,7 @@ struct dvb_frontend *stv6110_attach(struct dvb_frontend *fe, | |||
| 436 | priv->i2c = i2c; | 430 | priv->i2c = i2c; |
| 437 | priv->mclk = config->mclk; | 431 | priv->mclk = config->mclk; |
| 438 | priv->clk_div = config->clk_div; | 432 | priv->clk_div = config->clk_div; |
| 433 | priv->gain = config->gain; | ||
| 439 | 434 | ||
| 440 | memcpy(&priv->regs, ®0[1], 8); | 435 | memcpy(&priv->regs, ®0[1], 8); |
| 441 | 436 | ||
