linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc
@ 2013-09-11  9:55 Sachin Kamat
  2013-09-11  9:55 ` [PATCH 02/10] staging: iio: ad2s1200: Use devm_* APIs Sachin Kamat
                   ` (9 more replies)
  0 siblings, 10 replies; 19+ messages in thread
From: Sachin Kamat @ 2013-09-11  9:55 UTC (permalink / raw)
  To: linux-iio; +Cc: jic23, sachin.kamat, Shubhrajyoti Datta

devm_iio_device_alloc makes code simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Shubhrajyoti Datta <shubhrajyoti@ti.com>
---
Series compile tested.
---
 drivers/staging/iio/magnetometer/hmc5843.c |   16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
index 67c1ce7..790f456 100644
--- a/drivers/staging/iio/magnetometer/hmc5843.c
+++ b/drivers/staging/iio/magnetometer/hmc5843.c
@@ -643,11 +643,9 @@ static int hmc5843_probe(struct i2c_client *client,
 	struct iio_dev *indio_dev;
 	int err = 0;
 
-	indio_dev = iio_device_alloc(sizeof(*data));
-	if (indio_dev == NULL) {
-		err = -ENOMEM;
-		goto exit;
-	}
+	indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
+	if (!indio_dev)
+		return -ENOMEM;
 
 	/* default settings at probe */
 	data = iio_priv(indio_dev);
@@ -665,14 +663,9 @@ static int hmc5843_probe(struct i2c_client *client,
 
 	err = iio_device_register(indio_dev);
 	if (err)
-		goto exit_free2;
+		return err;
 
 	return 0;
-
-exit_free2:
-	iio_device_free(indio_dev);
-exit:
-	return err;
 }
 
 static int hmc5843_remove(struct i2c_client *client)
@@ -682,7 +675,6 @@ static int hmc5843_remove(struct i2c_client *client)
 	iio_device_unregister(indio_dev);
 	 /*  sleep mode to save power */
 	hmc5843_configure(client, HMC5843_MODE_SLEEP);
-	iio_device_free(indio_dev);
 
 	return 0;
 }
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 02/10] staging: iio: ad2s1200: Use devm_* APIs
  2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
@ 2013-09-11  9:55 ` Sachin Kamat
  2013-09-14 10:46   ` Jonathan Cameron
  2013-09-11  9:55 ` [PATCH 03/10] staging: iio: ad2s1200: Use dev_err instead of pr_err Sachin Kamat
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 19+ messages in thread
From: Sachin Kamat @ 2013-09-11  9:55 UTC (permalink / raw)
  To: linux-iio; +Cc: jic23, sachin.kamat, Graff Yang

devm_* APIs are device managed and make code simpler.
This patch also fixes the missing gpio_free call in remove.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Graff Yang <graff.yang@gmail.com>
---
 drivers/staging/iio/resolver/ad2s1200.c |   24 ++++++++----------------
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git a/drivers/staging/iio/resolver/ad2s1200.c b/drivers/staging/iio/resolver/ad2s1200.c
index 7122116..76f6d65 100644
--- a/drivers/staging/iio/resolver/ad2s1200.c
+++ b/drivers/staging/iio/resolver/ad2s1200.c
@@ -107,16 +107,16 @@ static int ad2s1200_probe(struct spi_device *spi)
 	unsigned short *pins = spi->dev.platform_data;
 
 	for (pn = 0; pn < AD2S1200_PN; pn++)
-		if (gpio_request_one(pins[pn], GPIOF_DIR_OUT, DRV_NAME)) {
+		ret = devm_gpio_request_one(&spi->dev, pins[pn], GPIOF_DIR_OUT,
+					    DRV_NAME);
+		if (ret) {
 			pr_err("%s: request gpio pin %d failed\n",
 						DRV_NAME, pins[pn]);
-			goto error_ret;
+			return ret;
 		}
-	indio_dev = iio_device_alloc(sizeof(*st));
-	if (indio_dev == NULL) {
-		ret = -ENOMEM;
-		goto error_ret;
-	}
+	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
+	if (!indio_dev)
+		return -ENOMEM;
 	spi_set_drvdata(spi, indio_dev);
 	st = iio_priv(indio_dev);
 	mutex_init(&st->lock);
@@ -133,26 +133,18 @@ static int ad2s1200_probe(struct spi_device *spi)
 
 	ret = iio_device_register(indio_dev);
 	if (ret)
-		goto error_free_dev;
+		return ret;
 
 	spi->max_speed_hz = AD2S1200_HZ;
 	spi->mode = SPI_MODE_3;
 	spi_setup(spi);
 
 	return 0;
-
-error_free_dev:
-	iio_device_free(indio_dev);
-error_ret:
-	for (--pn; pn >= 0; pn--)
-		gpio_free(pins[pn]);
-	return ret;
 }
 
 static int ad2s1200_remove(struct spi_device *spi)
 {
 	iio_device_unregister(spi_get_drvdata(spi));
-	iio_device_free(spi_get_drvdata(spi));
 
 	return 0;
 }
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 03/10] staging: iio: ad2s1200: Use dev_err instead of pr_err
  2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
  2013-09-11  9:55 ` [PATCH 02/10] staging: iio: ad2s1200: Use devm_* APIs Sachin Kamat
@ 2013-09-11  9:55 ` Sachin Kamat
  2013-09-14 10:47   ` Jonathan Cameron
  2013-09-11  9:55 ` [PATCH 04/10] staging: iio: ad2s1210: Use devm_iio_device_alloc Sachin Kamat
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 19+ messages in thread
From: Sachin Kamat @ 2013-09-11  9:55 UTC (permalink / raw)
  To: linux-iio; +Cc: jic23, sachin.kamat

dev_err is preferred over pr_err.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
---
 drivers/staging/iio/resolver/ad2s1200.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/iio/resolver/ad2s1200.c b/drivers/staging/iio/resolver/ad2s1200.c
index 76f6d65..62d3017 100644
--- a/drivers/staging/iio/resolver/ad2s1200.c
+++ b/drivers/staging/iio/resolver/ad2s1200.c
@@ -110,8 +110,8 @@ static int ad2s1200_probe(struct spi_device *spi)
 		ret = devm_gpio_request_one(&spi->dev, pins[pn], GPIOF_DIR_OUT,
 					    DRV_NAME);
 		if (ret) {
-			pr_err("%s: request gpio pin %d failed\n",
-						DRV_NAME, pins[pn]);
+			dev_err(&spi->dev, "request gpio pin %d failed\n",
+							pins[pn]);
 			return ret;
 		}
 	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 04/10] staging: iio: ad2s1210: Use devm_iio_device_alloc
  2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
  2013-09-11  9:55 ` [PATCH 02/10] staging: iio: ad2s1200: Use devm_* APIs Sachin Kamat
  2013-09-11  9:55 ` [PATCH 03/10] staging: iio: ad2s1200: Use dev_err instead of pr_err Sachin Kamat
@ 2013-09-11  9:55 ` Sachin Kamat
  2013-09-14 10:51   ` Jonathan Cameron
  2013-09-11  9:55 ` [PATCH 05/10] staging: iio: ad2s90: " Sachin Kamat
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 19+ messages in thread
From: Sachin Kamat @ 2013-09-11  9:55 UTC (permalink / raw)
  To: linux-iio; +Cc: jic23, sachin.kamat, Graff Yang

devm_iio_device_alloc makes code simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Graff Yang <graff.yang@gmail.com>
---
 drivers/staging/iio/resolver/ad2s1210.c |   14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/iio/resolver/ad2s1210.c b/drivers/staging/iio/resolver/ad2s1210.c
index 2b0c8e5..6966d5f 100644
--- a/drivers/staging/iio/resolver/ad2s1210.c
+++ b/drivers/staging/iio/resolver/ad2s1210.c
@@ -669,16 +669,14 @@ static int ad2s1210_probe(struct spi_device *spi)
 	if (spi->dev.platform_data == NULL)
 		return -EINVAL;
 
-	indio_dev = iio_device_alloc(sizeof(*st));
-	if (indio_dev == NULL) {
-		ret = -ENOMEM;
-		goto error_ret;
-	}
+	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
+	if (!indio_dev)
+		return -ENOMEM;
 	st = iio_priv(indio_dev);
 	st->pdata = spi->dev.platform_data;
 	ret = ad2s1210_setup_gpios(st);
 	if (ret < 0)
-		goto error_free_dev;
+		return ret;
 
 	spi_set_drvdata(spi, indio_dev);
 
@@ -709,9 +707,6 @@ static int ad2s1210_probe(struct spi_device *spi)
 
 error_free_gpios:
 	ad2s1210_free_gpios(st);
-error_free_dev:
-	iio_device_free(indio_dev);
-error_ret:
 	return ret;
 }
 
@@ -721,7 +716,6 @@ static int ad2s1210_remove(struct spi_device *spi)
 
 	iio_device_unregister(indio_dev);
 	ad2s1210_free_gpios(iio_priv(indio_dev));
-	iio_device_free(indio_dev);
 
 	return 0;
 }
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 05/10] staging: iio: ad2s90: Use devm_iio_device_alloc
  2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
                   ` (2 preceding siblings ...)
  2013-09-11  9:55 ` [PATCH 04/10] staging: iio: ad2s1210: Use devm_iio_device_alloc Sachin Kamat
@ 2013-09-11  9:55 ` Sachin Kamat
  2013-09-14 10:56   ` Jonathan Cameron
  2013-09-11  9:55 ` [PATCH 06/10] staging: iio: ade7753: " Sachin Kamat
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 19+ messages in thread
From: Sachin Kamat @ 2013-09-11  9:55 UTC (permalink / raw)
  To: linux-iio; +Cc: jic23, sachin.kamat, Graff Yang

devm_iio_device_alloc makes code simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Graff Yang <graff.yang@gmail.com>
---
 drivers/staging/iio/resolver/ad2s90.c |   16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/iio/resolver/ad2s90.c b/drivers/staging/iio/resolver/ad2s90.c
index 40b8252..e24c589 100644
--- a/drivers/staging/iio/resolver/ad2s90.c
+++ b/drivers/staging/iio/resolver/ad2s90.c
@@ -64,11 +64,9 @@ static int ad2s90_probe(struct spi_device *spi)
 	struct ad2s90_state *st;
 	int ret = 0;
 
-	indio_dev = iio_device_alloc(sizeof(*st));
-	if (indio_dev == NULL) {
-		ret = -ENOMEM;
-		goto error_ret;
-	}
+	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
+	if (!indio_dev)
+		return -ENOMEM;
 	st = iio_priv(indio_dev);
 	spi_set_drvdata(spi, indio_dev);
 
@@ -83,7 +81,7 @@ static int ad2s90_probe(struct spi_device *spi)
 
 	ret = iio_device_register(indio_dev);
 	if (ret)
-		goto error_free_dev;
+		return ret;
 
 	/* need 600ns between CS and the first falling edge of SCLK */
 	spi->max_speed_hz = 830000;
@@ -91,17 +89,11 @@ static int ad2s90_probe(struct spi_device *spi)
 	spi_setup(spi);
 
 	return 0;
-
-error_free_dev:
-	iio_device_free(indio_dev);
-error_ret:
-	return ret;
 }
 
 static int ad2s90_remove(struct spi_device *spi)
 {
 	iio_device_unregister(spi_get_drvdata(spi));
-	iio_device_free(spi_get_drvdata(spi));
 
 	return 0;
 }
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 06/10] staging: iio: ade7753: Use devm_iio_device_alloc
  2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
                   ` (3 preceding siblings ...)
  2013-09-11  9:55 ` [PATCH 05/10] staging: iio: ad2s90: " Sachin Kamat
@ 2013-09-11  9:55 ` Sachin Kamat
  2013-09-14 10:56   ` Jonathan Cameron
  2013-09-11  9:55 ` [PATCH 07/10] staging: iio: ade7754: " Sachin Kamat
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 19+ messages in thread
From: Sachin Kamat @ 2013-09-11  9:55 UTC (permalink / raw)
  To: linux-iio; +Cc: jic23, sachin.kamat, Barry Song

devm_iio_device_alloc makes code simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Barry Song <21cnbao@gmail.com>
---
 drivers/staging/iio/meter/ade7753.c |   19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/iio/meter/ade7753.c b/drivers/staging/iio/meter/ade7753.c
index f0bba33..6200335 100644
--- a/drivers/staging/iio/meter/ade7753.c
+++ b/drivers/staging/iio/meter/ade7753.c
@@ -497,11 +497,9 @@ static int ade7753_probe(struct spi_device *spi)
 	struct iio_dev *indio_dev;
 
 	/* setup the industrialio driver allocated elements */
-	indio_dev = iio_device_alloc(sizeof(*st));
-	if (indio_dev == NULL) {
-		ret = -ENOMEM;
-		goto error_ret;
-	}
+	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
+	if (!indio_dev)
+		return -ENOMEM;
 	/* this is only used for removal purposes */
 	spi_set_drvdata(spi, indio_dev);
 
@@ -517,19 +515,13 @@ static int ade7753_probe(struct spi_device *spi)
 	/* Get the device into a sane initial state */
 	ret = ade7753_initial_setup(indio_dev);
 	if (ret)
-		goto error_free_dev;
+		return ret;
 
 	ret = iio_device_register(indio_dev);
 	if (ret)
-		goto error_free_dev;
+		return ret;
 
 	return 0;
-
-error_free_dev:
-	iio_device_free(indio_dev);
-
-error_ret:
-	return ret;
 }
 
 /* fixme, confirm ordering in this function */
@@ -539,7 +531,6 @@ static int ade7753_remove(struct spi_device *spi)
 
 	iio_device_unregister(indio_dev);
 	ade7753_stop_device(&indio_dev->dev);
-	iio_device_free(indio_dev);
 
 	return 0;
 }
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 07/10] staging: iio: ade7754: Use devm_iio_device_alloc
  2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
                   ` (4 preceding siblings ...)
  2013-09-11  9:55 ` [PATCH 06/10] staging: iio: ade7753: " Sachin Kamat
@ 2013-09-11  9:55 ` Sachin Kamat
  2013-09-11  9:55 ` [PATCH 08/10] staging: iio: ade7758_core: " Sachin Kamat
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 19+ messages in thread
From: Sachin Kamat @ 2013-09-11  9:55 UTC (permalink / raw)
  To: linux-iio; +Cc: jic23, sachin.kamat, Barry Song

devm_iio_device_alloc makes code simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Barry Song <21cnbao@gmail.com>
---
 drivers/staging/iio/meter/ade7754.c |   19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/iio/meter/ade7754.c b/drivers/staging/iio/meter/ade7754.c
index 63a6ad1c..2e046f6 100644
--- a/drivers/staging/iio/meter/ade7754.c
+++ b/drivers/staging/iio/meter/ade7754.c
@@ -520,11 +520,9 @@ static int ade7754_probe(struct spi_device *spi)
 	struct iio_dev *indio_dev;
 
 	/* setup the industrialio driver allocated elements */
-	indio_dev = iio_device_alloc(sizeof(*st));
-	if (indio_dev == NULL) {
-		ret = -ENOMEM;
-		goto error_ret;
-	}
+	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
+	if (!indio_dev)
+		return -ENOMEM;
 	/* this is only used for removal purposes */
 	spi_set_drvdata(spi, indio_dev);
 
@@ -540,18 +538,12 @@ static int ade7754_probe(struct spi_device *spi)
 	/* Get the device into a sane initial state */
 	ret = ade7754_initial_setup(indio_dev);
 	if (ret)
-		goto error_free_dev;
+		return ret;
 	ret = iio_device_register(indio_dev);
 	if (ret)
-		goto error_free_dev;
+		return ret;
 
 	return 0;
-
-error_free_dev:
-	iio_device_free(indio_dev);
-
-error_ret:
-	return ret;
 }
 
 /* fixme, confirm ordering in this function */
@@ -561,7 +553,6 @@ static int ade7754_remove(struct spi_device *spi)
 
 	iio_device_unregister(indio_dev);
 	ade7754_stop_device(&indio_dev->dev);
-	iio_device_free(indio_dev);
 
 	return 0;
 }
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 08/10] staging: iio: ade7758_core: Use devm_iio_device_alloc
  2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
                   ` (5 preceding siblings ...)
  2013-09-11  9:55 ` [PATCH 07/10] staging: iio: ade7754: " Sachin Kamat
@ 2013-09-11  9:55 ` Sachin Kamat
  2013-09-14 10:56   ` Jonathan Cameron
  2013-09-11  9:55 ` [PATCH 09/10] staging: iio: ade7759: " Sachin Kamat
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 19+ messages in thread
From: Sachin Kamat @ 2013-09-11  9:55 UTC (permalink / raw)
  To: linux-iio; +Cc: jic23, sachin.kamat, Barry Song

devm_iio_device_alloc makes code simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Barry Song <21cnbao@gmail.com>
---
 drivers/staging/iio/meter/ade7758_core.c |   20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/iio/meter/ade7758_core.c b/drivers/staging/iio/meter/ade7758_core.c
index 6a62751..cba183e 100644
--- a/drivers/staging/iio/meter/ade7758_core.c
+++ b/drivers/staging/iio/meter/ade7758_core.c
@@ -849,12 +849,11 @@ static int ade7758_probe(struct spi_device *spi)
 {
 	int ret;
 	struct ade7758_state *st;
-	struct iio_dev *indio_dev = iio_device_alloc(sizeof(*st));
+	struct iio_dev *indio_dev;
 
-	if (indio_dev == NULL) {
-		ret = -ENOMEM;
-		goto error_ret;
-	}
+	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
+	if (!indio_dev)
+		return -ENOMEM;
 
 	st = iio_priv(indio_dev);
 	/* this is only used for removal purposes */
@@ -862,10 +861,8 @@ static int ade7758_probe(struct spi_device *spi)
 
 	/* Allocate the comms buffers */
 	st->rx = kcalloc(ADE7758_MAX_RX, sizeof(*st->rx), GFP_KERNEL);
-	if (st->rx == NULL) {
-		ret = -ENOMEM;
-		goto error_free_dev;
-	}
+	if (!st->rx)
+		return -ENOMEM;
 	st->tx = kcalloc(ADE7758_MAX_TX, sizeof(*st->tx), GFP_KERNEL);
 	if (st->tx == NULL) {
 		ret = -ENOMEM;
@@ -920,9 +917,6 @@ error_free_tx:
 	kfree(st->tx);
 error_free_rx:
 	kfree(st->rx);
-error_free_dev:
-	iio_device_free(indio_dev);
-error_ret:
 	return ret;
 }
 
@@ -939,8 +933,6 @@ static int ade7758_remove(struct spi_device *spi)
 	kfree(st->tx);
 	kfree(st->rx);
 
-	iio_device_free(indio_dev);
-
 	return 0;
 }
 
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 09/10] staging: iio: ade7759: Use devm_iio_device_alloc
  2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
                   ` (6 preceding siblings ...)
  2013-09-11  9:55 ` [PATCH 08/10] staging: iio: ade7758_core: " Sachin Kamat
@ 2013-09-11  9:55 ` Sachin Kamat
  2013-09-14 10:57   ` Jonathan Cameron
  2013-09-11  9:55 ` [PATCH 10/10] staging: iio: ade7854: " Sachin Kamat
  2013-09-14 10:46 ` [PATCH 01/10] staging: iio: hmc5843: " Jonathan Cameron
  9 siblings, 1 reply; 19+ messages in thread
From: Sachin Kamat @ 2013-09-11  9:55 UTC (permalink / raw)
  To: linux-iio; +Cc: jic23, sachin.kamat, Barry Song

devm_iio_device_alloc makes code simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Barry Song <21cnbao@gmail.com>
---
 drivers/staging/iio/meter/ade7759.c |   18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/iio/meter/ade7759.c b/drivers/staging/iio/meter/ade7759.c
index c1a3a5d..145f896 100644
--- a/drivers/staging/iio/meter/ade7759.c
+++ b/drivers/staging/iio/meter/ade7759.c
@@ -444,11 +444,9 @@ static int ade7759_probe(struct spi_device *spi)
 	struct iio_dev *indio_dev;
 
 	/* setup the industrialio driver allocated elements */
-	indio_dev = iio_device_alloc(sizeof(*st));
-	if (indio_dev == NULL) {
-		ret = -ENOMEM;
-		goto error_ret;
-	}
+	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
+	if (!indio_dev)
+		return -ENOMEM;
 	/* this is only used for removal purposes */
 	spi_set_drvdata(spi, indio_dev);
 
@@ -463,18 +461,13 @@ static int ade7759_probe(struct spi_device *spi)
 	/* Get the device into a sane initial state */
 	ret = ade7759_initial_setup(indio_dev);
 	if (ret)
-		goto error_free_dev;
+		return ret;
 
 	ret = iio_device_register(indio_dev);
 	if (ret)
-		goto error_free_dev;
+		return ret;
 
 	return 0;
-
-error_free_dev:
-	iio_device_free(indio_dev);
-error_ret:
-	return ret;
 }
 
 /* fixme, confirm ordering in this function */
@@ -484,7 +477,6 @@ static int ade7759_remove(struct spi_device *spi)
 
 	iio_device_unregister(indio_dev);
 	ade7759_stop_device(&indio_dev->dev);
-	iio_device_free(indio_dev);
 
 	return 0;
 }
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 10/10] staging: iio: ade7854: Use devm_iio_device_alloc
  2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
                   ` (7 preceding siblings ...)
  2013-09-11  9:55 ` [PATCH 09/10] staging: iio: ade7759: " Sachin Kamat
@ 2013-09-11  9:55 ` Sachin Kamat
  2013-09-14 11:00   ` Jonathan Cameron
  2013-09-14 10:46 ` [PATCH 01/10] staging: iio: hmc5843: " Jonathan Cameron
  9 siblings, 1 reply; 19+ messages in thread
From: Sachin Kamat @ 2013-09-11  9:55 UTC (permalink / raw)
  To: linux-iio; +Cc: jic23, sachin.kamat, Barry Song

devm_iio_device_alloc makes code simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Barry Song <21cnbao@gmail.com>
---
 drivers/staging/iio/meter/ade7854-i2c.c |    4 +---
 drivers/staging/iio/meter/ade7854-spi.c |    4 +---
 drivers/staging/iio/meter/ade7854.c     |    6 +-----
 3 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/iio/meter/ade7854-i2c.c b/drivers/staging/iio/meter/ade7854-i2c.c
index db9ef6c..5b33c7f 100644
--- a/drivers/staging/iio/meter/ade7854-i2c.c
+++ b/drivers/staging/iio/meter/ade7854-i2c.c
@@ -208,7 +208,7 @@ static int ade7854_i2c_probe(struct i2c_client *client,
 	struct ade7854_state *st;
 	struct iio_dev *indio_dev;
 
-	indio_dev = iio_device_alloc(sizeof(*st));
+	indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*st));
 	if (indio_dev == NULL)
 		return -ENOMEM;
 	st = iio_priv(indio_dev);
@@ -225,8 +225,6 @@ static int ade7854_i2c_probe(struct i2c_client *client,
 	st->irq = client->irq;
 
 	ret = ade7854_probe(indio_dev, &client->dev);
-	if (ret)
-		iio_device_free(indio_dev);
 
 	return ret;
 }
diff --git a/drivers/staging/iio/meter/ade7854-spi.c b/drivers/staging/iio/meter/ade7854-spi.c
index 4c6d204..94f73bb 100644
--- a/drivers/staging/iio/meter/ade7854-spi.c
+++ b/drivers/staging/iio/meter/ade7854-spi.c
@@ -278,7 +278,7 @@ static int ade7854_spi_probe(struct spi_device *spi)
 	struct ade7854_state *st;
 	struct iio_dev *indio_dev;
 
-	indio_dev = iio_device_alloc(sizeof(*st));
+	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
 	if (indio_dev == NULL)
 		return -ENOMEM;
 	st = iio_priv(indio_dev);
@@ -296,8 +296,6 @@ static int ade7854_spi_probe(struct spi_device *spi)
 
 
 	ret = ade7854_probe(indio_dev, &spi->dev);
-	if (ret)
-		iio_device_free(indio_dev);
 
 	return ret;
 }
diff --git a/drivers/staging/iio/meter/ade7854.c b/drivers/staging/iio/meter/ade7854.c
index 8e068ab..d620bbd 100644
--- a/drivers/staging/iio/meter/ade7854.c
+++ b/drivers/staging/iio/meter/ade7854.c
@@ -550,7 +550,7 @@ int ade7854_probe(struct iio_dev *indio_dev, struct device *dev)
 
 	ret = iio_device_register(indio_dev);
 	if (ret)
-		goto error_free_dev;
+		return ret;
 
 	/* Get the device into a sane initial state */
 	ret = ade7854_initial_setup(indio_dev);
@@ -561,9 +561,6 @@ int ade7854_probe(struct iio_dev *indio_dev, struct device *dev)
 
 error_unreg_dev:
 	iio_device_unregister(indio_dev);
-error_free_dev:
-	iio_device_free(indio_dev);
-
 	return ret;
 }
 EXPORT_SYMBOL(ade7854_probe);
@@ -571,7 +568,6 @@ EXPORT_SYMBOL(ade7854_probe);
 int ade7854_remove(struct iio_dev *indio_dev)
 {
 	iio_device_unregister(indio_dev);
-	iio_device_free(indio_dev);
 
 	return 0;
 }
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc
  2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
                   ` (8 preceding siblings ...)
  2013-09-11  9:55 ` [PATCH 10/10] staging: iio: ade7854: " Sachin Kamat
@ 2013-09-14 10:46 ` Jonathan Cameron
  9 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2013-09-14 10:46 UTC (permalink / raw)
  To: Sachin Kamat; +Cc: linux-iio, Shubhrajyoti Datta, Peter Meerwald

On 09/11/13 10:55, Sachin Kamat wrote:
> devm_iio_device_alloc makes code simpler.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Cc: Shubhrajyoti Datta <shubhrajyoti@ti.com>
This one clashes with Peter's more general cleanup of the driver.
> ---
> Series compile tested.
> ---
>  drivers/staging/iio/magnetometer/hmc5843.c |   16 ++++------------
>  1 file changed, 4 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
> index 67c1ce7..790f456 100644
> --- a/drivers/staging/iio/magnetometer/hmc5843.c
> +++ b/drivers/staging/iio/magnetometer/hmc5843.c
> @@ -643,11 +643,9 @@ static int hmc5843_probe(struct i2c_client *client,
>  	struct iio_dev *indio_dev;
>  	int err = 0;
>  
> -	indio_dev = iio_device_alloc(sizeof(*data));
> -	if (indio_dev == NULL) {
> -		err = -ENOMEM;
> -		goto exit;
> -	}
> +	indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
> +	if (!indio_dev)
> +		return -ENOMEM;
>  
>  	/* default settings at probe */
>  	data = iio_priv(indio_dev);
> @@ -665,14 +663,9 @@ static int hmc5843_probe(struct i2c_client *client,
>  
>  	err = iio_device_register(indio_dev);
>  	if (err)
> -		goto exit_free2;
> +		return err;
>  
>  	return 0;
> -
> -exit_free2:
> -	iio_device_free(indio_dev);
> -exit:
> -	return err;
>  }
>  
>  static int hmc5843_remove(struct i2c_client *client)
> @@ -682,7 +675,6 @@ static int hmc5843_remove(struct i2c_client *client)
>  	iio_device_unregister(indio_dev);
>  	 /*  sleep mode to save power */
>  	hmc5843_configure(client, HMC5843_MODE_SLEEP);
> -	iio_device_free(indio_dev);
>  
>  	return 0;
>  }
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 02/10] staging: iio: ad2s1200: Use devm_* APIs
  2013-09-11  9:55 ` [PATCH 02/10] staging: iio: ad2s1200: Use devm_* APIs Sachin Kamat
@ 2013-09-14 10:46   ` Jonathan Cameron
  0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2013-09-14 10:46 UTC (permalink / raw)
  To: Sachin Kamat; +Cc: linux-iio, Graff Yang

On 09/11/13 10:55, Sachin Kamat wrote:
> devm_* APIs are device managed and make code simpler.
> This patch also fixes the missing gpio_free call in remove.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Cc: Graff Yang <graff.yang@gmail.com>
Applied to the togreg branch of iio.git

Thanks
> ---
>  drivers/staging/iio/resolver/ad2s1200.c |   24 ++++++++----------------
>  1 file changed, 8 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/staging/iio/resolver/ad2s1200.c b/drivers/staging/iio/resolver/ad2s1200.c
> index 7122116..76f6d65 100644
> --- a/drivers/staging/iio/resolver/ad2s1200.c
> +++ b/drivers/staging/iio/resolver/ad2s1200.c
> @@ -107,16 +107,16 @@ static int ad2s1200_probe(struct spi_device *spi)
>  	unsigned short *pins = spi->dev.platform_data;
>  
>  	for (pn = 0; pn < AD2S1200_PN; pn++)
> -		if (gpio_request_one(pins[pn], GPIOF_DIR_OUT, DRV_NAME)) {
> +		ret = devm_gpio_request_one(&spi->dev, pins[pn], GPIOF_DIR_OUT,
> +					    DRV_NAME);
> +		if (ret) {
>  			pr_err("%s: request gpio pin %d failed\n",
>  						DRV_NAME, pins[pn]);
> -			goto error_ret;
> +			return ret;
>  		}
> -	indio_dev = iio_device_alloc(sizeof(*st));
> -	if (indio_dev == NULL) {
> -		ret = -ENOMEM;
> -		goto error_ret;
> -	}
> +	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
> +	if (!indio_dev)
> +		return -ENOMEM;
>  	spi_set_drvdata(spi, indio_dev);
>  	st = iio_priv(indio_dev);
>  	mutex_init(&st->lock);
> @@ -133,26 +133,18 @@ static int ad2s1200_probe(struct spi_device *spi)
>  
>  	ret = iio_device_register(indio_dev);
>  	if (ret)
> -		goto error_free_dev;
> +		return ret;
>  
>  	spi->max_speed_hz = AD2S1200_HZ;
>  	spi->mode = SPI_MODE_3;
>  	spi_setup(spi);
>  
>  	return 0;
> -
> -error_free_dev:
> -	iio_device_free(indio_dev);
> -error_ret:
> -	for (--pn; pn >= 0; pn--)
> -		gpio_free(pins[pn]);
> -	return ret;
>  }
>  
>  static int ad2s1200_remove(struct spi_device *spi)
>  {
>  	iio_device_unregister(spi_get_drvdata(spi));
> -	iio_device_free(spi_get_drvdata(spi));
>  
>  	return 0;
>  }
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 03/10] staging: iio: ad2s1200: Use dev_err instead of pr_err
  2013-09-11  9:55 ` [PATCH 03/10] staging: iio: ad2s1200: Use dev_err instead of pr_err Sachin Kamat
@ 2013-09-14 10:47   ` Jonathan Cameron
  0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2013-09-14 10:47 UTC (permalink / raw)
  To: Sachin Kamat; +Cc: linux-iio

On 09/11/13 10:55, Sachin Kamat wrote:
> dev_err is preferred over pr_err.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Applied
> ---
>  drivers/staging/iio/resolver/ad2s1200.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/iio/resolver/ad2s1200.c b/drivers/staging/iio/resolver/ad2s1200.c
> index 76f6d65..62d3017 100644
> --- a/drivers/staging/iio/resolver/ad2s1200.c
> +++ b/drivers/staging/iio/resolver/ad2s1200.c
> @@ -110,8 +110,8 @@ static int ad2s1200_probe(struct spi_device *spi)
>  		ret = devm_gpio_request_one(&spi->dev, pins[pn], GPIOF_DIR_OUT,
>  					    DRV_NAME);
>  		if (ret) {
> -			pr_err("%s: request gpio pin %d failed\n",
> -						DRV_NAME, pins[pn]);
> +			dev_err(&spi->dev, "request gpio pin %d failed\n",
> +							pins[pn]);
>  			return ret;
>  		}
>  	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 04/10] staging: iio: ad2s1210: Use devm_iio_device_alloc
  2013-09-11  9:55 ` [PATCH 04/10] staging: iio: ad2s1210: Use devm_iio_device_alloc Sachin Kamat
@ 2013-09-14 10:51   ` Jonathan Cameron
  0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2013-09-14 10:51 UTC (permalink / raw)
  To: Sachin Kamat; +Cc: linux-iio, Graff Yang

On 09/11/13 10:55, Sachin Kamat wrote:
> devm_iio_device_alloc makes code simpler.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Cc: Graff Yang <graff.yang@gmail.com>
Applied
> ---
>  drivers/staging/iio/resolver/ad2s1210.c |   14 ++++----------
>  1 file changed, 4 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/staging/iio/resolver/ad2s1210.c b/drivers/staging/iio/resolver/ad2s1210.c
> index 2b0c8e5..6966d5f 100644
> --- a/drivers/staging/iio/resolver/ad2s1210.c
> +++ b/drivers/staging/iio/resolver/ad2s1210.c
> @@ -669,16 +669,14 @@ static int ad2s1210_probe(struct spi_device *spi)
>  	if (spi->dev.platform_data == NULL)
>  		return -EINVAL;
>  
> -	indio_dev = iio_device_alloc(sizeof(*st));
> -	if (indio_dev == NULL) {
> -		ret = -ENOMEM;
> -		goto error_ret;
> -	}
> +	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
> +	if (!indio_dev)
> +		return -ENOMEM;
>  	st = iio_priv(indio_dev);
>  	st->pdata = spi->dev.platform_data;
>  	ret = ad2s1210_setup_gpios(st);
>  	if (ret < 0)
> -		goto error_free_dev;
> +		return ret;
>  
>  	spi_set_drvdata(spi, indio_dev);
>  
> @@ -709,9 +707,6 @@ static int ad2s1210_probe(struct spi_device *spi)
>  
>  error_free_gpios:
>  	ad2s1210_free_gpios(st);
> -error_free_dev:
> -	iio_device_free(indio_dev);
> -error_ret:
>  	return ret;
>  }
>  
> @@ -721,7 +716,6 @@ static int ad2s1210_remove(struct spi_device *spi)
>  
>  	iio_device_unregister(indio_dev);
>  	ad2s1210_free_gpios(iio_priv(indio_dev));
> -	iio_device_free(indio_dev);
>  
>  	return 0;
>  }
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 05/10] staging: iio: ad2s90: Use devm_iio_device_alloc
  2013-09-11  9:55 ` [PATCH 05/10] staging: iio: ad2s90: " Sachin Kamat
@ 2013-09-14 10:56   ` Jonathan Cameron
  0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2013-09-14 10:56 UTC (permalink / raw)
  To: Sachin Kamat; +Cc: linux-iio, Graff Yang

On 09/11/13 10:55, Sachin Kamat wrote:
> devm_iio_device_alloc makes code simpler.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Cc: Graff Yang <graff.yang@gmail.com>
applied
> ---
>  drivers/staging/iio/resolver/ad2s90.c |   16 ++++------------
>  1 file changed, 4 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/staging/iio/resolver/ad2s90.c b/drivers/staging/iio/resolver/ad2s90.c
> index 40b8252..e24c589 100644
> --- a/drivers/staging/iio/resolver/ad2s90.c
> +++ b/drivers/staging/iio/resolver/ad2s90.c
> @@ -64,11 +64,9 @@ static int ad2s90_probe(struct spi_device *spi)
>  	struct ad2s90_state *st;
>  	int ret = 0;
>  
> -	indio_dev = iio_device_alloc(sizeof(*st));
> -	if (indio_dev == NULL) {
> -		ret = -ENOMEM;
> -		goto error_ret;
> -	}
> +	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
> +	if (!indio_dev)
> +		return -ENOMEM;
>  	st = iio_priv(indio_dev);
>  	spi_set_drvdata(spi, indio_dev);
>  
> @@ -83,7 +81,7 @@ static int ad2s90_probe(struct spi_device *spi)
>  
>  	ret = iio_device_register(indio_dev);
>  	if (ret)
> -		goto error_free_dev;
> +		return ret;
>  
>  	/* need 600ns between CS and the first falling edge of SCLK */
>  	spi->max_speed_hz = 830000;
> @@ -91,17 +89,11 @@ static int ad2s90_probe(struct spi_device *spi)
>  	spi_setup(spi);
>  
>  	return 0;
> -
> -error_free_dev:
> -	iio_device_free(indio_dev);
> -error_ret:
> -	return ret;
>  }
>  
>  static int ad2s90_remove(struct spi_device *spi)
>  {
>  	iio_device_unregister(spi_get_drvdata(spi));
> -	iio_device_free(spi_get_drvdata(spi));
>  
>  	return 0;
>  }
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 06/10] staging: iio: ade7753: Use devm_iio_device_alloc
  2013-09-11  9:55 ` [PATCH 06/10] staging: iio: ade7753: " Sachin Kamat
@ 2013-09-14 10:56   ` Jonathan Cameron
  0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2013-09-14 10:56 UTC (permalink / raw)
  To: Sachin Kamat; +Cc: linux-iio, Barry Song

On 09/11/13 10:55, Sachin Kamat wrote:
> devm_iio_device_alloc makes code simpler.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Cc: Barry Song <21cnbao@gmail.com>
applied
> ---
>  drivers/staging/iio/meter/ade7753.c |   19 +++++--------------
>  1 file changed, 5 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/staging/iio/meter/ade7753.c b/drivers/staging/iio/meter/ade7753.c
> index f0bba33..6200335 100644
> --- a/drivers/staging/iio/meter/ade7753.c
> +++ b/drivers/staging/iio/meter/ade7753.c
> @@ -497,11 +497,9 @@ static int ade7753_probe(struct spi_device *spi)
>  	struct iio_dev *indio_dev;
>  
>  	/* setup the industrialio driver allocated elements */
> -	indio_dev = iio_device_alloc(sizeof(*st));
> -	if (indio_dev == NULL) {
> -		ret = -ENOMEM;
> -		goto error_ret;
> -	}
> +	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
> +	if (!indio_dev)
> +		return -ENOMEM;
>  	/* this is only used for removal purposes */
>  	spi_set_drvdata(spi, indio_dev);
>  
> @@ -517,19 +515,13 @@ static int ade7753_probe(struct spi_device *spi)
>  	/* Get the device into a sane initial state */
>  	ret = ade7753_initial_setup(indio_dev);
>  	if (ret)
> -		goto error_free_dev;
> +		return ret;
>  
>  	ret = iio_device_register(indio_dev);
>  	if (ret)
> -		goto error_free_dev;
> +		return ret;
>  
>  	return 0;
> -
> -error_free_dev:
> -	iio_device_free(indio_dev);
> -
> -error_ret:
> -	return ret;
>  }
>  
>  /* fixme, confirm ordering in this function */
> @@ -539,7 +531,6 @@ static int ade7753_remove(struct spi_device *spi)
>  
>  	iio_device_unregister(indio_dev);
>  	ade7753_stop_device(&indio_dev->dev);
> -	iio_device_free(indio_dev);
>  
>  	return 0;
>  }
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 08/10] staging: iio: ade7758_core: Use devm_iio_device_alloc
  2013-09-11  9:55 ` [PATCH 08/10] staging: iio: ade7758_core: " Sachin Kamat
@ 2013-09-14 10:56   ` Jonathan Cameron
  0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2013-09-14 10:56 UTC (permalink / raw)
  To: Sachin Kamat; +Cc: linux-iio, Barry Song

On 09/11/13 10:55, Sachin Kamat wrote:
> devm_iio_device_alloc makes code simpler.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Cc: Barry Song <21cnbao@gmail.com>
Applied to the togreg branch of iio.git
> ---
>  drivers/staging/iio/meter/ade7758_core.c |   20 ++++++--------------
>  1 file changed, 6 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/staging/iio/meter/ade7758_core.c b/drivers/staging/iio/meter/ade7758_core.c
> index 6a62751..cba183e 100644
> --- a/drivers/staging/iio/meter/ade7758_core.c
> +++ b/drivers/staging/iio/meter/ade7758_core.c
> @@ -849,12 +849,11 @@ static int ade7758_probe(struct spi_device *spi)
>  {
>  	int ret;
>  	struct ade7758_state *st;
> -	struct iio_dev *indio_dev = iio_device_alloc(sizeof(*st));
> +	struct iio_dev *indio_dev;
>  
> -	if (indio_dev == NULL) {
> -		ret = -ENOMEM;
> -		goto error_ret;
> -	}
> +	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
> +	if (!indio_dev)
> +		return -ENOMEM;
>  
>  	st = iio_priv(indio_dev);
>  	/* this is only used for removal purposes */
> @@ -862,10 +861,8 @@ static int ade7758_probe(struct spi_device *spi)
>  
>  	/* Allocate the comms buffers */
>  	st->rx = kcalloc(ADE7758_MAX_RX, sizeof(*st->rx), GFP_KERNEL);
> -	if (st->rx == NULL) {
> -		ret = -ENOMEM;
> -		goto error_free_dev;
> -	}
> +	if (!st->rx)
> +		return -ENOMEM;
>  	st->tx = kcalloc(ADE7758_MAX_TX, sizeof(*st->tx), GFP_KERNEL);
>  	if (st->tx == NULL) {
>  		ret = -ENOMEM;
> @@ -920,9 +917,6 @@ error_free_tx:
>  	kfree(st->tx);
>  error_free_rx:
>  	kfree(st->rx);
> -error_free_dev:
> -	iio_device_free(indio_dev);
> -error_ret:
>  	return ret;
>  }
>  
> @@ -939,8 +933,6 @@ static int ade7758_remove(struct spi_device *spi)
>  	kfree(st->tx);
>  	kfree(st->rx);
>  
> -	iio_device_free(indio_dev);
> -
>  	return 0;
>  }
>  
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 09/10] staging: iio: ade7759: Use devm_iio_device_alloc
  2013-09-11  9:55 ` [PATCH 09/10] staging: iio: ade7759: " Sachin Kamat
@ 2013-09-14 10:57   ` Jonathan Cameron
  0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2013-09-14 10:57 UTC (permalink / raw)
  To: Sachin Kamat; +Cc: linux-iio, Barry Song

On 09/11/13 10:55, Sachin Kamat wrote:
> devm_iio_device_alloc makes code simpler.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Cc: Barry Song <21cnbao@gmail.com>
Applied to the togreg branch of iio.git
> ---
>  drivers/staging/iio/meter/ade7759.c |   18 +++++-------------
>  1 file changed, 5 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/staging/iio/meter/ade7759.c b/drivers/staging/iio/meter/ade7759.c
> index c1a3a5d..145f896 100644
> --- a/drivers/staging/iio/meter/ade7759.c
> +++ b/drivers/staging/iio/meter/ade7759.c
> @@ -444,11 +444,9 @@ static int ade7759_probe(struct spi_device *spi)
>  	struct iio_dev *indio_dev;
>  
>  	/* setup the industrialio driver allocated elements */
> -	indio_dev = iio_device_alloc(sizeof(*st));
> -	if (indio_dev == NULL) {
> -		ret = -ENOMEM;
> -		goto error_ret;
> -	}
> +	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
> +	if (!indio_dev)
> +		return -ENOMEM;
>  	/* this is only used for removal purposes */
>  	spi_set_drvdata(spi, indio_dev);
>  
> @@ -463,18 +461,13 @@ static int ade7759_probe(struct spi_device *spi)
>  	/* Get the device into a sane initial state */
>  	ret = ade7759_initial_setup(indio_dev);
>  	if (ret)
> -		goto error_free_dev;
> +		return ret;
>  
>  	ret = iio_device_register(indio_dev);
>  	if (ret)
> -		goto error_free_dev;
> +		return ret;
>  
>  	return 0;
> -
> -error_free_dev:
> -	iio_device_free(indio_dev);
> -error_ret:
> -	return ret;
>  }
>  
>  /* fixme, confirm ordering in this function */
> @@ -484,7 +477,6 @@ static int ade7759_remove(struct spi_device *spi)
>  
>  	iio_device_unregister(indio_dev);
>  	ade7759_stop_device(&indio_dev->dev);
> -	iio_device_free(indio_dev);
>  
>  	return 0;
>  }
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 10/10] staging: iio: ade7854: Use devm_iio_device_alloc
  2013-09-11  9:55 ` [PATCH 10/10] staging: iio: ade7854: " Sachin Kamat
@ 2013-09-14 11:00   ` Jonathan Cameron
  0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2013-09-14 11:00 UTC (permalink / raw)
  To: Sachin Kamat; +Cc: linux-iio, Barry Song

On 09/11/13 10:55, Sachin Kamat wrote:
> devm_iio_device_alloc makes code simpler.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Cc: Barry Song <21cnbao@gmail.com>
Applied with a little fuzz to the togreg branch of iio.git
(due to some string handling updates that went in recently)

> ---
>  drivers/staging/iio/meter/ade7854-i2c.c |    4 +---
>  drivers/staging/iio/meter/ade7854-spi.c |    4 +---
>  drivers/staging/iio/meter/ade7854.c     |    6 +-----
>  3 files changed, 3 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/staging/iio/meter/ade7854-i2c.c b/drivers/staging/iio/meter/ade7854-i2c.c
> index db9ef6c..5b33c7f 100644
> --- a/drivers/staging/iio/meter/ade7854-i2c.c
> +++ b/drivers/staging/iio/meter/ade7854-i2c.c
> @@ -208,7 +208,7 @@ static int ade7854_i2c_probe(struct i2c_client *client,
>  	struct ade7854_state *st;
>  	struct iio_dev *indio_dev;
>  
> -	indio_dev = iio_device_alloc(sizeof(*st));
> +	indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*st));
>  	if (indio_dev == NULL)
>  		return -ENOMEM;
>  	st = iio_priv(indio_dev);
> @@ -225,8 +225,6 @@ static int ade7854_i2c_probe(struct i2c_client *client,
>  	st->irq = client->irq;
>  
>  	ret = ade7854_probe(indio_dev, &client->dev);
> -	if (ret)
> -		iio_device_free(indio_dev);
>  
>  	return ret;
>  }
> diff --git a/drivers/staging/iio/meter/ade7854-spi.c b/drivers/staging/iio/meter/ade7854-spi.c
> index 4c6d204..94f73bb 100644
> --- a/drivers/staging/iio/meter/ade7854-spi.c
> +++ b/drivers/staging/iio/meter/ade7854-spi.c
> @@ -278,7 +278,7 @@ static int ade7854_spi_probe(struct spi_device *spi)
>  	struct ade7854_state *st;
>  	struct iio_dev *indio_dev;
>  
> -	indio_dev = iio_device_alloc(sizeof(*st));
> +	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
>  	if (indio_dev == NULL)
>  		return -ENOMEM;
>  	st = iio_priv(indio_dev);
> @@ -296,8 +296,6 @@ static int ade7854_spi_probe(struct spi_device *spi)
>  
>  
>  	ret = ade7854_probe(indio_dev, &spi->dev);
> -	if (ret)
> -		iio_device_free(indio_dev);
>  
>  	return ret;
>  }
> diff --git a/drivers/staging/iio/meter/ade7854.c b/drivers/staging/iio/meter/ade7854.c
> index 8e068ab..d620bbd 100644
> --- a/drivers/staging/iio/meter/ade7854.c
> +++ b/drivers/staging/iio/meter/ade7854.c
> @@ -550,7 +550,7 @@ int ade7854_probe(struct iio_dev *indio_dev, struct device *dev)
>  
>  	ret = iio_device_register(indio_dev);
>  	if (ret)
> -		goto error_free_dev;
> +		return ret;
>  
>  	/* Get the device into a sane initial state */
>  	ret = ade7854_initial_setup(indio_dev);
> @@ -561,9 +561,6 @@ int ade7854_probe(struct iio_dev *indio_dev, struct device *dev)
>  
>  error_unreg_dev:
>  	iio_device_unregister(indio_dev);
> -error_free_dev:
> -	iio_device_free(indio_dev);
> -
>  	return ret;
>  }
>  EXPORT_SYMBOL(ade7854_probe);
> @@ -571,7 +568,6 @@ EXPORT_SYMBOL(ade7854_probe);
>  int ade7854_remove(struct iio_dev *indio_dev)
>  {
>  	iio_device_unregister(indio_dev);
> -	iio_device_free(indio_dev);
>  
>  	return 0;
>  }
> 

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2013-09-14 10:00 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-11  9:55 [PATCH 01/10] staging: iio: hmc5843: Use devm_iio_device_alloc Sachin Kamat
2013-09-11  9:55 ` [PATCH 02/10] staging: iio: ad2s1200: Use devm_* APIs Sachin Kamat
2013-09-14 10:46   ` Jonathan Cameron
2013-09-11  9:55 ` [PATCH 03/10] staging: iio: ad2s1200: Use dev_err instead of pr_err Sachin Kamat
2013-09-14 10:47   ` Jonathan Cameron
2013-09-11  9:55 ` [PATCH 04/10] staging: iio: ad2s1210: Use devm_iio_device_alloc Sachin Kamat
2013-09-14 10:51   ` Jonathan Cameron
2013-09-11  9:55 ` [PATCH 05/10] staging: iio: ad2s90: " Sachin Kamat
2013-09-14 10:56   ` Jonathan Cameron
2013-09-11  9:55 ` [PATCH 06/10] staging: iio: ade7753: " Sachin Kamat
2013-09-14 10:56   ` Jonathan Cameron
2013-09-11  9:55 ` [PATCH 07/10] staging: iio: ade7754: " Sachin Kamat
2013-09-11  9:55 ` [PATCH 08/10] staging: iio: ade7758_core: " Sachin Kamat
2013-09-14 10:56   ` Jonathan Cameron
2013-09-11  9:55 ` [PATCH 09/10] staging: iio: ade7759: " Sachin Kamat
2013-09-14 10:57   ` Jonathan Cameron
2013-09-11  9:55 ` [PATCH 10/10] staging: iio: ade7854: " Sachin Kamat
2013-09-14 11:00   ` Jonathan Cameron
2013-09-14 10:46 ` [PATCH 01/10] staging: iio: hmc5843: " Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).