Commit 080dfbe1 authored by Olof Johansson's avatar Olof Johansson Committed by Linus Torvalds

Minor bug fixes to i2c-pasemi

* Last write during i2c_xfer is of the wrong byte (off-by-1).
* Read length is wrong for some of the reads (mistakenly used the PEC
  version)
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 56a3b5eb
...@@ -141,7 +141,7 @@ static int pasemi_i2c_xfer_msg(struct i2c_adapter *adapter, ...@@ -141,7 +141,7 @@ static int pasemi_i2c_xfer_msg(struct i2c_adapter *adapter,
for (i = 0; i < msg->len - 1; i++) for (i = 0; i < msg->len - 1; i++)
TXFIFO_WR(smbus, msg->buf[i]); TXFIFO_WR(smbus, msg->buf[i]);
TXFIFO_WR(smbus, msg->buf[msg->len] | TXFIFO_WR(smbus, msg->buf[msg->len-1] |
(stop ? MTXFIFO_STOP : 0)); (stop ? MTXFIFO_STOP : 0));
} }
...@@ -226,7 +226,7 @@ static int pasemi_smb_xfer(struct i2c_adapter *adapter, ...@@ -226,7 +226,7 @@ static int pasemi_smb_xfer(struct i2c_adapter *adapter,
rd = RXFIFO_RD(smbus); rd = RXFIFO_RD(smbus);
len = min_t(u8, (rd & MRXFIFO_DATA_M), len = min_t(u8, (rd & MRXFIFO_DATA_M),
I2C_SMBUS_BLOCK_MAX); I2C_SMBUS_BLOCK_MAX);
TXFIFO_WR(smbus, (len + 1) | MTXFIFO_READ | TXFIFO_WR(smbus, len | MTXFIFO_READ |
MTXFIFO_STOP); MTXFIFO_STOP);
} else { } else {
len = min_t(u8, data->block[0], I2C_SMBUS_BLOCK_MAX); len = min_t(u8, data->block[0], I2C_SMBUS_BLOCK_MAX);
...@@ -258,7 +258,7 @@ static int pasemi_smb_xfer(struct i2c_adapter *adapter, ...@@ -258,7 +258,7 @@ static int pasemi_smb_xfer(struct i2c_adapter *adapter,
rd = RXFIFO_RD(smbus); rd = RXFIFO_RD(smbus);
len = min_t(u8, (rd & MRXFIFO_DATA_M), len = min_t(u8, (rd & MRXFIFO_DATA_M),
I2C_SMBUS_BLOCK_MAX - len); I2C_SMBUS_BLOCK_MAX - len);
TXFIFO_WR(smbus, (len + 1) | MTXFIFO_READ | MTXFIFO_STOP); TXFIFO_WR(smbus, len | MTXFIFO_READ | MTXFIFO_STOP);
break; break;
default: default:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment