aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSachin Kamat <sachin.kamat@linaro.org>2013-08-19 07:38:00 -0400
committerJonathan Cameron <jic23@kernel.org>2013-08-19 15:25:43 -0400
commitba7272954ec933eca3e459ac45003c0073a86993 (patch)
treec2cbb0a7da1fc5dff73dbc9fdc2dfd29e4b63866
parent62a308a62d3d9ce3b167ce35a6643b22e66282e1 (diff)
iio: dac: ad5446: Use devm_* APIs
devm_* APIs are device managed and make code simpler. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
-rw-r--r--drivers/iio/dac/ad5446.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/iio/dac/ad5446.c b/drivers/iio/dac/ad5446.c
index cae8f6056ac3..96e9ed4c2d01 100644
--- a/drivers/iio/dac/ad5446.c
+++ b/drivers/iio/dac/ad5446.c
@@ -220,11 +220,11 @@ static int ad5446_probe(struct device *dev, const char *name,
220 struct regulator *reg; 220 struct regulator *reg;
221 int ret, voltage_uv = 0; 221 int ret, voltage_uv = 0;
222 222
223 reg = regulator_get(dev, "vcc"); 223 reg = devm_regulator_get(dev, "vcc");
224 if (!IS_ERR(reg)) { 224 if (!IS_ERR(reg)) {
225 ret = regulator_enable(reg); 225 ret = regulator_enable(reg);
226 if (ret) 226 if (ret)
227 goto error_put_reg; 227 return ret;
228 228
229 ret = regulator_get_voltage(reg); 229 ret = regulator_get_voltage(reg);
230 if (ret < 0) 230 if (ret < 0)
@@ -233,7 +233,7 @@ static int ad5446_probe(struct device *dev, const char *name,
233 voltage_uv = ret; 233 voltage_uv = ret;
234 } 234 }
235 235
236 indio_dev = iio_device_alloc(sizeof(*st)); 236 indio_dev = devm_iio_device_alloc(dev, sizeof(*st));
237 if (indio_dev == NULL) { 237 if (indio_dev == NULL) {
238 ret = -ENOMEM; 238 ret = -ENOMEM;
239 goto error_disable_reg; 239 goto error_disable_reg;
@@ -264,19 +264,13 @@ static int ad5446_probe(struct device *dev, const char *name,
264 264
265 ret = iio_device_register(indio_dev); 265 ret = iio_device_register(indio_dev);
266 if (ret) 266 if (ret)
267 goto error_free_device; 267 goto error_disable_reg;
268 268
269 return 0; 269 return 0;
270 270
271error_free_device:
272 iio_device_free(indio_dev);
273error_disable_reg: 271error_disable_reg:
274 if (!IS_ERR(reg)) 272 if (!IS_ERR(reg))
275 regulator_disable(reg); 273 regulator_disable(reg);
276error_put_reg:
277 if (!IS_ERR(reg))
278 regulator_put(reg);
279
280 return ret; 274 return ret;
281} 275}
282 276
@@ -286,11 +280,8 @@ static int ad5446_remove(struct device *dev)
286 struct ad5446_state *st = iio_priv(indio_dev); 280 struct ad5446_state *st = iio_priv(indio_dev);
287 281
288 iio_device_unregister(indio_dev); 282 iio_device_unregister(indio_dev);
289 if (!IS_ERR(st->reg)) { 283 if (!IS_ERR(st->reg))
290 regulator_disable(st->reg); 284 regulator_disable(st->reg);
291 regulator_put(st->reg);
292 }
293 iio_device_free(indio_dev);
294 285
295 return 0; 286 return 0;
296} 287}