diff options
Diffstat (limited to 'drivers/media/video/cx88/cx88-i2c.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-i2c.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/media/video/cx88/cx88-i2c.c b/drivers/media/video/cx88/cx88-i2c.c index 4a8fb161b16a..f720901e9638 100644 --- a/drivers/media/video/cx88/cx88-i2c.c +++ b/drivers/media/video/cx88/cx88-i2c.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <asm/io.h> | 30 | #include <asm/io.h> |
31 | 31 | ||
32 | #include "cx88.h" | 32 | #include "cx88.h" |
33 | #include <media/v4l2-common.h> | ||
33 | 34 | ||
34 | static unsigned int i2c_debug = 0; | 35 | static unsigned int i2c_debug = 0; |
35 | module_param(i2c_debug, int, 0644); | 36 | module_param(i2c_debug, int, 0644); |
@@ -135,7 +136,17 @@ void cx88_call_i2c_clients(struct cx88_core *core, unsigned int cmd, void *arg) | |||
135 | { | 136 | { |
136 | if (0 != core->i2c_rc) | 137 | if (0 != core->i2c_rc) |
137 | return; | 138 | return; |
138 | i2c_clients_command(&core->i2c_adap, cmd, arg); | 139 | |
140 | if (core->dvbdev) { | ||
141 | if (core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl) | ||
142 | core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl(core->dvbdev->dvb.frontend, 1); | ||
143 | |||
144 | i2c_clients_command(&core->i2c_adap, cmd, arg); | ||
145 | |||
146 | if (core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl) | ||
147 | core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl(core->dvbdev->dvb.frontend, 0); | ||
148 | } else | ||
149 | i2c_clients_command(&core->i2c_adap, cmd, arg); | ||
139 | } | 150 | } |
140 | 151 | ||
141 | static struct i2c_algo_bit_data cx8800_i2c_algo_template = { | 152 | static struct i2c_algo_bit_data cx8800_i2c_algo_template = { |