Commit 4de43d25 authored by Akinobu Mita's avatar Akinobu Mita Committed by Jonathan Cameron

iio: adc: ti-ads1015: use devm_iio_triggered_buffer_setup

Use devm_iio_triggered_buffer_setup to simplify the error path in the
probe() and remove() function.

This changes the remove order, but the end result of remove function
actually does the reverse of probe.

Cc: Daniel Baluta <daniel.baluta@gmail.com>
Cc: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 4128e8de
...@@ -627,9 +627,9 @@ static int ads1015_probe(struct i2c_client *client, ...@@ -627,9 +627,9 @@ static int ads1015_probe(struct i2c_client *client,
return PTR_ERR(data->regmap); return PTR_ERR(data->regmap);
} }
ret = iio_triggered_buffer_setup(indio_dev, NULL, ret = devm_iio_triggered_buffer_setup(&client->dev, indio_dev, NULL,
ads1015_trigger_handler, ads1015_trigger_handler,
&ads1015_buffer_setup_ops); &ads1015_buffer_setup_ops);
if (ret < 0) { if (ret < 0) {
dev_err(&client->dev, "iio triggered buffer setup failed\n"); dev_err(&client->dev, "iio triggered buffer setup failed\n");
return ret; return ret;
...@@ -643,7 +643,7 @@ static int ads1015_probe(struct i2c_client *client, ...@@ -643,7 +643,7 @@ static int ads1015_probe(struct i2c_client *client,
ret = pm_runtime_set_active(&client->dev); ret = pm_runtime_set_active(&client->dev);
if (ret) if (ret)
goto err_buffer_cleanup; return ret;
pm_runtime_set_autosuspend_delay(&client->dev, ADS1015_SLEEP_DELAY_MS); pm_runtime_set_autosuspend_delay(&client->dev, ADS1015_SLEEP_DELAY_MS);
pm_runtime_use_autosuspend(&client->dev); pm_runtime_use_autosuspend(&client->dev);
pm_runtime_enable(&client->dev); pm_runtime_enable(&client->dev);
...@@ -651,15 +651,10 @@ static int ads1015_probe(struct i2c_client *client, ...@@ -651,15 +651,10 @@ static int ads1015_probe(struct i2c_client *client,
ret = iio_device_register(indio_dev); ret = iio_device_register(indio_dev);
if (ret < 0) { if (ret < 0) {
dev_err(&client->dev, "Failed to register IIO device\n"); dev_err(&client->dev, "Failed to register IIO device\n");
goto err_buffer_cleanup; return ret;
} }
return 0; return 0;
err_buffer_cleanup:
iio_triggered_buffer_cleanup(indio_dev);
return ret;
} }
static int ads1015_remove(struct i2c_client *client) static int ads1015_remove(struct i2c_client *client)
...@@ -673,8 +668,6 @@ static int ads1015_remove(struct i2c_client *client) ...@@ -673,8 +668,6 @@ static int ads1015_remove(struct i2c_client *client)
pm_runtime_set_suspended(&client->dev); pm_runtime_set_suspended(&client->dev);
pm_runtime_put_noidle(&client->dev); pm_runtime_put_noidle(&client->dev);
iio_triggered_buffer_cleanup(indio_dev);
/* power down single shot mode */ /* power down single shot mode */
return ads1015_set_conv_mode(data, ADS1015_SINGLESHOT); return ads1015_set_conv_mode(data, ADS1015_SINGLESHOT);
} }
......
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