* [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).