Commit 664716ae authored by Sachin Kamat's avatar Sachin Kamat Committed by Jonathan Cameron

staging: iio: tsl2583: Use devm_iio_device_alloc

devm_iio_device_alloc makes the code simple. While at it also
fixed an uninitialized return with -EINVAL.
Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
Cc: J. August Brenner <jbrenner@taosinc.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 53703a49
...@@ -815,12 +815,9 @@ static int taos_probe(struct i2c_client *clientp, ...@@ -815,12 +815,9 @@ static int taos_probe(struct i2c_client *clientp,
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
indio_dev = iio_device_alloc(sizeof(*chip)); indio_dev = devm_iio_device_alloc(&clientp->dev, sizeof(*chip));
if (indio_dev == NULL) { if (!indio_dev)
ret = -ENOMEM; return -ENOMEM;
dev_err(&clientp->dev, "iio allocation failed\n");
goto fail1;
}
chip = iio_priv(indio_dev); chip = iio_priv(indio_dev);
chip->client = clientp; chip->client = clientp;
i2c_set_clientdata(clientp, indio_dev); i2c_set_clientdata(clientp, indio_dev);
...@@ -835,14 +832,14 @@ static int taos_probe(struct i2c_client *clientp, ...@@ -835,14 +832,14 @@ static int taos_probe(struct i2c_client *clientp,
if (ret < 0) { if (ret < 0) {
dev_err(&clientp->dev, "i2c_smbus_write_bytes() to cmd " dev_err(&clientp->dev, "i2c_smbus_write_bytes() to cmd "
"reg failed in taos_probe(), err = %d\n", ret); "reg failed in taos_probe(), err = %d\n", ret);
goto fail2; return ret;
} }
ret = i2c_smbus_read_byte(clientp); ret = i2c_smbus_read_byte(clientp);
if (ret < 0) { if (ret < 0) {
dev_err(&clientp->dev, "i2c_smbus_read_byte from " dev_err(&clientp->dev, "i2c_smbus_read_byte from "
"reg failed in taos_probe(), err = %d\n", ret); "reg failed in taos_probe(), err = %d\n", ret);
goto fail2; return ret;
} }
buf[i] = ret; buf[i] = ret;
} }
...@@ -850,14 +847,14 @@ static int taos_probe(struct i2c_client *clientp, ...@@ -850,14 +847,14 @@ static int taos_probe(struct i2c_client *clientp,
if (!taos_tsl258x_device(buf)) { if (!taos_tsl258x_device(buf)) {
dev_info(&clientp->dev, "i2c device found but does not match " dev_info(&clientp->dev, "i2c device found but does not match "
"expected id in taos_probe()\n"); "expected id in taos_probe()\n");
goto fail2; return -EINVAL;
} }
ret = i2c_smbus_write_byte(clientp, (TSL258X_CMD_REG | TSL258X_CNTRL)); ret = i2c_smbus_write_byte(clientp, (TSL258X_CMD_REG | TSL258X_CNTRL));
if (ret < 0) { if (ret < 0) {
dev_err(&clientp->dev, "i2c_smbus_write_byte() to cmd reg " dev_err(&clientp->dev, "i2c_smbus_write_byte() to cmd reg "
"failed in taos_probe(), err = %d\n", ret); "failed in taos_probe(), err = %d\n", ret);
goto fail2; return ret;
} }
indio_dev->info = &tsl2583_info; indio_dev->info = &tsl2583_info;
...@@ -867,7 +864,7 @@ static int taos_probe(struct i2c_client *clientp, ...@@ -867,7 +864,7 @@ static int taos_probe(struct i2c_client *clientp,
ret = iio_device_register(indio_dev); ret = iio_device_register(indio_dev);
if (ret) { if (ret) {
dev_err(&clientp->dev, "iio registration failed\n"); dev_err(&clientp->dev, "iio registration failed\n");
goto fail2; return ret;
} }
/* Load up the V2 defaults (these are hard coded defaults for now) */ /* Load up the V2 defaults (these are hard coded defaults for now) */
...@@ -878,10 +875,6 @@ static int taos_probe(struct i2c_client *clientp, ...@@ -878,10 +875,6 @@ static int taos_probe(struct i2c_client *clientp,
dev_info(&clientp->dev, "Light sensor found.\n"); dev_info(&clientp->dev, "Light sensor found.\n");
return 0; return 0;
fail1:
iio_device_free(indio_dev);
fail2:
return ret;
} }
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
...@@ -926,7 +919,6 @@ static SIMPLE_DEV_PM_OPS(taos_pm_ops, taos_suspend, taos_resume); ...@@ -926,7 +919,6 @@ static SIMPLE_DEV_PM_OPS(taos_pm_ops, taos_suspend, taos_resume);
static int taos_remove(struct i2c_client *client) static int taos_remove(struct i2c_client *client)
{ {
iio_device_unregister(i2c_get_clientdata(client)); iio_device_unregister(i2c_get_clientdata(client));
iio_device_free(i2c_get_clientdata(client));
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment