eeprom: ee1004: Move selected page detection to a separate function
authorJean Delvare <jdelvare@suse.de>
Mon, 6 May 2019 13:15:39 +0000 (15:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 24 May 2019 18:42:50 +0000 (20:42 +0200)
No functional change, this is in preparation for future needs.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/eeprom/ee1004.c

index 276c169..6c6348f 100644 (file)
@@ -57,6 +57,24 @@ MODULE_DEVICE_TABLE(i2c, ee1004_ids);
 
 /*-------------------------------------------------------------------------*/
 
+static int ee1004_get_current_page(void)
+{
+       int err;
+
+       err = i2c_smbus_read_byte(ee1004_set_page[0]);
+       if (err == -ENXIO) {
+               /* Nack means page 1 is selected */
+               return 1;
+       }
+       if (err < 0) {
+               /* Anything else is a real error, bail out */
+               return err;
+       }
+
+       /* Ack means page 0 is selected, returned value meaningless */
+       return 0;
+}
+
 static ssize_t ee1004_eeprom_read(struct i2c_client *client, char *buf,
                                  unsigned int offset, size_t count)
 {
@@ -190,17 +208,10 @@ static int ee1004_probe(struct i2c_client *client,
        }
 
        /* Remember current page to avoid unneeded page select */
-       err = i2c_smbus_read_byte(ee1004_set_page[0]);
-       if (err == -ENXIO) {
-               /* Nack means page 1 is selected */
-               ee1004_current_page = 1;
-       } else if (err < 0) {
-               /* Anything else is a real error, bail out */
+       err = ee1004_get_current_page();
+       if (err < 0)
                goto err_clients;
-       } else {
-               /* Ack means page 0 is selected, returned value meaningless */
-               ee1004_current_page = 0;
-       }
+       ee1004_current_page = err;
        dev_dbg(&client->dev, "Currently selected page: %d\n",
                ee1004_current_page);
        mutex_unlock(&ee1004_bus_lock);