summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2007-08-20 11:10:31 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-08-20 11:10:31 -0300
commit638acf07e1921e20c61cd6fa47effac3dd17960b (patch)
tree25d9ef804621434a97f1c710f8013b64713712f5 /linux/drivers/media/dvb
parent231c6131d555f40b849f0e7332b9f90a2568145a (diff)
parente9f3de679c696aca2da479114ffac7389e0196e1 (diff)
downloadmediapointer-dvb-s2-638acf07e1921e20c61cd6fa47effac3dd17960b.tar.gz
mediapointer-dvb-s2-638acf07e1921e20c61cd6fa47effac3dd17960b.tar.bz2
merge: http://linuxtv.org/hg/~tap/v4l-dvb
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/dvb')
-rw-r--r--linux/drivers/media/dvb/b2c2/flexcop-i2c.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/linux/drivers/media/dvb/b2c2/flexcop-i2c.c b/linux/drivers/media/dvb/b2c2/flexcop-i2c.c
index 02a0ea6e1..6bf858a43 100644
--- a/linux/drivers/media/dvb/b2c2/flexcop-i2c.c
+++ b/linux/drivers/media/dvb/b2c2/flexcop-i2c.c
@@ -135,6 +135,13 @@ static int flexcop_master_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg msgs
struct flexcop_device *fc = i2c_get_adapdata(i2c_adap);
int i, ret = 0;
+ /* Some drivers use 1 byte or 0 byte reads as probes, which this
+ * driver doesn't support. These probes will always fail, so this
+ * hack makes them always succeed. If one knew how, it would of
+ * course be better to actually do the read. */
+ if (num == 1 && msgs[0].flags == I2C_M_RD && msgs[0].len <= 1)
+ return 1;
+
if (mutex_lock_interruptible(&fc->i2c_mutex))
return -ERESTARTSYS;