Commit 5d458751 authored by Jean Delvare's avatar Jean Delvare Committed by Greg Kroah-Hartman

eeprom: ee1004: Move selected page detection to a separate function

No functional change, this is in preparation for future needs.
Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
Tested-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e9e08a07
...@@ -57,6 +57,24 @@ MODULE_DEVICE_TABLE(i2c, ee1004_ids); ...@@ -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, static ssize_t ee1004_eeprom_read(struct i2c_client *client, char *buf,
unsigned int offset, size_t count) unsigned int offset, size_t count)
{ {
...@@ -190,17 +208,10 @@ static int ee1004_probe(struct i2c_client *client, ...@@ -190,17 +208,10 @@ static int ee1004_probe(struct i2c_client *client,
} }
/* Remember current page to avoid unneeded page select */ /* Remember current page to avoid unneeded page select */
err = i2c_smbus_read_byte(ee1004_set_page[0]); err = ee1004_get_current_page();
if (err == -ENXIO) { if (err < 0)
/* Nack means page 1 is selected */
ee1004_current_page = 1;
} else if (err < 0) {
/* Anything else is a real error, bail out */
goto err_clients; goto err_clients;
} else { ee1004_current_page = err;
/* Ack means page 0 is selected, returned value meaningless */
ee1004_current_page = 0;
}
dev_dbg(&client->dev, "Currently selected page: %d\n", dev_dbg(&client->dev, "Currently selected page: %d\n",
ee1004_current_page); ee1004_current_page);
mutex_unlock(&ee1004_bus_lock); mutex_unlock(&ee1004_bus_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment