Re: [PATCH v1 05/17] misc: ds1682: Change nvmem reg_read/write return type

From: Joy Chakraborty
Date: Thu Jun 06 2024 - 05:25:31 EST


On Thu, Jun 6, 2024 at 2:48 AM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>
> On 6/5/24 10:59, Joy Chakraborty wrote:
> > Change nvmem read/write function definition return type to ssize_t.
> >
> > Signed-off-by: Joy Chakraborty <joychakr@xxxxxxxxxx>
> > ---
> > drivers/misc/ds1682.c | 16 ++++++----------
> > 1 file changed, 6 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/misc/ds1682.c b/drivers/misc/ds1682.c
> > index 5f8dcd0e3848..953341666ddb 100644
> > --- a/drivers/misc/ds1682.c
> > +++ b/drivers/misc/ds1682.c
> > @@ -198,26 +198,22 @@ static const struct bin_attribute ds1682_eeprom_attr = {
> > .write = ds1682_eeprom_write,
> > };
> >
> > -static int ds1682_nvmem_read(void *priv, unsigned int offset, void *val,
> > - size_t bytes)
> > +static ssize_t ds1682_nvmem_read(void *priv, unsigned int offset, void *val,
> > + size_t bytes)
> > {
> > struct i2c_client *client = priv;
> > - int ret;
> >
> > - ret = i2c_smbus_read_i2c_block_data(client, DS1682_REG_EEPROM + offset,
> > + return i2c_smbus_read_i2c_block_data(client, DS1682_REG_EEPROM + offset,
> > bytes, val);
> > - return ret < 0 ? ret : 0;
> > }
> >
> > -static int ds1682_nvmem_write(void *priv, unsigned int offset, void *val,
> > - size_t bytes)
> > +static ssize_t ds1682_nvmem_write(void *priv, unsigned int offset, void *val,
> > + size_t bytes)
> > {
> > struct i2c_client *client = priv;
> > - int ret;
> >
> > - ret = i2c_smbus_write_i2c_block_data(client, DS1682_REG_EEPROM + offset,
> > + return i2c_smbus_write_i2c_block_data(client, DS1682_REG_EEPROM + offset,
> > bytes, val);
>
> i2c_smbus_write_i2c_block_data() does not return the number of bytes written.
> It returns either 0 or an error code.
>
Ack, I see only i2c_smbus_read_i2c_block_data() returns the number of
bytes read . Will fix it next revision.

> Guenter
>