Commit 80519bc7 authored by Linus Torvalds's avatar Linus Torvalds

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
parents ecd4b48a 102b59c6
...@@ -94,7 +94,7 @@ static int smbus_xfer(struct i2c_adapter *i2c_adap, u16 addr, ...@@ -94,7 +94,7 @@ static int smbus_xfer(struct i2c_adapter *i2c_adap, u16 addr,
} }
break; break;
default: default:
return -1; /* XXXKW better error code? */ return -EOPNOTSUPP;
} }
while (csr_in32(SMB_CSR(adap, R_SMB_STATUS)) & M_SMB_BUSY) 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, ...@@ -104,7 +104,7 @@ static int smbus_xfer(struct i2c_adapter *i2c_adap, u16 addr,
if (error & M_SMB_ERROR) { if (error & M_SMB_ERROR) {
/* Clear error bit by writing a 1 */ /* Clear error bit by writing a 1 */
csr_out32(M_SMB_ERROR, SMB_CSR(adap, R_SMB_STATUS)); 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) if (data_bytes == 1)
......
...@@ -1428,13 +1428,12 @@ static int i2c_detect(struct i2c_adapter *adapter, struct i2c_driver *driver) ...@@ -1428,13 +1428,12 @@ static int i2c_detect(struct i2c_adapter *adapter, struct i2c_driver *driver)
if (!(adapter->class & driver->class)) if (!(adapter->class & driver->class))
goto exit_free; goto exit_free;
/* Stop here if we can't use SMBUS_QUICK */ /* Stop here if the bus doesn't support probing */
if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK)) { if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_READ_BYTE)) {
if (address_list[0] == I2C_CLIENT_END) if (address_list[0] == I2C_CLIENT_END)
goto exit_free; goto exit_free;
dev_warn(&adapter->dev, "SMBus Quick command not supported, " dev_warn(&adapter->dev, "Probing not supported\n");
"can't probe for chips\n");
err = -EOPNOTSUPP; err = -EOPNOTSUPP;
goto exit_free; goto exit_free;
} }
......
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