diff options
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-i801.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index 965905fb5d56..614c9e4ffba3 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c | |||
@@ -179,10 +179,8 @@ static int i801_transaction(int xact) | |||
179 | } | 179 | } |
180 | 180 | ||
181 | if (temp & SMBHSTSTS_BUS_ERR) { | 181 | if (temp & SMBHSTSTS_BUS_ERR) { |
182 | result = -EIO; | 182 | result = -EAGAIN; |
183 | dev_err(&I801_dev->dev, "Bus collision! SMBus may be locked " | 183 | dev_dbg(&I801_dev->dev, "Lost arbitration\n"); |
184 | "until next hard reset. (sorry!)\n"); | ||
185 | /* Clock stops and slave is stuck in mid-transmission */ | ||
186 | } | 184 | } |
187 | 185 | ||
188 | if (temp & SMBHSTSTS_DEV_ERR) { | 186 | if (temp & SMBHSTSTS_DEV_ERR) { |
@@ -339,8 +337,8 @@ static int i801_block_transaction_byte_by_byte(union i2c_smbus_data *data, | |||
339 | dev_dbg(&I801_dev->dev, | 337 | dev_dbg(&I801_dev->dev, |
340 | "Error: Failed bus transaction\n"); | 338 | "Error: Failed bus transaction\n"); |
341 | } else if (temp & SMBHSTSTS_BUS_ERR) { | 339 | } else if (temp & SMBHSTSTS_BUS_ERR) { |
342 | result = -EIO; | 340 | result = -EAGAIN; |
343 | dev_err(&I801_dev->dev, "Bus collision!\n"); | 341 | dev_dbg(&I801_dev->dev, "Lost arbitration\n"); |
344 | } else if (temp & SMBHSTSTS_DEV_ERR) { | 342 | } else if (temp & SMBHSTSTS_DEV_ERR) { |
345 | result = -ENXIO; | 343 | result = -ENXIO; |
346 | dev_dbg(&I801_dev->dev, "Error: no response!\n"); | 344 | dev_dbg(&I801_dev->dev, "Error: no response!\n"); |