aboutsummaryrefslogtreecommitdiff
path: root/drivers/media/video/cx88/cx88-i2c.c
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@g5.osdl.org> 2006-01-09 13:03:58 -0800
committerGravatar Linus Torvalds <torvalds@g5.osdl.org> 2006-01-09 13:03:58 -0800
commitf17578decc40df8fceff82b106582e30bdfb3189 (patch)
tree911a435a2094ac03ae649f020237674224e4124a /drivers/media/video/cx88/cx88-i2c.c
parent[PATCH] Fix more "if ((err = foo() < 0))" typos (diff)
parentV4L/DVB (3336): Bluebird firmware hosting moved to common dvb firmware dir on... (diff)
downloadlinux-f17578decc40df8fceff82b106582e30bdfb3189.tar.gz
linux-f17578decc40df8fceff82b106582e30bdfb3189.tar.bz2
linux-f17578decc40df8fceff82b106582e30bdfb3189.zip
Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
Diffstat (limited to 'drivers/media/video/cx88/cx88-i2c.c')
-rw-r--r--drivers/media/video/cx88/cx88-i2c.c13
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 @@
#include <asm/io.h>
#include "cx88.h"
+#include <media/v4l2-common.h>
static unsigned int i2c_debug = 0;
module_param(i2c_debug, int, 0644);
@@ -135,7 +136,17 @@ void cx88_call_i2c_clients(struct cx88_core *core, unsigned int cmd, void *arg)
{
if (0 != core->i2c_rc)
return;
- i2c_clients_command(&core->i2c_adap, cmd, arg);
+
+ if (core->dvbdev) {
+ if (core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl)
+ core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl(core->dvbdev->dvb.frontend, 1);
+
+ i2c_clients_command(&core->i2c_adap, cmd, arg);
+
+ if (core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl)
+ core->dvbdev->dvb.frontend->ops->i2c_gate_ctrl(core->dvbdev->dvb.frontend, 0);
+ } else
+ i2c_clients_command(&core->i2c_adap, cmd, arg);
}
static struct i2c_algo_bit_data cx8800_i2c_algo_template = {