Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
* 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging: i2c/mips: Fix error return codes from Sibyte i2c bus driver i2c: Fix probability check
This commit is contained in:
commit
80519bc77b
@ -94,7 +94,7 @@ static int smbus_xfer(struct i2c_adapter *i2c_adap, u16 addr,
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return -1; /* XXXKW better error code? */
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
while (csr_in32(SMB_CSR(adap, R_SMB_STATUS)) & M_SMB_BUSY)
|
||||
@ -104,7 +104,7 @@ static int smbus_xfer(struct i2c_adapter *i2c_adap, u16 addr,
|
||||
if (error & M_SMB_ERROR) {
|
||||
/* Clear error bit by writing a 1 */
|
||||
csr_out32(M_SMB_ERROR, SMB_CSR(adap, R_SMB_STATUS));
|
||||
return -1; /* XXXKW better error code? */
|
||||
return (error & M_SMB_ERROR_TYPE) ? -EIO : -ENXIO;
|
||||
}
|
||||
|
||||
if (data_bytes == 1)
|
||||
|
@ -1428,13 +1428,12 @@ static int i2c_detect(struct i2c_adapter *adapter, struct i2c_driver *driver)
|
||||
if (!(adapter->class & driver->class))
|
||||
goto exit_free;
|
||||
|
||||
/* Stop here if we can't use SMBUS_QUICK */
|
||||
if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK)) {
|
||||
/* Stop here if the bus doesn't support probing */
|
||||
if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_READ_BYTE)) {
|
||||
if (address_list[0] == I2C_CLIENT_END)
|
||||
goto exit_free;
|
||||
|
||||
dev_warn(&adapter->dev, "SMBus Quick command not supported, "
|
||||
"can't probe for chips\n");
|
||||
dev_warn(&adapter->dev, "Probing not supported\n");
|
||||
err = -EOPNOTSUPP;
|
||||
goto exit_free;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user