summaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends/stv090x.c
diff options
context:
space:
mode:
authorManu Abraham <abraham.manu@gmail.com>2009-04-07 05:19:54 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-16 18:20:38 -0300
commit017eb0381fedbfdcad1e8e536d014c4064e6687f (patch)
treeb88ea3f72137c515ad5fd18785787a07915d5a13 /drivers/media/dvb/frontends/stv090x.c
parentdd4c2b3f6a2d30602d22485ab725c84f2fb074b6 (diff)
V4L/DVB (11581): stv090x and stv6110x: fix repeater level setup and ref clock
* Reference clock was unused * Fix missing repeater level setup Signed-off-by: Manu Abraham <manu@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/frontends/stv090x.c')
-rw-r--r--drivers/media/dvb/frontends/stv090x.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/media/dvb/frontends/stv090x.c b/drivers/media/dvb/frontends/stv090x.c
index a65f1b7849a..e80d163c767 100644
--- a/drivers/media/dvb/frontends/stv090x.c
+++ b/drivers/media/dvb/frontends/stv090x.c
@@ -640,16 +640,19 @@ static int stv090x_write_reg(struct stv090x_state *state, unsigned int reg, u8 d
static int stv090x_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
{
struct stv090x_state *state = fe->demodulator_priv;
+ const struct stv090x_config *config = state->config;
u32 reg;
reg = STV090x_READ_DEMOD(state, I2CRPT);
-
+// STV090x_SETFIELD_Px(reg, ENARPT_LEVEL_FIELD, config->repeater_level);
if (enable) {
+ dprintk(FE_DEBUG, 1, "Enable Gate");
STV090x_SETFIELD_Px(reg, I2CT_ON_FIELD, 1);
if (STV090x_WRITE_DEMOD(state, I2CRPT, reg) < 0)
goto err;
} else {
+ dprintk(FE_DEBUG, 1, "Disable Gate");
STV090x_SETFIELD_Px(reg, I2CT_ON_FIELD, 0);
if ((STV090x_WRITE_DEMOD(state, I2CRPT, reg)) < 0)
goto err;
@@ -3773,6 +3776,7 @@ static int stv090x_setup(struct dvb_frontend *fe)
const struct stv090x_reg *stv090x_initval = NULL;
const struct stv090x_reg *stv090x_cut20_val = NULL;
unsigned long t1_size = 0, t2_size = 0;
+ u32 reg = 0;
int i;
@@ -3799,7 +3803,8 @@ static int stv090x_setup(struct dvb_frontend *fe)
if (STV090x_WRITE_DEMOD(state, TNRCFG, 0x6c) < 0) /* check register ! (No Tuner Mode) */
goto err;
- if (STV090x_WRITE_DEMOD(state, I2CRPT, 0x00) < 0) /* repeater OFF */
+ STV090x_SETFIELD_Px(reg, ENARPT_LEVEL_FIELD, config->repeater_level);
+ if (STV090x_WRITE_DEMOD(state, I2CRPT, reg) < 0) /* repeater OFF */
goto err;
if (stv090x_write_reg(state, STV090x_NCOARSE, 0x13) < 0) /* set PLL divider */