On 12/18/2018 11:01 AM, Andrew Lunn wrote:
> On Tue, Dec 18, 2018 at 07:24:52AM +0100, Sergio Paracuellos wrote:
>>> +static int ksz9477_i2c_read_reg(struct i2c_client *i2c, u32 reg, u8 *val,
>>> + unsigned int len)
>>> +{
>>> + struct i2c_msg msg[2];
>>> + int ret = 0;
>>> +
>>> + val[0] = (u8)(reg >> 8);
>>> + val[1] = (u8)reg;
>>> +
>>> + msg[0].addr = i2c->addr;
>>> + msg[0].flags = 0;
>>> + msg[0].len = 2;
>>> + msg[0].buf = val;
>>> +
>>> + msg[1].addr = i2c->addr;
>>> + msg[1].flags = I2C_M_RD;
>>> + msg[1].len = len;
>>> + msg[1].buf = &val[2];
>>> +
>>> + if (i2c_transfer(i2c->adapter, msg, 2) != 2)
>>> + ret = -ENODEV;
>>
>> Should this be -EREMOTEIO instead?
>
> It should actually be whatever error code i2c_transfer returns.
Before we plunge into coding yet another I2C-and-SPI layer, can we use
regmap instead ?
--
Best regards,
Marek Vasut