• Daniel Kurtz's avatar
    i2c-i801: Check and return errors during byte-by-byte transfers · 70a1cc19
    Daniel Kurtz authored
    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: default avatarDaniel Kurtz <djkurtz@chromium.org>
    Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
    70a1cc19
i2c-i801.c 27.8 KB