summaryrefslogtreecommitdiff
path: root/drivers/staging/iio/adc/max1363_core.c
diff options
context:
space:
mode:
authorJonathan Cameron <jic23@kernel.org>2012-04-10 21:11:07 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-04-10 13:26:33 -0700
commit0b27d678c7fbeb88ab07b890b09c32a83121d9d6 (patch)
tree56d0707c3b1e6d79975a284939bd873d93dd2b38 /drivers/staging/iio/adc/max1363_core.c
parentecbf20ca95546f6347afe3952e07850a8e4c48de (diff)
staging:iio:max1363 enable use with inkernel interfaces.
Signed-off-by: Jonathan Cameron <jic23@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/iio/adc/max1363_core.c')
-rw-r--r--drivers/staging/iio/adc/max1363_core.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
index 2536b63c8f1d..9d7db7f70bd2 100644
--- a/drivers/staging/iio/adc/max1363_core.c
+++ b/drivers/staging/iio/adc/max1363_core.c
@@ -36,6 +36,7 @@
#include "../sysfs.h"
#include "../events.h"
#include "../buffer.h"
+#include "../driver.h"
#include "max1363.h"
@@ -1290,6 +1291,9 @@ static int __devinit max1363_probe(struct i2c_client *client,
ret = -ENOMEM;
goto error_disable_reg;
}
+ ret = iio_map_array_register(indio_dev, client->dev.platform_data);
+ if (ret < 0)
+ goto error_free_device;
st = iio_priv(indio_dev);
st->reg = reg;
/* this is only used for device removal purposes */
@@ -1300,7 +1304,7 @@ static int __devinit max1363_probe(struct i2c_client *client,
ret = max1363_alloc_scan_masks(indio_dev);
if (ret)
- goto error_free_device;
+ goto error_unregister_map;
/* Estabilish that the iio_dev is a child of the i2c device */
indio_dev->dev.parent = &client->dev;
@@ -1350,6 +1354,8 @@ error_cleanup_ring:
max1363_ring_cleanup(indio_dev);
error_free_available_scan_masks:
kfree(indio_dev->available_scan_masks);
+error_unregister_map:
+ iio_map_array_unregister(indio_dev, client->dev.platform_data);
error_free_device:
iio_free_device(indio_dev);
error_disable_reg:
@@ -1376,6 +1382,7 @@ static int max1363_remove(struct i2c_client *client)
regulator_disable(reg);
regulator_put(reg);
}
+ iio_map_array_unregister(indio_dev, client->dev.platform_data);
iio_free_device(indio_dev);
return 0;