diff options
author | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2015-10-23 13:30:20 +0200 |
---|---|---|
committer | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2015-10-23 13:30:20 +0200 |
commit | e7549b926dd3ceec048f5689df90d4ec970c9419 (patch) | |
tree | c8645e0b4343c309aac1a3838a17cfcf0893d7b5 /drivers/staging/iio/meter/ade7854-i2c.c | |
parent | 499ba610c2829adafbf393c2f3773d73ae4445f3 (diff) | |
download | kernel_samsung_smdk4412-e7549b926dd3ceec048f5689df90d4ec970c9419.zip kernel_samsung_smdk4412-e7549b926dd3ceec048f5689df90d4ec970c9419.tar.gz kernel_samsung_smdk4412-e7549b926dd3ceec048f5689df90d4ec970c9419.tar.bz2 |
more driver stuff from 3.2.72
Diffstat (limited to 'drivers/staging/iio/meter/ade7854-i2c.c')
-rw-r--r-- | drivers/staging/iio/meter/ade7854-i2c.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/drivers/staging/iio/meter/ade7854-i2c.c b/drivers/staging/iio/meter/ade7854-i2c.c index 4578e7b..cbca3fd 100644 --- a/drivers/staging/iio/meter/ade7854-i2c.c +++ b/drivers/staging/iio/meter/ade7854-i2c.c @@ -10,6 +10,7 @@ #include <linux/kernel.h> #include <linux/i2c.h> #include <linux/slab.h> +#include <linux/module.h> #include "../iio.h" #include "ade7854.h" @@ -20,7 +21,7 @@ static int ade7854_i2c_write_reg_8(struct device *dev, { int ret; struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct ade7854_state *st = iio_dev_get_devdata(indio_dev); + struct ade7854_state *st = iio_priv(indio_dev); mutex_lock(&st->buf_lock); st->tx[0] = (reg_address >> 8) & 0xFF; @@ -39,7 +40,7 @@ static int ade7854_i2c_write_reg_16(struct device *dev, { int ret; struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct ade7854_state *st = iio_dev_get_devdata(indio_dev); + struct ade7854_state *st = iio_priv(indio_dev); mutex_lock(&st->buf_lock); st->tx[0] = (reg_address >> 8) & 0xFF; @@ -59,7 +60,7 @@ static int ade7854_i2c_write_reg_24(struct device *dev, { int ret; struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct ade7854_state *st = iio_dev_get_devdata(indio_dev); + struct ade7854_state *st = iio_priv(indio_dev); mutex_lock(&st->buf_lock); st->tx[0] = (reg_address >> 8) & 0xFF; @@ -80,7 +81,7 @@ static int ade7854_i2c_write_reg_32(struct device *dev, { int ret; struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct ade7854_state *st = iio_dev_get_devdata(indio_dev); + struct ade7854_state *st = iio_priv(indio_dev); mutex_lock(&st->buf_lock); st->tx[0] = (reg_address >> 8) & 0xFF; @@ -101,7 +102,7 @@ static int ade7854_i2c_read_reg_8(struct device *dev, u8 *val) { struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct ade7854_state *st = iio_dev_get_devdata(indio_dev); + struct ade7854_state *st = iio_priv(indio_dev); int ret; mutex_lock(&st->buf_lock); @@ -127,7 +128,7 @@ static int ade7854_i2c_read_reg_16(struct device *dev, u16 *val) { struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct ade7854_state *st = iio_dev_get_devdata(indio_dev); + struct ade7854_state *st = iio_priv(indio_dev); int ret; mutex_lock(&st->buf_lock); @@ -153,7 +154,7 @@ static int ade7854_i2c_read_reg_24(struct device *dev, u32 *val) { struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct ade7854_state *st = iio_dev_get_devdata(indio_dev); + struct ade7854_state *st = iio_priv(indio_dev); int ret; mutex_lock(&st->buf_lock); @@ -179,7 +180,7 @@ static int ade7854_i2c_read_reg_32(struct device *dev, u32 *val) { struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct ade7854_state *st = iio_dev_get_devdata(indio_dev); + struct ade7854_state *st = iio_priv(indio_dev); int ret; mutex_lock(&st->buf_lock); @@ -204,13 +205,14 @@ static int __devinit ade7854_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) { int ret; - struct ade7854_state *st = kzalloc(sizeof *st, GFP_KERNEL); - if (!st) { - ret = -ENOMEM; - return ret; - } - - i2c_set_clientdata(client, st); + struct ade7854_state *st; + struct iio_dev *indio_dev; + + indio_dev = iio_allocate_device(sizeof(*st)); + if (indio_dev == NULL) + return -ENOMEM; + st = iio_priv(indio_dev); + i2c_set_clientdata(client, indio_dev); st->read_reg_8 = ade7854_i2c_read_reg_8; st->read_reg_16 = ade7854_i2c_read_reg_16; st->read_reg_24 = ade7854_i2c_read_reg_24; @@ -222,11 +224,9 @@ static int __devinit ade7854_i2c_probe(struct i2c_client *client, st->i2c = client; st->irq = client->irq; - ret = ade7854_probe(st, &client->dev); - if (ret) { - kfree(st); - return ret; - } + ret = ade7854_probe(indio_dev, &client->dev); + if (ret) + iio_free_device(indio_dev); return ret; } |