iio: cros_ec_sensors: Use devm to setup the triggered buffer.
authorEnric Balletbo i Serra <enric.balletbo@collabora.com>
Fri, 24 Mar 2017 17:44:03 +0000 (18:44 +0100)
committerJonathan Cameron <jic23@kernel.org>
Sat, 25 Mar 2017 15:08:29 +0000 (15:08 +0000)
Use resourced managed function devm_iio_triggered_buffer_setup
to make error path simpler and be able to get rid of the remove
function.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c

index d6c372bb433b4983bca0d99b448ccd5af4e3cdab..cbf6288ad1748ba2d362ad5c4f18aa59c72f5d7f 100644 (file)
@@ -267,31 +267,12 @@ static int cros_ec_sensors_probe(struct platform_device *pdev)
        else
                state->core.read_ec_sensors_data = cros_ec_sensors_read_cmd;
 
-       ret = iio_triggered_buffer_setup(indio_dev, NULL,
-                                        cros_ec_sensors_capture, NULL);
+       ret = devm_iio_triggered_buffer_setup(dev, indio_dev, NULL,
+                       cros_ec_sensors_capture, NULL);
        if (ret)
                return ret;
 
-       ret = iio_device_register(indio_dev);
-       if (ret)
-               goto error_uninit_buffer;
-
-       return 0;
-
-error_uninit_buffer:
-       iio_triggered_buffer_cleanup(indio_dev);
-
-       return ret;
-}
-
-static int cros_ec_sensors_remove(struct platform_device *pdev)
-{
-       struct iio_dev *indio_dev = platform_get_drvdata(pdev);
-
-       iio_device_unregister(indio_dev);
-       iio_triggered_buffer_cleanup(indio_dev);
-
-       return 0;
+       return devm_iio_device_register(dev, indio_dev);
 }
 
 static const struct platform_device_id cros_ec_sensors_ids[] = {
@@ -313,7 +294,6 @@ static struct platform_driver cros_ec_sensors_platform_driver = {
                .name   = "cros-ec-sensors",
        },
        .probe          = cros_ec_sensors_probe,
-       .remove         = cros_ec_sensors_remove,
        .id_table       = cros_ec_sensors_ids,
 };
 module_platform_driver(cros_ec_sensors_platform_driver);