2017-11-27 20:46 GMT+01:00 Heiner Kallweit <hkallweit1@xxxxxxxxx>: > Chip datasheet mentions that word addresses other than the actual > start position of the MAC delivers undefined results. So fix this. > Current implementation doesn't work due to this wrong offset. > > Fixes: 0b813658c115 "eeprom: at24: add support for at24mac series" > Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx> > --- > v2: > - extended commit message > --- > drivers/misc/eeprom/at24.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c > index e0b4b36ef..00d602be7 100644 > --- a/drivers/misc/eeprom/at24.c > +++ b/drivers/misc/eeprom/at24.c > @@ -425,7 +425,8 @@ static ssize_t at24_eeprom_read_mac(struct at24_data *at24, char *buf, > memset(msg, 0, sizeof(msg)); > msg[0].addr = client->addr; > msg[0].buf = addrbuf; > - addrbuf[0] = 0x90 + offset; > + /* EUI-48 starts from 0x9a, EUI-64 from 0x98 */ > + addrbuf[0] = 0xa0 - at24->chip.byte_len + offset; > msg[0].len = 1; > msg[1].addr = client->addr; > msg[1].flags = I2C_M_RD; > -- > 2.15.0 > Applied to at24/fixes, thanks!