From: Bradley Bolen Date: Tue, 13 Dec 2016 17:49:53 +0000 (-0500) Subject: i2c: mv_i2c.c: Correct address endianness X-Git-Tag: v2017.01-rc3~47^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=77466267eb3f937f432135f73efb25122e668cfc;p=u-boot i2c: mv_i2c.c: Correct address endianness 0c0f719ad2f46c8566a56daee37ebdb7c078c3b1 accidentally changed the endianness of the i2c read and write addresses. This was noticable when accessing EEPROMs that use 2 byte addressing as the LSB was being sent first. Signed-off-by: Bradley Bolen Reviewed-by: Stefan Roese --- diff --git a/drivers/i2c/mv_i2c.c b/drivers/i2c/mv_i2c.c index 7f52fa2d85..c78027239f 100644 --- a/drivers/i2c/mv_i2c.c +++ b/drivers/i2c/mv_i2c.c @@ -270,7 +270,7 @@ static int __i2c_read(struct mv_i2c *base, uchar chip, u8 *addr, int alen, msg.condition = I2C_COND_NORMAL; msg.acknack = I2C_ACKNAK_WAITACK; msg.direction = I2C_WRITE; - msg.data = *(addr++); + msg.data = addr[alen]; if (i2c_transfer(base, &msg)) return -1; } @@ -341,7 +341,7 @@ static int __i2c_write(struct mv_i2c *base, uchar chip, u8 *addr, int alen, msg.condition = I2C_COND_NORMAL; msg.acknack = I2C_ACKNAK_WAITACK; msg.direction = I2C_WRITE; - msg.data = *(addr++); + msg.data = addr[alen]; if (i2c_transfer(base, &msg)) return -1; }