diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-08-20 11:06:44 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-08-20 11:06:44 -0300 |
commit | e9f3de679c696aca2da479114ffac7389e0196e1 (patch) | |
tree | a7c7e5751db11b13e6406ee77798adccd563c6fb /linux/drivers/media/dvb/b2c2 | |
parent | 636d8a20cebdf6c1829cc7e05ecf2d61c4bad253 (diff) | |
parent | 32e56900143835f0987500c4181a1f4cdf5bd11c (diff) | |
download | mediapointer-dvb-s2-e9f3de679c696aca2da479114ffac7389e0196e1.tar.gz mediapointer-dvb-s2-e9f3de679c696aca2da479114ffac7389e0196e1.tar.bz2 |
merge: http://linuxtv.org/hg/~hverkuil/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/b2c2')
-rw-r--r-- | linux/drivers/media/dvb/b2c2/flexcop-i2c.c | 7 |
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; |