staging:iio:various move default scan mask setting after ring register or remove
[pandora-kernel.git] / drivers / staging / iio / gyro / adis16260_core.c
index 5541cdd..acd17e5 100644 (file)
@@ -629,14 +629,21 @@ static int __devinit adis16260_probe(struct spi_device *spi)
        if (ret)
                goto error_unreg_ring_funcs;
        regdone = 1;
-       ret = iio_ring_buffer_register_ex(indio_dev, 0,
-                                         indio_dev->channels,
-                                         ARRAY_SIZE(adis16260_channels_x));
+       ret = iio_ring_buffer_register(indio_dev,
+                                      indio_dev->channels,
+                                      ARRAY_SIZE(adis16260_channels_x));
        if (ret) {
                printk(KERN_ERR "failed to initialize the ring\n");
                goto error_unreg_ring_funcs;
        }
-
+       if (indio_dev->ring) {
+               /* Set default scan mode */
+               iio_scan_mask_set(indio_dev->ring, ADIS16260_SCAN_SUPPLY);
+               iio_scan_mask_set(indio_dev->ring, ADIS16260_SCAN_GYRO);
+               iio_scan_mask_set(indio_dev->ring, ADIS16260_SCAN_AUX_ADC);
+               iio_scan_mask_set(indio_dev->ring, ADIS16260_SCAN_TEMP);
+               iio_scan_mask_set(indio_dev->ring, ADIS16260_SCAN_ANGL);
+       }
        if (spi->irq) {
                ret = adis16260_probe_trigger(indio_dev);
                if (ret)
@@ -677,8 +684,8 @@ static int adis16260_remove(struct spi_device *spi)
 
        adis16260_remove_trigger(indio_dev);
        iio_ring_buffer_unregister(indio_dev);
-       iio_device_unregister(indio_dev);
        adis16260_unconfigure_ring(indio_dev);
+       iio_device_unregister(indio_dev);
 
 err_ret:
        return ret;