eeprom: at24: drop unnecessary label

If we move the nvmem registration above the pm enable calls and the
test read, we can drop the error label and make the code more readable
as there's now only a single place where we must call
pm_runtime_disable() in error path.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
This commit is contained in:
Bartosz Golaszewski 2019-05-20 09:10:42 +02:00
parent e7308628d0
commit b20eb4c1f0

View File

@ -685,23 +685,6 @@ static int at24_probe(struct i2c_client *client)
return err; return err;
} }
i2c_set_clientdata(client, at24);
/* enable runtime pm */
pm_runtime_set_active(dev);
pm_runtime_enable(dev);
/*
* Perform a one-byte test read to verify that the
* chip is functional.
*/
err = at24_read(at24, 0, &test_byte, 1);
pm_runtime_idle(dev);
if (err) {
err = -ENODEV;
goto err_runtime_pm;
}
nvmem_config.name = dev_name(dev); nvmem_config.name = dev_name(dev);
nvmem_config.dev = dev; nvmem_config.dev = dev;
nvmem_config.read_only = !writable; nvmem_config.read_only = !writable;
@ -717,9 +700,24 @@ static int at24_probe(struct i2c_client *client)
nvmem_config.size = byte_len; nvmem_config.size = byte_len;
at24->nvmem = devm_nvmem_register(dev, &nvmem_config); at24->nvmem = devm_nvmem_register(dev, &nvmem_config);
if (IS_ERR(at24->nvmem)) { if (IS_ERR(at24->nvmem))
err = PTR_ERR(at24->nvmem); return PTR_ERR(at24->nvmem);
goto err_runtime_pm;
i2c_set_clientdata(client, at24);
/* enable runtime pm */
pm_runtime_set_active(dev);
pm_runtime_enable(dev);
/*
* Perform a one-byte test read to verify that the
* chip is functional.
*/
err = at24_read(at24, 0, &test_byte, 1);
pm_runtime_idle(dev);
if (err) {
pm_runtime_disable(dev);
return -ENODEV;
} }
dev_info(dev, "%u byte %s EEPROM, %s, %u bytes/write\n", dev_info(dev, "%u byte %s EEPROM, %s, %u bytes/write\n",
@ -727,11 +725,6 @@ static int at24_probe(struct i2c_client *client)
writable ? "writable" : "read-only", at24->write_max); writable ? "writable" : "read-only", at24->write_max);
return 0; return 0;
err_runtime_pm:
pm_runtime_disable(dev);
return err;
} }
static int at24_remove(struct i2c_client *client) static int at24_remove(struct i2c_client *client)