adev->power.flags.ignore_parent = true;
        acpi_device_set_enumerated(adev);
 
-       if (!i2c_new_device(adapter, info)) {
+       if (IS_ERR(i2c_new_client_device(adapter, info))) {
                adev->power.flags.ignore_parent = false;
                dev_err(&adapter->dev,
                        "failed to add I2C device %s from ACPI\n",
  * resources, in that case this function can be used to create an i2c-client
  * for other I2cSerialBus resources in the Current Resource Settings table.
  *
- * Also see i2c_new_device, which this function calls to create the i2c-client.
+ * Also see i2c_new_client_device, which this function calls to create the
+ * i2c-client.
  *
  * Returns a pointer to the new i2c-client, or error pointer in case of failure.
  * Specifically, -EPROBE_DEFER is returned if the adapter is not found.
 {
        struct i2c_acpi_lookup lookup;
        struct i2c_adapter *adapter;
-       struct i2c_client *client;
        struct acpi_device *adev;
        LIST_HEAD(resource_list);
        int ret;
        if (!adapter)
                return ERR_PTR(-EPROBE_DEFER);
 
-       client = i2c_new_device(adapter, info);
-       if (!client)
-               return ERR_PTR(-ENODEV);
-
-       return client;
+       return i2c_new_client_device(adapter, info);
 }
 EXPORT_SYMBOL_GPL(i2c_acpi_new_device);