Felix Held has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/61513 )
Change subject: drivers/i2c/designware/dw_i2c: return enum cb_err from dw_i2c_transfer ......................................................................
drivers/i2c/designware/dw_i2c: return enum cb_err from dw_i2c_transfer
Using enum cb_err as return type instead of int improves the readability of the code.
Signed-off-by: Felix Held felix-coreboot@felixheld.de Change-Id: Ic1812c4d8d2b4d9ad331a787bd302a4f0707c1fe --- M src/drivers/i2c/designware/dw_i2c.c M src/drivers/i2c/designware/dw_i2c.h 2 files changed, 5 insertions(+), 8 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/13/61513/1
diff --git a/src/drivers/i2c/designware/dw_i2c.c b/src/drivers/i2c/designware/dw_i2c.c index 1f73d5c..b051359 100644 --- a/src/drivers/i2c/designware/dw_i2c.c +++ b/src/drivers/i2c/designware/dw_i2c.c @@ -453,7 +453,7 @@ return ret; }
-int dw_i2c_transfer(unsigned int bus, const struct i2c_msg *msg, size_t count) +enum cb_err dw_i2c_transfer(unsigned int bus, const struct i2c_msg *msg, size_t count) { const struct i2c_msg *orig_msg = msg; size_t i; @@ -469,19 +469,19 @@ for (i = 0, start = 0; i < count; i++, msg++) { if (addr != msg->slave) { if (_dw_i2c_transfer(bus, &orig_msg[start], i - start) != CB_SUCCESS) - return -1; + return CB_ERR; start = i; addr = msg->slave; } }
- return _dw_i2c_transfer(bus, &orig_msg[start], count - start) == CB_SUCCESS ? 0 : -1; + return _dw_i2c_transfer(bus, &orig_msg[start], count - start); }
/* Global I2C bus handler, defined in include/device/i2c_simple.h */ int platform_i2c_transfer(unsigned int bus, struct i2c_msg *msg, int count) { - return dw_i2c_transfer(bus, msg, count < 0 ? 0 : count); + return dw_i2c_transfer(bus, msg, count < 0 ? 0 : count) == CB_SUCCESS ? 0 : -1; }
static enum cb_err dw_i2c_set_speed_config(unsigned int bus, diff --git a/src/drivers/i2c/designware/dw_i2c.h b/src/drivers/i2c/designware/dw_i2c.h index 2d255ee..a600ed6 100644 --- a/src/drivers/i2c/designware/dw_i2c.h +++ b/src/drivers/i2c/designware/dw_i2c.h @@ -108,11 +108,8 @@
/* * Process given I2C segments in a single transfer - * Return value: - * -1 = failure - * 0 = success */ -int dw_i2c_transfer(unsigned int bus, +enum cb_err dw_i2c_transfer(unsigned int bus, const struct i2c_msg *segments, size_t count);