aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb
diff options
context:
space:
mode:
authorAbylay Ospan <aospan@netup.ru>2009-07-19 17:15:45 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-12 11:18:03 -0400
commitfc7e4a3e7201ee8a9a6359fdbcb6677231f353b5 (patch)
treeafec4656134b1ef262ef8ae78497305434af7923 /drivers/media/dvb
parent644c7ef0b9a9c4f4dec4a44249b7047452654722 (diff)
V4L/DVB (12312): stv0900: fix i2c repeater configuration must be set to manual
In automatic mode every stop event on SDA line ends repetition. However, in NetUP Dual card on the same i2c bus we have several devices. If someone using both adapters to lock simultaneously or working with CAM interface during lock procedure, it lead to end repetition prematurely quite often. Set stv0900 i2c repeater to manual mode prevents such situation. Signed-off-by: Abylay Ospan <aospan@netup.ru> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r--drivers/media/dvb/frontends/stv0900_core.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/media/dvb/frontends/stv0900_core.c b/drivers/media/dvb/frontends/stv0900_core.c
index 1da045fbb4ef..3bde3324a032 100644
--- a/drivers/media/dvb/frontends/stv0900_core.c
+++ b/drivers/media/dvb/frontends/stv0900_core.c
@@ -230,8 +230,8 @@ enum fe_stv0900_error stv0900_initialize(struct stv0900_internal *i_params)
230 stv0900_write_reg(i_params, R0900_P2_DMDISTATE, 0x5c); 230 stv0900_write_reg(i_params, R0900_P2_DMDISTATE, 0x5c);
231 stv0900_write_reg(i_params, R0900_P1_TNRCFG, 0x6c); 231 stv0900_write_reg(i_params, R0900_P1_TNRCFG, 0x6c);
232 stv0900_write_reg(i_params, R0900_P2_TNRCFG, 0x6f); 232 stv0900_write_reg(i_params, R0900_P2_TNRCFG, 0x6f);
233 stv0900_write_reg(i_params, R0900_P1_I2CRPT, 0x24); 233 stv0900_write_reg(i_params, R0900_P1_I2CRPT, 0x20);
234 stv0900_write_reg(i_params, R0900_P2_I2CRPT, 0x24); 234 stv0900_write_reg(i_params, R0900_P2_I2CRPT, 0x20);
235 stv0900_write_reg(i_params, R0900_NCOARSE, 0x13); 235 stv0900_write_reg(i_params, R0900_NCOARSE, 0x13);
236 msleep(3); 236 msleep(3);
237 stv0900_write_reg(i_params, R0900_I2CCFG, 0x08); 237 stv0900_write_reg(i_params, R0900_I2CCFG, 0x08);
@@ -370,8 +370,8 @@ static int stv0900_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
370 u32 fi2c; 370 u32 fi2c;
371 371
372 dmd_reg(fi2c, F0900_P1_I2CT_ON, F0900_P2_I2CT_ON); 372 dmd_reg(fi2c, F0900_P1_I2CT_ON, F0900_P2_I2CT_ON);
373 if (enable) 373
374 stv0900_write_bits(i_params, fi2c, 1); 374 stv0900_write_bits(i_params, fi2c, enable);
375 375
376 return 0; 376 return 0;
377} 377}