Commit 873688cd authored by Abylay Ospan's avatar Abylay Ospan Committed by Mauro Carvalho Chehab

V4L/DVB (13334): stv6110: add configurable gain

It has positive effect for NetUP Dual DVB-S2 CI card.
Signed-off-by: default avatarAbylay Ospan <aospan@netup.ru>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent adcd8de6
......@@ -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, &reg0[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)
......
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