Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+8 −16
Original line number Diff line number Diff line
@@ -815,12 +815,9 @@ static int taos_probe(struct i2c_client *clientp,
		return -EOPNOTSUPP;
	}

	indio_dev = iio_device_alloc(sizeof(*chip));
	if (indio_dev == NULL) {
		ret = -ENOMEM;
		dev_err(&clientp->dev, "iio allocation failed\n");
		goto fail1;
	}
	indio_dev = devm_iio_device_alloc(&clientp->dev, sizeof(*chip));
	if (!indio_dev)
		return -ENOMEM;
	chip = iio_priv(indio_dev);
	chip->client = clientp;
	i2c_set_clientdata(clientp, indio_dev);
@@ -835,14 +832,14 @@ static int taos_probe(struct i2c_client *clientp,
		if (ret < 0) {
			dev_err(&clientp->dev, "i2c_smbus_write_bytes() to cmd "
				"reg failed in taos_probe(), err = %d\n", ret);
			goto fail2;
			return ret;
		}
		ret = i2c_smbus_read_byte(clientp);
		if (ret < 0) {
			dev_err(&clientp->dev, "i2c_smbus_read_byte from "
				"reg failed in taos_probe(), err = %d\n", ret);

			goto fail2;
			return ret;
		}
		buf[i] = ret;
	}
@@ -850,14 +847,14 @@ static int taos_probe(struct i2c_client *clientp,
	if (!taos_tsl258x_device(buf)) {
		dev_info(&clientp->dev, "i2c device found but does not match "
			"expected id in taos_probe()\n");
		goto fail2;
		return -EINVAL;
	}

	ret = i2c_smbus_write_byte(clientp, (TSL258X_CMD_REG | TSL258X_CNTRL));
	if (ret < 0) {
		dev_err(&clientp->dev, "i2c_smbus_write_byte() to cmd reg "
			"failed in taos_probe(), err = %d\n", ret);
		goto fail2;
		return ret;
	}

	indio_dev->info = &tsl2583_info;
@@ -867,7 +864,7 @@ static int taos_probe(struct i2c_client *clientp,
	ret = iio_device_register(indio_dev);
	if (ret) {
		dev_err(&clientp->dev, "iio registration failed\n");
		goto fail2;
		return ret;
	}

	/* Load up the V2 defaults (these are hard coded defaults for now) */
@@ -878,10 +875,6 @@ static int taos_probe(struct i2c_client *clientp,

	dev_info(&clientp->dev, "Light sensor found.\n");
	return 0;
fail1:
	iio_device_free(indio_dev);
fail2:
	return ret;
}

#ifdef CONFIG_PM_SLEEP
@@ -926,7 +919,6 @@ static SIMPLE_DEV_PM_OPS(taos_pm_ops, taos_suspend, taos_resume);
static int taos_remove(struct i2c_client *client)
{
	iio_device_unregister(i2c_get_clientdata(client));
	iio_device_free(i2c_get_clientdata(client));

	return 0;
}