summaryrefslogtreecommitdiff
path: root/drivers/media/dvb/frontends/drxd_hard.c
diff options
context:
space:
mode:
authorDevin Heitmueller <dheitmueller@kernellabs.com>2011-03-13 05:02:01 (GMT)
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-05-20 10:26:19 (GMT)
commit6b142b3c81e6e532dfad7256fcc7e75fded49245 (patch)
tree8ef7b34726effc8a8b84d70fc32b5bfe28d309bd /drivers/media/dvb/frontends/drxd_hard.c
parent3e5659067892d94d859f8ae4c1129a84fe4d5244 (diff)
downloadlinux-6b142b3c81e6e532dfad7256fcc7e75fded49245.tar.xz
[media] drxd: provide ability to disable the i2c gate control function
If the tuner is not actually behind an i2c gate, using the i2c gate control function can wedge the i2c bus. Provide the ability to control on a per-board basis whether it should be used. Problem was noticed on the HVR-900 R2, where it resulted in the first tuning attempt succeeding, and then all subsequent attempts to access the xc3028 being treated as failures (including the call to sleep the tuner). Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/frontends/drxd_hard.c')
-rw-r--r--drivers/media/dvb/frontends/drxd_hard.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/dvb/frontends/drxd_hard.c b/drivers/media/dvb/frontends/drxd_hard.c
index 994195f..b8baafe 100644
--- a/drivers/media/dvb/frontends/drxd_hard.c
+++ b/drivers/media/dvb/frontends/drxd_hard.c
@@ -2662,6 +2662,9 @@ int drxd_config_i2c(struct dvb_frontend *fe, int onoff)
{
struct drxd_state *state=fe->demodulator_priv;
+ if (state->config.disable_i2c_gate_ctrl == 1)
+ return 0;
+
return DRX_ConfigureI2CBridge(state, onoff);
}