OSDN Git Service

iio: gyro: itg3200_core: Use devm_iio_device_alloc
authorSachin Kamat <sachin.kamat@linaro.org>
Tue, 13 Aug 2013 06:34:00 +0000 (07:34 +0100)
committerJonathan Cameron <jic23@kernel.org>
Sat, 17 Aug 2013 14:50:56 +0000 (15:50 +0100)
Using devm_iio_device_alloc makes code simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Christian Strobel <christian.strobel@iis.fraunhofer.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/gyro/itg3200_core.c

index d66605d..4d3f3b9 100644 (file)
@@ -309,11 +309,9 @@ static int itg3200_probe(struct i2c_client *client,
 
        dev_dbg(&client->dev, "probe I2C dev with IRQ %i", client->irq);
 
-       indio_dev = iio_device_alloc(sizeof(*st));
-       if (indio_dev == NULL) {
-               ret =  -ENOMEM;
-               goto error_ret;
-       }
+       indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*st));
+       if (!indio_dev)
+               return -ENOMEM;
 
        st = iio_priv(indio_dev);
 
@@ -330,7 +328,7 @@ static int itg3200_probe(struct i2c_client *client,
 
        ret = itg3200_buffer_configure(indio_dev);
        if (ret)
-               goto error_free_dev;
+               return ret;
 
        if (client->irq) {
                ret = itg3200_probe_trigger(indio_dev);
@@ -353,9 +351,6 @@ error_remove_trigger:
                itg3200_remove_trigger(indio_dev);
 error_unconfigure_buffer:
        itg3200_buffer_unconfigure(indio_dev);
-error_free_dev:
-       iio_device_free(indio_dev);
-error_ret:
        return ret;
 }
 
@@ -370,8 +365,6 @@ static int itg3200_remove(struct i2c_client *client)
 
        itg3200_buffer_unconfigure(indio_dev);
 
-       iio_device_free(indio_dev);
-
        return 0;
 }