V4L/DVB (10972): zl10353: i2c_gate_ctrl bug fix
authorAntti Palosaari <crope@iki.fi>
Tue, 10 Mar 2009 16:06:40 +0000 (13:06 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 13 Mar 2009 04:17:33 +0000 (01:17 -0300)
zl10353 i2c-gate was always closed and due to that devices having tuner
behind i2c-gate were broken. Add module configuration which allows disabling
i2c-gate only when really needed.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/zl10353.c
drivers/media/dvb/frontends/zl10353.h
drivers/media/video/saa7134/saa7134-dvb.c

index 170720b..b150ed3 100644 (file)
@@ -590,7 +590,7 @@ static int zl10353_i2c_gate_ctrl(struct dvb_frontend* fe, int enable)
        struct zl10353_state *state = fe->demodulator_priv;
        u8 val = 0x0a;
 
-       if (state->config.no_tuner) {
+       if (state->config.disable_i2c_gate_ctrl) {
                /* No tuner attached to the internal I2C bus */
                /* If set enable I2C bridge, the main I2C bus stopped hardly */
                return 0;
index fdbb88f..2287bac 100644 (file)
@@ -38,6 +38,9 @@ struct zl10353_config
 
        /* set if parallel ts output is required */
        int parallel_ts;
+
+       /* set if i2c_gate_ctrl disable is required */
+       u8 disable_i2c_gate_ctrl:1;
 };
 
 #if defined(CONFIG_DVB_ZL10353) || (defined(CONFIG_DVB_ZL10353_MODULE) && defined(MODULE))
index 0776ecf..b5370b3 100644 (file)
@@ -860,6 +860,7 @@ static struct zl10353_config behold_h6_config = {
        .demod_address = 0x1e>>1,
        .no_tuner      = 1,
        .parallel_ts   = 1,
+       .disable_i2c_gate_ctrl = 1,
 };
 
 /* ==================================================================