]> git.baikalelectronics.ru Git - kernel.git/commit
i2c-i801: Check and return errors during byte-by-byte transfers
authorDaniel Kurtz <djkurtz@chromium.org>
Tue, 24 Jul 2012 12:13:58 +0000 (14:13 +0200)
committerJean Delvare <khali@endymion.delvare>
Tue, 24 Jul 2012 12:13:58 +0000 (14:13 +0200)
commita1426536724ea5055b2a727137c240ea8f1668cb
treeb97d76988c4ac5781faf3edd8bde4021eadc1ad1
parentb8c5f43f5dd05e1674b7fc65bc2a67d1ecfdcc0a
i2c-i801: Check and return errors during byte-by-byte transfers

If an error is detected in the polling loop, abort the transaction and
return an error code.

 * DEV_ERR is set if the device does not respond with an acknowledge, and
the SMBus controller times out (minimum 25ms).
 * BUS_ERR is set if a bus arbitration collision is detected.  In other
words, when the SMBus controller tries to generate a START condition, but
detects that the SMBDATA is being held low, usually by another SMBus/I2C
master.
 * FAILED is only set if a transaction is stopped by software (using
the SMBHSTCNT KILL bit).

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
drivers/i2c/busses/i2c-i801.c