Re: [PATCHv7 3/7] eeprom: at24: extend driver to plug into the NVMEM framework

From: Vladimir Zapolskiy
Date: Wed Mar 02 2016 - 18:03:13 EST


On 02.03.2016 23:48, Andrew Lunn wrote:
> On Wed, Mar 02, 2016 at 11:46:39PM +0200, Vladimir Zapolskiy wrote:
>> Hi Andrew,
>>
>> On 26.02.2016 21:59, Andrew Lunn wrote:
>>> Add a regmap for accessing the EEPROM, and then use that with the
>>> NVMEM framework. Set the NVMEM config structure to enable backward, so
>>> that the 'eeprom' file in sys is provided by the framework.
>>>
>>> Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
>>> Acked-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
>>> Tested-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
>>> ---
>>
>> [snip]
>>
>>> +static int at24_regmap_read(void *context, const void *reg, size_t reg_size,
>>> + void *val, size_t val_size)
>>> +{
>>> + struct at24_data *at24 = context;
>>> + off_t offset = *(u32 *)reg;
>>> + int err;
>>> +
>>> + err = at24_read(at24, val, offset, val_size);
>>> + if (err)
>>> + return err;
>>> + return 0;
>>
>> return at24_read(at24, val, offset, val_size);
>>
>> Minus 5 LoC.
>
> And everything breaks :-(
>
> regmap expects either an error code, or 0. Return a positive value and
> it is not happy.
>

Well, do you agree that semantically my proposed change is equal to the
original one?

Let see...

static int at24_regmap_read() {

int err;

err = at24_read(at24, val, offset, val_size);
if (err)
return err;
return 0;
}

I don't see a check for (err <= 0) returned.

--
With best wishes,
Vladimir