diff --git a/drivers/staging/iio/cdc/ad7152.c b/drivers/staging/iio/cdc/ad7152.c index 1d7c5283a85c..f2c309d1eb59 100644 --- a/drivers/staging/iio/cdc/ad7152.c +++ b/drivers/staging/iio/cdc/ad7152.c @@ -481,11 +481,9 @@ static int ad7152_probe(struct i2c_client *client, struct ad7152_chip_info *chip; struct iio_dev *indio_dev; - indio_dev = iio_device_alloc(sizeof(*chip)); - if (indio_dev == NULL) { - ret = -ENOMEM; - goto error_ret; - } + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*chip)); + if (!indio_dev) + return -ENOMEM; chip = iio_priv(indio_dev); /* this is only used for device removal purposes */ i2c_set_clientdata(client, indio_dev); @@ -506,16 +504,11 @@ static int ad7152_probe(struct i2c_client *client, ret = iio_device_register(indio_dev); if (ret) - goto error_free_dev; + return ret; dev_err(&client->dev, "%s capacitive sensor registered\n", id->name); return 0; - -error_free_dev: - iio_device_free(indio_dev); -error_ret: - return ret; } static int ad7152_remove(struct i2c_client *client) @@ -523,7 +516,6 @@ static int ad7152_remove(struct i2c_client *client) struct iio_dev *indio_dev = i2c_get_clientdata(client); iio_device_unregister(indio_dev); - iio_device_free(indio_dev); return 0; }