aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb
diff options
context:
space:
mode:
authorMalcolm Priestley <tvboxspy@gmail.com>2011-04-22 05:00:22 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-05-20 08:29:25 -0400
commit853e3b2930001534b88fb36e936c9a734a79046c (patch)
treec00a9e6e8fb0229cfcf0b233bf2960768a5bfd4b /drivers/media/dvb
parent08921ac9e9d185d6f472238ea9c79a3a70eb7ea7 (diff)
[media] IX2505V Keep I2C gate control alive
Gate could close after first I2C message. On stv0288 it does. Keep 2nd and 3rd message I2C gate control alive. Remove unnecessary gate closing in this module. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r--drivers/media/dvb/frontends/ix2505v.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/media/dvb/frontends/ix2505v.c b/drivers/media/dvb/frontends/ix2505v.c
index 6c2e929bd79f..9a517a4bf96d 100644
--- a/drivers/media/dvb/frontends/ix2505v.c
+++ b/drivers/media/dvb/frontends/ix2505v.c
@@ -218,11 +218,13 @@ static int ix2505v_set_params(struct dvb_frontend *fe,
218 fe->ops.i2c_gate_ctrl(fe, 1); 218 fe->ops.i2c_gate_ctrl(fe, 1);
219 219
220 len = sizeof(data); 220 len = sizeof(data);
221
222 ret |= ix2505v_write(state, data, len); 221 ret |= ix2505v_write(state, data, len);
223 222
224 data[2] |= 0x4; /* set TM = 1 other bits same */ 223 data[2] |= 0x4; /* set TM = 1 other bits same */
225 224
225 if (fe->ops.i2c_gate_ctrl)
226 fe->ops.i2c_gate_ctrl(fe, 1);
227
226 len = 1; 228 len = 1;
227 ret |= ix2505v_write(state, &data[2], len); /* write byte 4 only */ 229 ret |= ix2505v_write(state, &data[2], len); /* write byte 4 only */
228 230
@@ -233,12 +235,12 @@ static int ix2505v_set_params(struct dvb_frontend *fe,
233 235
234 deb_info("Data 2=[%x%x]\n", data[2], data[3]); 236 deb_info("Data 2=[%x%x]\n", data[2], data[3]);
235 237
238 if (fe->ops.i2c_gate_ctrl)
239 fe->ops.i2c_gate_ctrl(fe, 1);
240
236 len = 2; 241 len = 2;
237 ret |= ix2505v_write(state, &data[2], len); /* write byte 4 & 5 */ 242 ret |= ix2505v_write(state, &data[2], len); /* write byte 4 & 5 */
238 243
239 if (fe->ops.i2c_gate_ctrl)
240 fe->ops.i2c_gate_ctrl(fe, 0);
241
242 if (state->config->min_delay_ms) 244 if (state->config->min_delay_ms)
243 msleep(state->config->min_delay_ms); 245 msleep(state->config->min_delay_ms);
244 246