i2c_new_dummy is typically called from the probe function of the driver for the primary i2c client. It requires calls to i2c_unregister_device in the error path of the probe function and in the remove function. This can be simplified by introducing a device-managed version. Make at24 driver the first user of the new function. Changes in v2: - add change to i2c core to make a version of i2c_new_device available which returns an ERR_PTR instead of NULL in error case - few minor improvements Changes in v3: - rename _i2c_new_device to __i2c_new_device Changes in v4: - add missing kernel doc comments - add Reviewed-by Heiner Kallweit (3): i2c: core: improve return value handling of i2c_new_device and i2c_new_dummy i2c: core: add device-managed version of i2c_new_dummy eeprom: at24: switch to device-managed version of i2c_new_dummy Documentation/driver-model/devres.txt | 3 + drivers/i2c/i2c-core-base.c | 108 ++++++++++++++++++++++++++++++---- drivers/misc/eeprom/at24.c | 31 ++++------ include/linux/i2c.h | 3 + 4 files changed, 112 insertions(+), 33 deletions(-) -- 2.15.1