forked from Minki/linux
V4L/DVB (13334): stv6110: add configurable gain
It has positive effect for NetUP Dual DVB-S2 CI card. Signed-off-by: Abylay Ospan <aospan@netup.ru> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
adcd8de6de
commit
873688cd30
@ -37,6 +37,7 @@ struct stv6110_priv {
|
||||
|
||||
u32 mclk;
|
||||
u8 clk_div;
|
||||
u8 gain;
|
||||
u8 regs[8];
|
||||
};
|
||||
|
||||
@ -255,7 +256,7 @@ static int stv6110_set_frequency(struct dvb_frontend *fe, u32 frequency)
|
||||
u8 ret = 0x04;
|
||||
u32 divider, ref, p, presc, i, result_freq, vco_freq;
|
||||
s32 p_calc, p_calc_opt = 1000, r_div, r_div_opt = 0, p_val;
|
||||
s32 srate; u8 gain;
|
||||
s32 srate;
|
||||
|
||||
dprintk("%s, freq=%d kHz, mclk=%d Hz\n", __func__,
|
||||
frequency, priv->mclk);
|
||||
@ -273,15 +274,8 @@ static int stv6110_set_frequency(struct dvb_frontend *fe, u32 frequency)
|
||||
} else
|
||||
srate = 15000000;
|
||||
|
||||
if (srate >= 15000000)
|
||||
gain = 3; /* +6 dB */
|
||||
else if (srate >= 5000000)
|
||||
gain = 3; /* +6 dB */
|
||||
else
|
||||
gain = 3; /* +6 dB */
|
||||
|
||||
priv->regs[RSTV6110_CTRL2] &= ~0x0f;
|
||||
priv->regs[RSTV6110_CTRL2] |= (gain & 0x0f);
|
||||
priv->regs[RSTV6110_CTRL2] |= (priv->gain & 0x0f);
|
||||
|
||||
if (frequency <= 1023000) {
|
||||
p = 1;
|
||||
@ -436,6 +430,7 @@ struct dvb_frontend *stv6110_attach(struct dvb_frontend *fe,
|
||||
priv->i2c = i2c;
|
||||
priv->mclk = config->mclk;
|
||||
priv->clk_div = config->clk_div;
|
||||
priv->gain = config->gain;
|
||||
|
||||
memcpy(&priv->regs, ®0[1], 8);
|
||||
|
||||
|
@ -41,6 +41,7 @@
|
||||
struct stv6110_config {
|
||||
u8 i2c_address;
|
||||
u32 mclk;
|
||||
u8 gain;
|
||||
u8 clk_div; /* divisor value for the output clock */
|
||||
};
|
||||
|
||||
|
@ -414,12 +414,14 @@ static struct stv6110_config netup_stv6110_tunerconfig_a = {
|
||||
.i2c_address = 0x60,
|
||||
.mclk = 16000000,
|
||||
.clk_div = 1,
|
||||
.gain = 8, /* +16 dB - maximum gain */
|
||||
};
|
||||
|
||||
static struct stv6110_config netup_stv6110_tunerconfig_b = {
|
||||
.i2c_address = 0x63,
|
||||
.mclk = 16000000,
|
||||
.clk_div = 1,
|
||||
.gain = 8, /* +16 dB - maximum gain */
|
||||
};
|
||||
|
||||
static int tbs_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
|
||||
|
Loading…
Reference in New Issue
Block a user