@@ -79,10 +79,11 @@ static inline bool has_quirk_extra_read_cycle(struct eeprom_93xx46_dev *edev)
return edev->pdata->quirks & EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE;
}
-static int eeprom_93xx46_read(void *priv, unsigned int off,
- void *val, size_t count)
+static ssize_t eeprom_93xx46_read(void *priv, unsigned int off,
+ void *val, size_t count)
{
struct eeprom_93xx46_dev *edev = priv;
+ size_t bytes_read = count;
char *buf = val;
int err = 0;
int bits;
@@ -158,7 +159,7 @@ static int eeprom_93xx46_read(void *priv, unsigned int off,
mutex_unlock(&edev->lock);
- return err;
+ return err < 0 ? err : bytes_read;
}
static int eeprom_93xx46_ew(struct eeprom_93xx46_dev *edev, int is_on)
@@ -258,12 +259,13 @@ eeprom_93xx46_write_word(struct eeprom_93xx46_dev *edev,
return ret;
}
-static int eeprom_93xx46_write(void *priv, unsigned int off,
+static ssize_t eeprom_93xx46_write(void *priv, unsigned int off,
void *val, size_t count)
{
struct eeprom_93xx46_dev *edev = priv;
char *buf = val;
int i, ret, step = 1;
+ size_t bytes_written = count;
if (unlikely(off >= edev->size))
return -EFBIG;
@@ -304,7 +306,7 @@ static int eeprom_93xx46_write(void *priv, unsigned int off,
/* erase/write disable */
eeprom_93xx46_ew(edev, 0);
- return ret;
+ return ret < 0 ? ret : bytes_written;
}
static int eeprom_93xx46_eral(struct eeprom_93xx46_dev *edev)
Change nvmem read/write function definition return type to ssize_t. Signed-off-by: Joy Chakraborty <joychakr@google.com> --- drivers/misc/eeprom/eeprom_93xx46.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)