diff options
author | Andy Walls <awalls@md.metrocast.net> | 2011-02-13 19:52:50 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-03-02 11:45:19 -0500 |
commit | 67914b5c400d6c213f9e56d7547a2038ab5c06f4 (patch) | |
tree | 9d9a61fa20c6fd5ac6689995a9795fa262d35412 | |
parent | e192a7cf0effe7680264a5bc35c0ad1bdcdc921c (diff) |
[media] cx23885: Revert "Check for slave nack on all transactions"
This reverts commit 44835f197bf1e3f57464f23dfb239fef06cf89be.
With the CX23885 hardware I2C master, checking for I2C slave ACK/NAK
is not valid when the I2C_EXTEND or I2C_NOSTOP bits are set.
Revert the commit that checks for I2C slave ACK/NAK on all transactions,
so that XC5000 tuners work with the CX23885 again.
Thanks go to Mark Zimmerman for reporting and bisecting this problem.
Bisected-by: Mark Zimmerman <markzimm@frii.com>
Reported-by: Mark Zimmerman <markzimm@frii.com>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Cc: stable@kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/video/cx23885/cx23885-i2c.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/media/video/cx23885/cx23885-i2c.c b/drivers/media/video/cx23885/cx23885-i2c.c index ed3d8f55029b..1007f80bd7c1 100644 --- a/drivers/media/video/cx23885/cx23885-i2c.c +++ b/drivers/media/video/cx23885/cx23885-i2c.c | |||
@@ -122,10 +122,6 @@ static int i2c_sendbytes(struct i2c_adapter *i2c_adap, | |||
122 | 122 | ||
123 | if (!i2c_wait_done(i2c_adap)) | 123 | if (!i2c_wait_done(i2c_adap)) |
124 | goto eio; | 124 | goto eio; |
125 | if (!i2c_slave_did_ack(i2c_adap)) { | ||
126 | retval = -ENXIO; | ||
127 | goto err; | ||
128 | } | ||
129 | if (i2c_debug) { | 125 | if (i2c_debug) { |
130 | printk(" <W %02x %02x", msg->addr << 1, msg->buf[0]); | 126 | printk(" <W %02x %02x", msg->addr << 1, msg->buf[0]); |
131 | if (!(ctrl & I2C_NOSTOP)) | 127 | if (!(ctrl & I2C_NOSTOP)) |
@@ -209,10 +205,6 @@ static int i2c_readbytes(struct i2c_adapter *i2c_adap, | |||
209 | 205 | ||
210 | if (!i2c_wait_done(i2c_adap)) | 206 | if (!i2c_wait_done(i2c_adap)) |
211 | goto eio; | 207 | goto eio; |
212 | if (cnt == 0 && !i2c_slave_did_ack(i2c_adap)) { | ||
213 | retval = -ENXIO; | ||
214 | goto err; | ||
215 | } | ||
216 | msg->buf[cnt] = cx_read(bus->reg_rdata) & 0xff; | 208 | msg->buf[cnt] = cx_read(bus->reg_rdata) & 0xff; |
217 | if (i2c_debug) { | 209 | if (i2c_debug) { |
218 | dprintk(1, " %02x", msg->buf[cnt]); | 210 | dprintk(1, " %02x", msg->buf[cnt]); |