]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/staging/iio/accel/adis16240_core.c
staging:iio: fix removal path to allow correct freeing.
[karo-tx-linux.git] / drivers / staging / iio / accel / adis16240_core.c
index 6d3194f2a52d8b90c49bd2afba65c90f67063856..b8be2925d61c1ae468bdbfa847a8a1fdc7888809 100644 (file)
@@ -392,7 +392,7 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
        case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
        case (1 << IIO_CHAN_INFO_SCALE_SHARED):
                switch (chan->type) {
-               case IIO_IN:
+               case IIO_VOLTAGE:
                        *val = 0;
                        if (chan->channel == 0)
                                *val2 = 4880;
@@ -469,11 +469,11 @@ static int adis16240_write_raw(struct iio_dev *indio_dev,
 }
 
 static struct iio_chan_spec adis16240_channels[] = {
-       IIO_CHAN(IIO_IN, 0, 1, 0, "supply", 0, 0,
+       IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0,
                 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
                 in_supply, ADIS16240_SCAN_SUPPLY,
                 IIO_ST('u', 10, 16, 0), 0),
-       IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0,
+       IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
                 0,
                 in_aux, ADIS16240_SCAN_AUX_ADC,
                 IIO_ST('u', 10, 16, 0), 0),
@@ -589,10 +589,11 @@ static int adis16240_remove(struct spi_device *spi)
 
        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;
 }