{
struct iio_dev *indio_dev = spi_get_drvdata(spi);
+ iio_device_unregister(indio_dev);
adis16201_remove_trigger(indio_dev);
iio_buffer_unregister(indio_dev);
adis16201_unconfigure_ring(indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
{
struct iio_dev *indio_dev = spi_get_drvdata(spi);
+ iio_device_unregister(indio_dev);
adis16203_remove_trigger(indio_dev);
iio_buffer_unregister(indio_dev);
adis16203_unconfigure_ring(indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
{
struct iio_dev *indio_dev = spi_get_drvdata(spi);
+ iio_device_unregister(indio_dev);
adis16204_remove_trigger(indio_dev);
iio_buffer_unregister(indio_dev);
adis16204_unconfigure_ring(indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
flush_scheduled_work();
+ iio_device_unregister(indio_dev);
adis16209_remove_trigger(indio_dev);
iio_buffer_unregister(indio_dev);
adis16209_unconfigure_ring(indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
static int __devinit adis16220_probe(struct spi_device *spi)
{
- int ret, regdone = 0;
+ int ret;
struct adis16220_state *st;
struct iio_dev *indio_dev;
ret = iio_device_register(indio_dev);
if (ret)
goto error_free_dev;
- regdone = 1;
ret = sysfs_create_bin_file(&indio_dev->dev.kobj, &accel_bin);
if (ret)
- goto error_free_dev;
+ goto error_unregister_dev;
ret = sysfs_create_bin_file(&indio_dev->dev.kobj, &adc1_bin);
if (ret)
sysfs_remove_bin_file(&indio_dev->dev.kobj, &adc1_bin);
error_rm_accel_bin:
sysfs_remove_bin_file(&indio_dev->dev.kobj, &accel_bin);
+error_unregister_dev:
+ iio_device_unregister(indio_dev);
error_free_dev:
- if (regdone)
- iio_device_unregister(indio_dev);
- else
- iio_free_device(indio_dev);
+ iio_free_device(indio_dev);
error_ret:
return ret;
}
sysfs_remove_bin_file(&indio_dev->dev.kobj, &adc1_bin);
sysfs_remove_bin_file(&indio_dev->dev.kobj, &accel_bin);
iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
flush_scheduled_work();
+ iio_device_unregister(indio_dev);
adis16240_remove_trigger(indio_dev);
iio_buffer_unregister(indio_dev);
adis16240_unconfigure_ring(indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
static int __devexit kxsd9_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
error_unreg_buffer_funcs:
lis3l02dq_unconfigure_buffer(indio_dev);
error_free_dev:
- iio_free_device(indio_dev);
+ iio_free_device(indio_dev);
error_ret:
return ret;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct lis3l02dq_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
+
ret = lis3l02dq_disable_all_events(indio_dev);
if (ret)
goto err_ret;
iio_buffer_unregister(indio_dev);
lis3l02dq_unconfigure_buffer(indio_dev);
- iio_device_unregister(indio_dev);
-
+ iio_free_device(indio_dev);
err_ret:
return ret;
}
static int __devinit sca3000_probe(struct spi_device *spi)
{
- int ret, regdone = 0;
+ int ret;
struct sca3000_state *st;
struct iio_dev *indio_dev;
ret = iio_device_register(indio_dev);
if (ret < 0)
goto error_free_dev;
- regdone = 1;
+
ret = iio_buffer_register(indio_dev,
sca3000_channels,
ARRAY_SIZE(sca3000_channels));
error_unregister_ring:
iio_buffer_unregister(indio_dev);
error_unregister_dev:
+ iio_device_unregister(indio_dev);
error_free_dev:
- if (regdone)
- iio_device_unregister(indio_dev);
- else
- iio_free_device(indio_dev);
+ iio_free_device(indio_dev);
error_ret:
return ret;
return ret;
if (spi->irq)
free_irq(spi->irq, indio_dev);
+ iio_device_unregister(indio_dev);
iio_buffer_unregister(indio_dev);
sca3000_unconfigure_ring(indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
{
struct iio_dev *indio_dev = i2c_get_clientdata(client);
+ iio_device_unregister(indio_dev);
if (client->irq)
free_irq(client->irq, indio_dev);
if (client->dev.platform_data)
free_irq(*(unsigned int *)client->dev.platform_data, indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = i2c_get_clientdata(client);
iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct ad7192_platform_data *pdata = spi->dev.platform_data;
struct ad7192_state *st;
struct iio_dev *indio_dev;
- int ret, i , voltage_uv = 0, regdone = 0;
+ int ret, i , voltage_uv = 0;
if (!pdata) {
dev_err(&spi->dev, "no platform data?\n");
if (ret)
goto error_disable_reg;
- ret = iio_device_register(indio_dev);
- if (ret)
- goto error_unreg_ring;
- regdone = 1;
-
ret = ad7192_probe_trigger(indio_dev);
if (ret)
- goto error_unreg_ring;
+ goto error_ring_cleanup;
ret = iio_buffer_register(indio_dev,
indio_dev->channels,
ret = ad7192_setup(st);
if (ret)
- goto error_uninitialize_ring;
+ goto error_unreg_ring;
+ ret = iio_device_register(indio_dev);
+ if (ret < 0)
+ goto error_unreg_ring;
return 0;
-error_uninitialize_ring:
+error_unreg_ring:
iio_buffer_unregister(indio_dev);
error_remove_trigger:
ad7192_remove_trigger(indio_dev);
-error_unreg_ring:
+error_ring_cleanup:
ad7192_ring_cleanup(indio_dev);
error_disable_reg:
if (!IS_ERR(st->reg))
if (!IS_ERR(st->reg))
regulator_put(st->reg);
- if (regdone)
- iio_device_unregister(indio_dev);
- else
- iio_free_device(indio_dev);
+ iio_free_device(indio_dev);
return ret;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad7192_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
iio_buffer_unregister(indio_dev);
ad7192_remove_trigger(indio_dev);
ad7192_ring_cleanup(indio_dev);
regulator_put(st->reg);
}
- iio_device_unregister(indio_dev);
-
return 0;
}
{
const struct ad7280_platform_data *pdata = spi->dev.platform_data;
struct ad7280_state *st;
- int ret, regdone = 0;
+ int ret;
const unsigned short tACQ_ns[4] = {465, 1010, 1460, 1890};
const unsigned short nAVG[4] = {1, 2, 4, 8};
struct iio_dev *indio_dev = iio_allocate_device(sizeof(*st));
ret = iio_device_register(indio_dev);
if (ret)
goto error_free_attr;
- regdone = 1;
if (spi->irq > 0) {
ret = ad7280_write(st, AD7280A_DEVADDR_MASTER,
AD7280A_ALERT, 1,
AD7280A_ALERT_RELAY_SIG_CHAIN_DOWN);
if (ret)
- goto error_free_attr;
+ goto error_unregister;
ret = ad7280_write(st, AD7280A_DEVADDR(st->slave_num),
AD7280A_ALERT, 0,
AD7280A_ALERT_GEN_STATIC_HIGH |
(pdata->chain_last_alert_ignore & 0xF));
if (ret)
- goto error_free_attr;
+ goto error_unregister;
ret = request_threaded_irq(spi->irq,
NULL,
indio_dev->name,
indio_dev);
if (ret)
- goto error_free_attr;
+ goto error_unregister;
}
return 0;
+error_unregister:
+ iio_device_unregister(indio_dev);
error_free_attr:
kfree(st->iio_attr);
kfree(st->channels);
error_free_device:
- if (regdone)
- iio_device_unregister(indio_dev);
- else
- iio_free_device(indio_dev);
+ iio_free_device(indio_dev);
return ret;
}
if (spi->irq > 0)
free_irq(spi->irq, indio_dev);
+ iio_device_unregister(indio_dev);
ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1,
AD7280A_CTRL_HB_PWRDN_SW | st->ctrl_hb);
kfree(st->channels);
kfree(st->iio_attr);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = i2c_get_clientdata(client);
struct ad7291_chip_info *chip = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
+
if (client->irq)
free_irq(client->irq, indio_dev);
regulator_put(chip->reg);
}
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad7298_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
iio_buffer_unregister(indio_dev);
ad7298_ring_cleanup(indio_dev);
- iio_device_unregister(indio_dev);
if (!IS_ERR(st->reg)) {
regulator_disable(st->reg);
regulator_put(st->reg);
}
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad7476_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
iio_buffer_unregister(indio_dev);
ad7476_ring_cleanup(indio_dev);
if (!IS_ERR(st->reg)) {
regulator_disable(st->reg);
regulator_put(st->reg);
}
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
{
struct ad7606_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
iio_buffer_unregister(indio_dev);
ad7606_ring_cleanup(indio_dev);
}
ad7606_free_gpios(st);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = i2c_get_clientdata(client);
iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad7780_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
free_irq(spi->irq, st);
gpio_free(st->pdata->gpio_pdrst);
if (!IS_ERR(st->reg)) {
regulator_disable(st->reg);
regulator_put(st->reg);
}
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad7793_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
iio_buffer_unregister(indio_dev);
ad7793_remove_trigger(indio_dev);
ad7793_ring_cleanup(indio_dev);
regulator_put(st->reg);
}
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = dev_get_drvdata(&spi_dev->dev);
struct ad7816_chip_info *chip = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
dev_set_drvdata(&spi_dev->dev, NULL);
if (spi_dev->irq)
free_irq(spi_dev->irq, indio_dev);
gpio_free(chip->busy_pin);
gpio_free(chip->convert_pin);
gpio_free(chip->rdwr_pin);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad7887_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
iio_buffer_unregister(indio_dev);
ad7887_ring_cleanup(indio_dev);
if (!IS_ERR(st->reg)) {
regulator_disable(st->reg);
regulator_put(st->reg);
}
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = i2c_get_clientdata(client);
struct ad799x_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
if (client->irq > 0)
free_irq(client->irq, indio_dev);
regulator_disable(st->reg);
regulator_put(st->reg);
}
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = dev_get_drvdata(&spi_dev->dev);
unsigned long *adt7310_platform_data = spi_dev->dev.platform_data;
+ iio_device_unregister(indio_dev);
dev_set_drvdata(&spi_dev->dev, NULL);
if (adt7310_platform_data[0])
free_irq(adt7310_platform_data[0], indio_dev);
if (spi_dev->irq)
free_irq(spi_dev->irq, indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = i2c_get_clientdata(client);
unsigned long *adt7410_platform_data = client->dev.platform_data;
+ iio_device_unregister(indio_dev);
if (adt7410_platform_data[0])
free_irq(adt7410_platform_data[0], indio_dev);
if (client->irq)
free_irq(client->irq, indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct max1363_state *st = iio_priv(indio_dev);
struct regulator *reg = st->reg;
+ iio_device_unregister(indio_dev);
if (client->irq)
free_irq(st->client->irq, indio_dev);
iio_buffer_unregister(indio_dev);
regulator_disable(reg);
regulator_put(reg);
}
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = dev_get_drvdata(dev);
struct adt7316_chip_info *chip = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
if (chip->bus.irq)
free_irq(chip->bus.irq, indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
{
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad5446_state *st = iio_priv(indio_dev);
- struct regulator *reg = st->reg;
iio_device_unregister(indio_dev);
- if (!IS_ERR(reg)) {
- regulator_disable(reg);
- regulator_put(reg);
+ if (!IS_ERR(st->reg)) {
+ regulator_disable(st->reg);
+ regulator_put(st->reg);
}
+ iio_free_device(indio_dev);
+
return 0;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad5504_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
if (spi->irq)
free_irq(spi->irq, indio_dev);
regulator_disable(st->reg);
regulator_put(st->reg);
}
-
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad5624r_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
if (!IS_ERR(st->reg)) {
regulator_disable(st->reg);
regulator_put(st->reg);
}
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad5686_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
if (!IS_ERR(st->reg)) {
regulator_disable(st->reg);
regulator_put(st->reg);
}
-
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad5791_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
if (!IS_ERR(st->reg_vdd)) {
regulator_disable(st->reg_vdd);
regulator_put(st->reg_vdd);
regulator_disable(st->reg_vss);
regulator_put(st->reg_vss);
}
- iio_device_unregister(indio_dev);
-
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
static int __devexit ad5930_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
{
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad9832_state *st = iio_priv(indio_dev);
- struct regulator *reg = st->reg;
iio_device_unregister(indio_dev);
- if (!IS_ERR(reg)) {
- regulator_disable(reg);
- regulator_put(reg);
+ if (!IS_ERR(st->reg)) {
+ regulator_disable(st->reg);
+ regulator_put(st->reg);
}
+ iio_free_device(indio_dev);
+
return 0;
}
{
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad9834_state *st = iio_priv(indio_dev);
- struct regulator *reg = st->reg;
iio_device_unregister(indio_dev);
- if (!IS_ERR(reg)) {
- regulator_disable(reg);
- regulator_put(reg);
+ if (!IS_ERR(st->reg)) {
+ regulator_disable(st->reg);
+ regulator_put(st->reg);
}
+ iio_free_device(indio_dev);
return 0;
}
static int __devexit ad9850_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
static int __devexit ad9852_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
static int __devexit ad9910_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
static int __devexit ad9951_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
static int adis16060_r_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
static int adis16080_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
static int adis16130_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
int ret;
struct iio_dev *indio_dev = spi_get_drvdata(spi);
+ iio_device_unregister(indio_dev);
+
ret = adis16260_stop_device(indio_dev);
if (ret)
goto err_ret;
adis16260_remove_trigger(indio_dev);
iio_buffer_unregister(indio_dev);
adis16260_unconfigure_ring(indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
err_ret:
return ret;
static int __devinit adxrs450_probe(struct spi_device *spi)
{
- int ret, regdone = 0;
+ int ret;
struct adxrs450_state *st;
struct iio_dev *indio_dev;
ret = iio_device_register(indio_dev);
if (ret)
goto error_free_dev;
- regdone = 1;
/* Get the device into a sane initial state */
ret = adxrs450_initial_setup(indio_dev);
if (ret)
goto error_initial;
return 0;
-
error_initial:
+ iio_device_unregister(indio_dev);
error_free_dev:
- if (regdone)
- iio_device_unregister(indio_dev);
- else
- iio_free_device(indio_dev);
+ iio_free_device(indio_dev);
error_ret:
return ret;
static int adxrs450_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
struct iio_dev *indio_dev = i2c_get_clientdata(client);
struct ad5933_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
iio_buffer_unregister(indio_dev);
iio_sw_rb_free(indio_dev->buffer);
if (!IS_ERR(st->reg)) {
regulator_disable(st->reg);
regulator_put(st->reg);
}
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
int ret;
struct iio_dev *indio_dev = spi_get_drvdata(spi);
+ iio_device_unregister(indio_dev);
ret = adis16400_stop_device(indio_dev);
if (ret)
goto err_ret;
adis16400_remove_trigger(indio_dev);
iio_buffer_unregister(indio_dev);
adis16400_unconfigure_ring(indio_dev);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
l)
indio_dev->event_interface->group.attrs[attrn++] =
&p->dev_attr.attr;
-
indio_dev->groups[indio_dev->groupcounter++] =
&indio_dev->event_interface->group;
iio_device_unregister_trigger_consumer(indio_dev);
iio_device_unregister_eventset(indio_dev);
iio_device_unregister_sysfs(indio_dev);
- ida_simple_remove(&iio_ida, indio_dev->id);
- kfree(indio_dev);
}
static struct device_type iio_dev_type = {
dev_dbg(&client->dev, "%s()\n", __func__);
iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
{
struct tsl2563_chip *chip = i2c_get_clientdata(client);
struct iio_dev *indio_dev = iio_priv_to_dev(chip);
+
+ iio_device_unregister(indio_dev);
if (!chip->int_enabled)
cancel_delayed_work(&chip->poweroff_work);
/* Ensure that interrupts are disabled - then flush any bottom halves */
tsl2563_set_power(chip, 0);
if (client->irq)
free_irq(client->irq, indio_dev);
- iio_device_unregister(indio_dev);
+
+ iio_free_device(indio_dev);
return 0;
}
static int __devexit taos_remove(struct i2c_client *client)
{
iio_device_unregister(i2c_get_clientdata(client));
+ iio_free_device(i2c_get_clientdata(client));
return 0;
}
{
struct iio_dev *indio_dev = i2c_get_clientdata(client);
struct ak8975_data *data = iio_priv(indio_dev);
- int eoc_gpio = data->eoc_gpio;
iio_device_unregister(indio_dev);
- if (gpio_is_valid(eoc_gpio))
- gpio_free(eoc_gpio);
+ if (gpio_is_valid(data->eoc_gpio))
+ gpio_free(data->eoc_gpio);
+
+ iio_free_device(indio_dev);
return 0;
}
static int hmc5843_remove(struct i2c_client *client)
{
struct iio_dev *indio_dev = i2c_get_clientdata(client);
+
+ iio_device_unregister(indio_dev);
/* sleep mode to save power */
hmc5843_configure(client, MODE_SLEEP);
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
int ret;
struct iio_dev *indio_dev = spi_get_drvdata(spi);
+ iio_device_unregister(indio_dev);
+
ret = ade7753_stop_device(&(indio_dev->dev));
if (ret)
goto err_ret;
- iio_device_unregister(indio_dev);
-
+ iio_free_device(indio_dev);
err_ret:
return ret;
}
int ret;
struct iio_dev *indio_dev = spi_get_drvdata(spi);
+ iio_device_unregister(indio_dev);
ret = ade7754_stop_device(&(indio_dev->dev));
if (ret)
goto err_ret;
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
err_ret:
return ret;
struct ade7758_state *st = iio_priv(indio_dev);
int ret;
+ iio_device_unregister(indio_dev);
ret = ade7758_stop_device(&indio_dev->dev);
if (ret)
goto err_ret;
ade7758_unconfigure_ring(indio_dev);
kfree(st->tx);
kfree(st->rx);
- iio_device_unregister(indio_dev);
- return 0;
+ iio_free_device(indio_dev);
+
err_ret:
return ret;
}
int ret;
struct iio_dev *indio_dev = spi_get_drvdata(spi);
+ iio_device_unregister(indio_dev);
ret = ade7759_stop_device(&(indio_dev->dev));
if (ret)
goto err_ret;
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
err_ret:
return ret;
int ade7854_remove(struct iio_dev *indio_dev)
{
iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}
static int __devexit ad2s1200_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}
static int __devexit ad2s1210_remove(struct spi_device *spi)
{
struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad2s1210_state *st = iio_priv(indio_dev);
- ad2s1210_free_gpios(st);
iio_device_unregister(indio_dev);
+ ad2s1210_free_gpios(iio_priv(indio_dev));
+ iio_free_device(indio_dev);
return 0;
}
static int __devexit ad2s90_remove(struct spi_device *spi)
{
iio_device_unregister(spi_get_drvdata(spi));
+ iio_free_device(spi_get_drvdata(spi));
return 0;
}