staging: iio: tsl2x7x_core: Use devm_* APIs
devm_* APIs are device managed and make code simpler. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Cc: J. August Brenner <jbrenner@taosinc.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
177e4af04e
commit
8529e6673b
|
@ -1851,7 +1851,7 @@ static int tsl2x7x_probe(struct i2c_client *clientp,
|
||||||
struct iio_dev *indio_dev;
|
struct iio_dev *indio_dev;
|
||||||
struct tsl2X7X_chip *chip;
|
struct tsl2X7X_chip *chip;
|
||||||
|
|
||||||
indio_dev = iio_device_alloc(sizeof(*chip));
|
indio_dev = devm_iio_device_alloc(&clientp->dev, sizeof(*chip));
|
||||||
if (!indio_dev)
|
if (!indio_dev)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
@ -1862,22 +1862,21 @@ static int tsl2x7x_probe(struct i2c_client *clientp,
|
||||||
ret = tsl2x7x_i2c_read(chip->client,
|
ret = tsl2x7x_i2c_read(chip->client,
|
||||||
TSL2X7X_CHIPID, &device_id);
|
TSL2X7X_CHIPID, &device_id);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto fail1;
|
return ret;
|
||||||
|
|
||||||
if ((!tsl2x7x_device_id(&device_id, id->driver_data)) ||
|
if ((!tsl2x7x_device_id(&device_id, id->driver_data)) ||
|
||||||
(tsl2x7x_device_id(&device_id, id->driver_data) == -EINVAL)) {
|
(tsl2x7x_device_id(&device_id, id->driver_data) == -EINVAL)) {
|
||||||
dev_info(&chip->client->dev,
|
dev_info(&chip->client->dev,
|
||||||
"%s: i2c device found does not match expected id\n",
|
"%s: i2c device found does not match expected id\n",
|
||||||
__func__);
|
__func__);
|
||||||
ret = -EINVAL;
|
return -EINVAL;
|
||||||
goto fail1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = i2c_smbus_write_byte(clientp, (TSL2X7X_CMD_REG | TSL2X7X_CNTRL));
|
ret = i2c_smbus_write_byte(clientp, (TSL2X7X_CMD_REG | TSL2X7X_CNTRL));
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(&clientp->dev, "%s: write to cmd reg failed. err = %d\n",
|
dev_err(&clientp->dev, "%s: write to cmd reg failed. err = %d\n",
|
||||||
__func__, ret);
|
__func__, ret);
|
||||||
goto fail1;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ALS and PROX functions can be invoked via user space poll
|
/* ALS and PROX functions can be invoked via user space poll
|
||||||
|
@ -1899,16 +1898,17 @@ static int tsl2x7x_probe(struct i2c_client *clientp,
|
||||||
indio_dev->num_channels = chip->chip_info->chan_table_elements;
|
indio_dev->num_channels = chip->chip_info->chan_table_elements;
|
||||||
|
|
||||||
if (clientp->irq) {
|
if (clientp->irq) {
|
||||||
ret = request_threaded_irq(clientp->irq,
|
ret = devm_request_threaded_irq(&clientp->dev, clientp->irq,
|
||||||
NULL,
|
NULL,
|
||||||
&tsl2x7x_event_handler,
|
&tsl2x7x_event_handler,
|
||||||
IRQF_TRIGGER_RISING | IRQF_ONESHOT,
|
IRQF_TRIGGER_RISING |
|
||||||
"TSL2X7X_event",
|
IRQF_ONESHOT,
|
||||||
indio_dev);
|
"TSL2X7X_event",
|
||||||
|
indio_dev);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(&clientp->dev,
|
dev_err(&clientp->dev,
|
||||||
"%s: irq request failed", __func__);
|
"%s: irq request failed", __func__);
|
||||||
goto fail1;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1921,20 +1921,12 @@ static int tsl2x7x_probe(struct i2c_client *clientp,
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(&clientp->dev,
|
dev_err(&clientp->dev,
|
||||||
"%s: iio registration failed\n", __func__);
|
"%s: iio registration failed\n", __func__);
|
||||||
goto fail2;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
dev_info(&clientp->dev, "%s Light sensor found.\n", id->name);
|
dev_info(&clientp->dev, "%s Light sensor found.\n", id->name);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail2:
|
|
||||||
if (clientp->irq)
|
|
||||||
free_irq(clientp->irq, indio_dev);
|
|
||||||
fail1:
|
|
||||||
iio_device_free(indio_dev);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tsl2x7x_suspend(struct device *dev)
|
static int tsl2x7x_suspend(struct device *dev)
|
||||||
|
@ -1980,10 +1972,6 @@ static int tsl2x7x_remove(struct i2c_client *client)
|
||||||
tsl2x7x_chip_off(indio_dev);
|
tsl2x7x_chip_off(indio_dev);
|
||||||
|
|
||||||
iio_device_unregister(indio_dev);
|
iio_device_unregister(indio_dev);
|
||||||
if (client->irq)
|
|
||||||
free_irq(client->irq, indio_dev);
|
|
||||||
|
|
||||||
iio_device_free(indio_dev);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue