|
@@ -290,12 +290,12 @@ static int i2s_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat)
|
|
* bus, or started a new i2c message
|
|
* bus, or started a new i2c message
|
|
*/
|
|
*/
|
|
|
|
|
|
- if (iicstat & S3C2410_IICSTAT_LASTBIT &&
|
|
|
|
|
|
+ if (iicstat & S3C2410_IICSTAT_LASTBIT &&
|
|
!(i2c->msg->flags & I2C_M_IGNORE_NAK)) {
|
|
!(i2c->msg->flags & I2C_M_IGNORE_NAK)) {
|
|
/* ack was not received... */
|
|
/* ack was not received... */
|
|
|
|
|
|
dev_dbg(i2c->dev, "ack was not received\n");
|
|
dev_dbg(i2c->dev, "ack was not received\n");
|
|
- s3c24xx_i2c_stop(i2c, -EREMOTEIO);
|
|
|
|
|
|
+ s3c24xx_i2c_stop(i2c, -ENXIO);
|
|
goto out_ack;
|
|
goto out_ack;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -305,7 +305,7 @@ static int i2s_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat)
|
|
i2c->state = STATE_WRITE;
|
|
i2c->state = STATE_WRITE;
|
|
|
|
|
|
/* terminate the transfer if there is nothing to do
|
|
/* terminate the transfer if there is nothing to do
|
|
- * (used by the i2c probe to find devices */
|
|
|
|
|
|
+ * as this is used by the i2c probe to find devices. */
|
|
|
|
|
|
if (is_lastmsg(i2c) && i2c->msg->len == 0) {
|
|
if (is_lastmsg(i2c) && i2c->msg->len == 0) {
|
|
s3c24xx_i2c_stop(i2c, 0);
|
|
s3c24xx_i2c_stop(i2c, 0);
|