diff options
author | Peter Meerwald <pmeerw@pmeerw.net> | 2013-07-29 18:18:00 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2013-08-03 17:18:54 -0400 |
commit | b6ff86f3f598a83715773923952565a36eafd952 (patch) | |
tree | bea1e33bff9887582c966025db00971f18863a44 /drivers/iio/dac | |
parent | 2669d723ac6a01857273848a090c747f044a62d3 (diff) |
iio:mcp4725: Use devm_iio_device_alloc
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio/dac')
-rw-r--r-- | drivers/iio/dac/mcp4725.c | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/drivers/iio/dac/mcp4725.c b/drivers/iio/dac/mcp4725.c index 18a78cd21e88..1f4a48e6a82c 100644 --- a/drivers/iio/dac/mcp4725.c +++ b/drivers/iio/dac/mcp4725.c | |||
@@ -292,15 +292,12 @@ static int mcp4725_probe(struct i2c_client *client, | |||
292 | 292 | ||
293 | if (!platform_data || !platform_data->vref_mv) { | 293 | if (!platform_data || !platform_data->vref_mv) { |
294 | dev_err(&client->dev, "invalid platform data"); | 294 | dev_err(&client->dev, "invalid platform data"); |
295 | err = -EINVAL; | 295 | return -EINVAL; |
296 | goto exit; | ||
297 | } | 296 | } |
298 | 297 | ||
299 | indio_dev = iio_device_alloc(sizeof(*data)); | 298 | indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); |
300 | if (indio_dev == NULL) { | 299 | if (indio_dev == NULL) |
301 | err = -ENOMEM; | 300 | return -ENOMEM; |
302 | goto exit; | ||
303 | } | ||
304 | data = iio_priv(indio_dev); | 301 | data = iio_priv(indio_dev); |
305 | i2c_set_clientdata(client, indio_dev); | 302 | i2c_set_clientdata(client, indio_dev); |
306 | data->client = client; | 303 | data->client = client; |
@@ -317,7 +314,7 @@ static int mcp4725_probe(struct i2c_client *client, | |||
317 | err = i2c_master_recv(client, inbuf, 3); | 314 | err = i2c_master_recv(client, inbuf, 3); |
318 | if (err < 0) { | 315 | if (err < 0) { |
319 | dev_err(&client->dev, "failed to read DAC value"); | 316 | dev_err(&client->dev, "failed to read DAC value"); |
320 | goto exit_free_device; | 317 | return err; |
321 | } | 318 | } |
322 | pd = (inbuf[0] >> 1) & 0x3; | 319 | pd = (inbuf[0] >> 1) & 0x3; |
323 | data->powerdown = pd > 0 ? true : false; | 320 | data->powerdown = pd > 0 ? true : false; |
@@ -326,25 +323,16 @@ static int mcp4725_probe(struct i2c_client *client, | |||
326 | 323 | ||
327 | err = iio_device_register(indio_dev); | 324 | err = iio_device_register(indio_dev); |
328 | if (err) | 325 | if (err) |
329 | goto exit_free_device; | 326 | return err; |
330 | 327 | ||
331 | dev_info(&client->dev, "MCP4725 DAC registered\n"); | 328 | dev_info(&client->dev, "MCP4725 DAC registered\n"); |
332 | 329 | ||
333 | return 0; | 330 | return 0; |
334 | |||
335 | exit_free_device: | ||
336 | iio_device_free(indio_dev); | ||
337 | exit: | ||
338 | return err; | ||
339 | } | 331 | } |
340 | 332 | ||
341 | static int mcp4725_remove(struct i2c_client *client) | 333 | static int mcp4725_remove(struct i2c_client *client) |
342 | { | 334 | { |
343 | struct iio_dev *indio_dev = i2c_get_clientdata(client); | 335 | iio_device_unregister(i2c_get_clientdata(client)); |
344 | |||
345 | iio_device_unregister(indio_dev); | ||
346 | iio_device_free(indio_dev); | ||
347 | |||
348 | return 0; | 336 | return 0; |
349 | } | 337 | } |
350 | 338 | ||