diff options
Diffstat (limited to 'drivers/media/video/cx88/cx88-i2c.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-i2c.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/media/video/cx88/cx88-i2c.c b/drivers/media/video/cx88/cx88-i2c.c index 4a8fb161b16a..7363dd6e66e2 100644 --- a/drivers/media/video/cx88/cx88-i2c.c +++ b/drivers/media/video/cx88/cx88-i2c.c | |||
@@ -135,7 +135,20 @@ void cx88_call_i2c_clients(struct cx88_core *core, unsigned int cmd, void *arg) | |||
135 | { | 135 | { |
136 | if (0 != core->i2c_rc) | 136 | if (0 != core->i2c_rc) |
137 | return; | 137 | return; |
138 | i2c_clients_command(&core->i2c_adap, cmd, arg); | 138 | |
139 | if (core->dvbdev == NULL) { | ||
140 | i2c_clients_command(&core->i2c_adap, cmd, arg); | ||
141 | } else { | ||
142 | |||
143 | if (core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl) | ||
144 | core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl(core->dvbdev->dvb.frontend, 1); | ||
145 | |||
146 | i2c_clients_command(&core->i2c_adap, cmd, arg); | ||
147 | |||
148 | if (core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl) | ||
149 | core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl(core->dvbdev->dvb.frontend, 0); | ||
150 | } | ||
151 | |||
139 | } | 152 | } |
140 | 153 | ||
141 | static struct i2c_algo_bit_data cx8800_i2c_algo_template = { | 154 | static struct i2c_algo_bit_data cx8800_i2c_algo_template = { |