aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/iio/accel/adis16209.h11
-rw-r--r--drivers/staging/iio/accel/adis16209_core.c7
-rw-r--r--drivers/staging/iio/accel/adis16209_ring.c10
-rw-r--r--drivers/staging/iio/accel/adis16240.h11
-rw-r--r--drivers/staging/iio/accel/adis16240_core.c7
-rw-r--r--drivers/staging/iio/accel/adis16240_ring.c9
-rw-r--r--drivers/staging/iio/accel/lis3l02dq.h9
-rw-r--r--drivers/staging/iio/accel/lis3l02dq_core.c7
-rw-r--r--drivers/staging/iio/accel/lis3l02dq_ring.c10
-rw-r--r--drivers/staging/iio/adc/max1363.h13
-rw-r--r--drivers/staging/iio/adc/max1363_core.c6
-rw-r--r--drivers/staging/iio/adc/max1363_ring.c10
-rw-r--r--drivers/staging/iio/gyro/adis16260.h11
-rw-r--r--drivers/staging/iio/gyro/adis16260_core.c10
-rw-r--r--drivers/staging/iio/gyro/adis16260_ring.c10
-rw-r--r--drivers/staging/iio/imu/adis16300_core.c7
-rw-r--r--drivers/staging/iio/imu/adis16300_ring.c9
-rw-r--r--drivers/staging/iio/imu/adis16350.h20
-rw-r--r--drivers/staging/iio/imu/adis16350_core.c7
-rw-r--r--drivers/staging/iio/imu/adis16350_ring.c9
-rw-r--r--drivers/staging/iio/imu/adis16400.h11
-rw-r--r--drivers/staging/iio/imu/adis16400_core.c7
-rw-r--r--drivers/staging/iio/imu/adis16400_ring.c10
-rw-r--r--drivers/staging/iio/ring_generic.h11
24 files changed, 42 insertions, 190 deletions
diff --git a/drivers/staging/iio/accel/adis16209.h b/drivers/staging/iio/accel/adis16209.h
index c1d7b471e44..92daf6fad78 100644
--- a/drivers/staging/iio/accel/adis16209.h
+++ b/drivers/staging/iio/accel/adis16209.h
@@ -147,8 +147,6 @@ ssize_t adis16209_read_data_from_ring(struct device *dev,
147int adis16209_configure_ring(struct iio_dev *indio_dev); 147int adis16209_configure_ring(struct iio_dev *indio_dev);
148void adis16209_unconfigure_ring(struct iio_dev *indio_dev); 148void adis16209_unconfigure_ring(struct iio_dev *indio_dev);
149 149
150int adis16209_initialize_ring(struct iio_ring_buffer *ring);
151void adis16209_uninitialize_ring(struct iio_ring_buffer *ring);
152#else /* CONFIG_IIO_RING_BUFFER */ 150#else /* CONFIG_IIO_RING_BUFFER */
153 151
154static inline void adis16209_remove_trigger(struct iio_dev *indio_dev) 152static inline void adis16209_remove_trigger(struct iio_dev *indio_dev)
@@ -177,14 +175,5 @@ static inline void adis16209_unconfigure_ring(struct iio_dev *indio_dev)
177{ 175{
178} 176}
179 177
180static inline int adis16209_initialize_ring(struct iio_ring_buffer *ring)
181{
182 return 0;
183}
184
185static inline void adis16209_uninitialize_ring(struct iio_ring_buffer *ring)
186{
187}
188
189#endif /* CONFIG_IIO_RING_BUFFER */ 178#endif /* CONFIG_IIO_RING_BUFFER */
190#endif /* SPI_ADIS16209_H_ */ 179#endif /* SPI_ADIS16209_H_ */
diff --git a/drivers/staging/iio/accel/adis16209_core.c b/drivers/staging/iio/accel/adis16209_core.c
index c696160fc2a..6c6923f2eaa 100644
--- a/drivers/staging/iio/accel/adis16209_core.c
+++ b/drivers/staging/iio/accel/adis16209_core.c
@@ -20,6 +20,7 @@
20 20
21#include "../iio.h" 21#include "../iio.h"
22#include "../sysfs.h" 22#include "../sysfs.h"
23#include "../ring_generic.h"
23#include "accel.h" 24#include "accel.h"
24#include "inclinometer.h" 25#include "inclinometer.h"
25#include "../gyro/gyro.h" 26#include "../gyro/gyro.h"
@@ -520,7 +521,7 @@ static int __devinit adis16209_probe(struct spi_device *spi)
520 goto error_unreg_ring_funcs; 521 goto error_unreg_ring_funcs;
521 regdone = 1; 522 regdone = 1;
522 523
523 ret = adis16209_initialize_ring(st->indio_dev->ring); 524 ret = iio_ring_buffer_register(st->indio_dev->ring, 0);
524 if (ret) { 525 if (ret) {
525 printk(KERN_ERR "failed to initialize the ring\n"); 526 printk(KERN_ERR "failed to initialize the ring\n");
526 goto error_unreg_ring_funcs; 527 goto error_unreg_ring_funcs;
@@ -552,7 +553,7 @@ error_unregister_line:
552 if (spi->irq) 553 if (spi->irq)
553 iio_unregister_interrupt_line(st->indio_dev, 0); 554 iio_unregister_interrupt_line(st->indio_dev, 0);
554error_uninitialize_ring: 555error_uninitialize_ring:
555 adis16209_uninitialize_ring(st->indio_dev->ring); 556 iio_ring_buffer_unregister(st->indio_dev->ring);
556error_unreg_ring_funcs: 557error_unreg_ring_funcs:
557 adis16209_unconfigure_ring(st->indio_dev); 558 adis16209_unconfigure_ring(st->indio_dev);
558error_free_dev: 559error_free_dev:
@@ -581,7 +582,7 @@ static int adis16209_remove(struct spi_device *spi)
581 if (spi->irq) 582 if (spi->irq)
582 iio_unregister_interrupt_line(indio_dev, 0); 583 iio_unregister_interrupt_line(indio_dev, 0);
583 584
584 adis16209_uninitialize_ring(indio_dev->ring); 585 iio_ring_buffer_unregister(indio_dev->ring);
585 iio_device_unregister(indio_dev); 586 iio_device_unregister(indio_dev);
586 adis16209_unconfigure_ring(indio_dev); 587 adis16209_unconfigure_ring(indio_dev);
587 kfree(st->tx); 588 kfree(st->tx);
diff --git a/drivers/staging/iio/accel/adis16209_ring.c b/drivers/staging/iio/accel/adis16209_ring.c
index 5945d6712cb..f3a9493bd5c 100644
--- a/drivers/staging/iio/accel/adis16209_ring.c
+++ b/drivers/staging/iio/accel/adis16209_ring.c
@@ -225,13 +225,3 @@ error_iio_sw_rb_free:
225 iio_sw_rb_free(indio_dev->ring); 225 iio_sw_rb_free(indio_dev->ring);
226 return ret; 226 return ret;
227} 227}
228
229int adis16209_initialize_ring(struct iio_ring_buffer *ring)
230{
231 return iio_ring_buffer_register(ring, 0);
232}
233
234void adis16209_uninitialize_ring(struct iio_ring_buffer *ring)
235{
236 iio_ring_buffer_unregister(ring);
237}
diff --git a/drivers/staging/iio/accel/adis16240.h b/drivers/staging/iio/accel/adis16240.h
index 86e0f3ddb60..e45419a4235 100644
--- a/drivers/staging/iio/accel/adis16240.h
+++ b/drivers/staging/iio/accel/adis16240.h
@@ -173,8 +173,6 @@ ssize_t adis16240_read_data_from_ring(struct device *dev,
173int adis16240_configure_ring(struct iio_dev *indio_dev); 173int adis16240_configure_ring(struct iio_dev *indio_dev);
174void adis16240_unconfigure_ring(struct iio_dev *indio_dev); 174void adis16240_unconfigure_ring(struct iio_dev *indio_dev);
175 175
176int adis16240_initialize_ring(struct iio_ring_buffer *ring);
177void adis16240_uninitialize_ring(struct iio_ring_buffer *ring);
178#else /* CONFIG_IIO_RING_BUFFER */ 176#else /* CONFIG_IIO_RING_BUFFER */
179 177
180static inline void adis16240_remove_trigger(struct iio_dev *indio_dev) 178static inline void adis16240_remove_trigger(struct iio_dev *indio_dev)
@@ -203,14 +201,5 @@ static inline void adis16240_unconfigure_ring(struct iio_dev *indio_dev)
203{ 201{
204} 202}
205 203
206static inline int adis16240_initialize_ring(struct iio_ring_buffer *ring)
207{
208 return 0;
209}
210
211static inline void adis16240_uninitialize_ring(struct iio_ring_buffer *ring)
212{
213}
214
215#endif /* CONFIG_IIO_RING_BUFFER */ 204#endif /* CONFIG_IIO_RING_BUFFER */
216#endif /* SPI_ADIS16240_H_ */ 205#endif /* SPI_ADIS16240_H_ */
diff --git a/drivers/staging/iio/accel/adis16240_core.c b/drivers/staging/iio/accel/adis16240_core.c
index ba336cbea80..3e9531dd000 100644
--- a/drivers/staging/iio/accel/adis16240_core.c
+++ b/drivers/staging/iio/accel/adis16240_core.c
@@ -20,6 +20,7 @@
20 20
21#include "../iio.h" 21#include "../iio.h"
22#include "../sysfs.h" 22#include "../sysfs.h"
23#include "../ring_generic.h"
23#include "accel.h" 24#include "accel.h"
24#include "../adc/adc.h" 25#include "../adc/adc.h"
25 26
@@ -502,7 +503,7 @@ static int __devinit adis16240_probe(struct spi_device *spi)
502 goto error_unreg_ring_funcs; 503 goto error_unreg_ring_funcs;
503 regdone = 1; 504 regdone = 1;
504 505
505 ret = adis16240_initialize_ring(st->indio_dev->ring); 506 ret = iio_ring_buffer_register(st->indio_dev->ring, 0);
506 if (ret) { 507 if (ret) {
507 printk(KERN_ERR "failed to initialize the ring\n"); 508 printk(KERN_ERR "failed to initialize the ring\n");
508 goto error_unreg_ring_funcs; 509 goto error_unreg_ring_funcs;
@@ -534,7 +535,7 @@ error_unregister_line:
534 if (spi->irq) 535 if (spi->irq)
535 iio_unregister_interrupt_line(st->indio_dev, 0); 536 iio_unregister_interrupt_line(st->indio_dev, 0);
536error_uninitialize_ring: 537error_uninitialize_ring:
537 adis16240_uninitialize_ring(st->indio_dev->ring); 538 iio_ring_buffer_unregister(st->indio_dev->ring);
538error_unreg_ring_funcs: 539error_unreg_ring_funcs:
539 adis16240_unconfigure_ring(st->indio_dev); 540 adis16240_unconfigure_ring(st->indio_dev);
540error_free_dev: 541error_free_dev:
@@ -563,7 +564,7 @@ static int adis16240_remove(struct spi_device *spi)
563 if (spi->irq) 564 if (spi->irq)
564 iio_unregister_interrupt_line(indio_dev, 0); 565 iio_unregister_interrupt_line(indio_dev, 0);
565 566
566 adis16240_uninitialize_ring(indio_dev->ring); 567 iio_ring_buffer_unregister(indio_dev->ring);
567 iio_device_unregister(indio_dev); 568 iio_device_unregister(indio_dev);
568 adis16240_unconfigure_ring(indio_dev); 569 adis16240_unconfigure_ring(indio_dev);
569 kfree(st->tx); 570 kfree(st->tx);
diff --git a/drivers/staging/iio/accel/adis16240_ring.c b/drivers/staging/iio/accel/adis16240_ring.c
index ecf1110b52d..a1611bbab14 100644
--- a/drivers/staging/iio/accel/adis16240_ring.c
+++ b/drivers/staging/iio/accel/adis16240_ring.c
@@ -214,12 +214,3 @@ error_iio_sw_rb_free:
214 return ret; 214 return ret;
215} 215}
216 216
217int adis16240_initialize_ring(struct iio_ring_buffer *ring)
218{
219 return iio_ring_buffer_register(ring, 0);
220}
221
222void adis16240_uninitialize_ring(struct iio_ring_buffer *ring)
223{
224 iio_ring_buffer_unregister(ring);
225}
diff --git a/drivers/staging/iio/accel/lis3l02dq.h b/drivers/staging/iio/accel/lis3l02dq.h
index a9adae3a4cd..6de172ebc04 100644
--- a/drivers/staging/iio/accel/lis3l02dq.h
+++ b/drivers/staging/iio/accel/lis3l02dq.h
@@ -195,8 +195,6 @@ ssize_t lis3l02dq_read_accel_from_ring(struct device *dev,
195int lis3l02dq_configure_ring(struct iio_dev *indio_dev); 195int lis3l02dq_configure_ring(struct iio_dev *indio_dev);
196void lis3l02dq_unconfigure_ring(struct iio_dev *indio_dev); 196void lis3l02dq_unconfigure_ring(struct iio_dev *indio_dev);
197 197
198int lis3l02dq_initialize_ring(struct iio_ring_buffer *ring);
199void lis3l02dq_uninitialize_ring(struct iio_ring_buffer *ring);
200#else /* CONFIG_IIO_RING_BUFFER */ 198#else /* CONFIG_IIO_RING_BUFFER */
201 199
202static inline void lis3l02dq_remove_trigger(struct iio_dev *indio_dev) 200static inline void lis3l02dq_remove_trigger(struct iio_dev *indio_dev)
@@ -222,12 +220,5 @@ static int lis3l02dq_configure_ring(struct iio_dev *indio_dev)
222static inline void lis3l02dq_unconfigure_ring(struct iio_dev *indio_dev) 220static inline void lis3l02dq_unconfigure_ring(struct iio_dev *indio_dev)
223{ 221{
224} 222}
225static inline int lis3l02dq_initialize_ring(struct iio_ring_buffer *ring)
226{
227 return 0;
228}
229static inline void lis3l02dq_uninitialize_ring(struct iio_ring_buffer *ring)
230{
231}
232#endif /* CONFIG_IIO_RING_BUFFER */ 223#endif /* CONFIG_IIO_RING_BUFFER */
233#endif /* SPI_LIS3L02DQ_H_ */ 224#endif /* SPI_LIS3L02DQ_H_ */
diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c
index 40348695493..f86ffb838ce 100644
--- a/drivers/staging/iio/accel/lis3l02dq_core.c
+++ b/drivers/staging/iio/accel/lis3l02dq_core.c
@@ -27,6 +27,7 @@
27 27
28#include "../iio.h" 28#include "../iio.h"
29#include "../sysfs.h" 29#include "../sysfs.h"
30#include "../ring_generic.h"
30#include "accel.h" 31#include "accel.h"
31 32
32#include "lis3l02dq.h" 33#include "lis3l02dq.h"
@@ -791,7 +792,7 @@ static int __devinit lis3l02dq_probe(struct spi_device *spi)
791 goto error_unreg_ring_funcs; 792 goto error_unreg_ring_funcs;
792 regdone = 1; 793 regdone = 1;
793 794
794 ret = lis3l02dq_initialize_ring(st->indio_dev->ring); 795 ret = iio_ring_buffer_register(st->indio_dev->ring, 0);
795 if (ret) { 796 if (ret) {
796 printk(KERN_ERR "failed to initialize the ring\n"); 797 printk(KERN_ERR "failed to initialize the ring\n");
797 goto error_unreg_ring_funcs; 798 goto error_unreg_ring_funcs;
@@ -825,7 +826,7 @@ error_unregister_line:
825 if (st->indio_dev->modes & INDIO_RING_TRIGGERED) 826 if (st->indio_dev->modes & INDIO_RING_TRIGGERED)
826 iio_unregister_interrupt_line(st->indio_dev, 0); 827 iio_unregister_interrupt_line(st->indio_dev, 0);
827error_uninitialize_ring: 828error_uninitialize_ring:
828 lis3l02dq_uninitialize_ring(st->indio_dev->ring); 829 iio_ring_buffer_unregister(st->indio_dev->ring);
829error_unreg_ring_funcs: 830error_unreg_ring_funcs:
830 lis3l02dq_unconfigure_ring(st->indio_dev); 831 lis3l02dq_unconfigure_ring(st->indio_dev);
831error_free_dev: 832error_free_dev:
@@ -886,7 +887,7 @@ static int lis3l02dq_remove(struct spi_device *spi)
886 if (spi->irq && gpio_is_valid(irq_to_gpio(spi->irq)) > 0) 887 if (spi->irq && gpio_is_valid(irq_to_gpio(spi->irq)) > 0)
887 iio_unregister_interrupt_line(indio_dev, 0); 888 iio_unregister_interrupt_line(indio_dev, 0);
888 889
889 lis3l02dq_uninitialize_ring(indio_dev->ring); 890 iio_ring_buffer_unregister(indio_dev->ring);
890 lis3l02dq_unconfigure_ring(indio_dev); 891 lis3l02dq_unconfigure_ring(indio_dev);
891 iio_device_unregister(indio_dev); 892 iio_device_unregister(indio_dev);
892 kfree(st->tx); 893 kfree(st->tx);
diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c
index 28d95ed0b24..a506dab27e0 100644
--- a/drivers/staging/iio/accel/lis3l02dq_ring.c
+++ b/drivers/staging/iio/accel/lis3l02dq_ring.c
@@ -559,15 +559,5 @@ error_iio_sw_rb_free:
559 return ret; 559 return ret;
560} 560}
561 561
562int lis3l02dq_initialize_ring(struct iio_ring_buffer *ring)
563{
564 return iio_ring_buffer_register(ring, 0);
565}
566
567void lis3l02dq_uninitialize_ring(struct iio_ring_buffer *ring)
568{
569 iio_ring_buffer_unregister(ring);
570}
571
572 562
573 563
diff --git a/drivers/staging/iio/adc/max1363.h b/drivers/staging/iio/adc/max1363.h
index bd35509b105..8f0fe1ced2c 100644
--- a/drivers/staging/iio/adc/max1363.h
+++ b/drivers/staging/iio/adc/max1363.h
@@ -230,26 +230,13 @@ int max1363_single_channel_from_ring(long mask, struct max1363_state *st);
230int max1363_register_ring_funcs_and_init(struct iio_dev *indio_dev); 230int max1363_register_ring_funcs_and_init(struct iio_dev *indio_dev);
231void max1363_ring_cleanup(struct iio_dev *indio_dev); 231void max1363_ring_cleanup(struct iio_dev *indio_dev);
232 232
233int max1363_initialize_ring(struct iio_ring_buffer *ring);
234void max1363_uninitialize_ring(struct iio_ring_buffer *ring);
235
236#else /* CONFIG_MAX1363_RING_BUFFER */ 233#else /* CONFIG_MAX1363_RING_BUFFER */
237 234
238static inline void max1363_uninitialize_ring(struct iio_ring_buffer *ring)
239{
240}
241
242static inline int max1363_initialize_ring(struct iio_ring_buffer *ring)
243{
244 return 0;
245}
246
247int max1363_single_channel_from_ring(long mask, struct max1363_state *st) 235int max1363_single_channel_from_ring(long mask, struct max1363_state *st)
248{ 236{
249 return -EINVAL; 237 return -EINVAL;
250} 238}
251 239
252
253static inline int 240static inline int
254max1363_register_ring_funcs_and_init(struct iio_dev *indio_dev) 241max1363_register_ring_funcs_and_init(struct iio_dev *indio_dev)
255{ 242{
diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
index c23485f24c5..6435e509dd5 100644
--- a/drivers/staging/iio/adc/max1363_core.c
+++ b/drivers/staging/iio/adc/max1363_core.c
@@ -1653,7 +1653,7 @@ static int __devinit max1363_probe(struct i2c_client *client,
1653 if (ret) 1653 if (ret)
1654 goto error_cleanup_ring; 1654 goto error_cleanup_ring;
1655 regdone = 1; 1655 regdone = 1;
1656 ret = max1363_initialize_ring(st->indio_dev->ring); 1656 ret = iio_ring_buffer_register(st->indio_dev->ring, 0);
1657 if (ret) 1657 if (ret)
1658 goto error_cleanup_ring; 1658 goto error_cleanup_ring;
1659 1659
@@ -1671,7 +1671,7 @@ static int __devinit max1363_probe(struct i2c_client *client,
1671 1671
1672 return 0; 1672 return 0;
1673error_uninit_ring: 1673error_uninit_ring:
1674 max1363_uninitialize_ring(st->indio_dev->ring); 1674 iio_ring_buffer_unregister(st->indio_dev->ring);
1675error_cleanup_ring: 1675error_cleanup_ring:
1676 max1363_ring_cleanup(st->indio_dev); 1676 max1363_ring_cleanup(st->indio_dev);
1677error_free_available_scan_masks: 1677error_free_available_scan_masks:
@@ -1700,7 +1700,7 @@ static int max1363_remove(struct i2c_client *client)
1700 1700
1701 if (st->chip_info->monitor_mode && client->irq) 1701 if (st->chip_info->monitor_mode && client->irq)
1702 iio_unregister_interrupt_line(st->indio_dev, 0); 1702 iio_unregister_interrupt_line(st->indio_dev, 0);
1703 max1363_uninitialize_ring(indio_dev->ring); 1703 iio_ring_buffer_unregister(indio_dev->ring);
1704 max1363_ring_cleanup(indio_dev); 1704 max1363_ring_cleanup(indio_dev);
1705 kfree(st->indio_dev->available_scan_masks); 1705 kfree(st->indio_dev->available_scan_masks);
1706 iio_device_unregister(indio_dev); 1706 iio_device_unregister(indio_dev);
diff --git a/drivers/staging/iio/adc/max1363_ring.c b/drivers/staging/iio/adc/max1363_ring.c
index f9d5101e53a..786b17a0d6b 100644
--- a/drivers/staging/iio/adc/max1363_ring.c
+++ b/drivers/staging/iio/adc/max1363_ring.c
@@ -224,13 +224,3 @@ void max1363_ring_cleanup(struct iio_dev *indio_dev)
224 kfree(indio_dev->pollfunc); 224 kfree(indio_dev->pollfunc);
225 iio_sw_rb_free(indio_dev->ring); 225 iio_sw_rb_free(indio_dev->ring);
226} 226}
227
228void max1363_uninitialize_ring(struct iio_ring_buffer *ring)
229{
230 iio_ring_buffer_unregister(ring);
231}
232
233int max1363_initialize_ring(struct iio_ring_buffer *ring)
234{
235 return iio_ring_buffer_register(ring, 0);
236}
diff --git a/drivers/staging/iio/gyro/adis16260.h b/drivers/staging/iio/gyro/adis16260.h
index 53f5fbd762f..9f868b523ca 100644
--- a/drivers/staging/iio/gyro/adis16260.h
+++ b/drivers/staging/iio/gyro/adis16260.h
@@ -130,8 +130,6 @@ ssize_t adis16260_read_data_from_ring(struct device *dev,
130int adis16260_configure_ring(struct iio_dev *indio_dev); 130int adis16260_configure_ring(struct iio_dev *indio_dev);
131void adis16260_unconfigure_ring(struct iio_dev *indio_dev); 131void adis16260_unconfigure_ring(struct iio_dev *indio_dev);
132 132
133int adis16260_initialize_ring(struct iio_ring_buffer *ring);
134void adis16260_uninitialize_ring(struct iio_ring_buffer *ring);
135#else /* CONFIG_IIO_RING_BUFFER */ 133#else /* CONFIG_IIO_RING_BUFFER */
136 134
137static inline void adis16260_remove_trigger(struct iio_dev *indio_dev) 135static inline void adis16260_remove_trigger(struct iio_dev *indio_dev)
@@ -160,14 +158,5 @@ static inline void adis16260_unconfigure_ring(struct iio_dev *indio_dev)
160{ 158{
161} 159}
162 160
163static inline int adis16260_initialize_ring(struct iio_ring_buffer *ring)
164{
165 return 0;
166}
167
168static inline void adis16260_uninitialize_ring(struct iio_ring_buffer *ring)
169{
170}
171
172#endif /* CONFIG_IIO_RING_BUFFER */ 161#endif /* CONFIG_IIO_RING_BUFFER */
173#endif /* SPI_ADIS16260_H_ */ 162#endif /* SPI_ADIS16260_H_ */
diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c
index f0246a42473..134dfaae2f0 100644
--- a/drivers/staging/iio/gyro/adis16260_core.c
+++ b/drivers/staging/iio/gyro/adis16260_core.c
@@ -20,6 +20,7 @@
20 20
21#include "../iio.h" 21#include "../iio.h"
22#include "../sysfs.h" 22#include "../sysfs.h"
23#include "../ring_generic.h"
23#include "../adc/adc.h" 24#include "../adc/adc.h"
24#include "gyro.h" 25#include "gyro.h"
25 26
@@ -555,8 +556,7 @@ static int __devinit adis16260_probe(struct spi_device *spi)
555 if (ret) 556 if (ret)
556 goto error_unreg_ring_funcs; 557 goto error_unreg_ring_funcs;
557 regdone = 1; 558 regdone = 1;
558 559 ret = iio_ring_buffer_register(st->indio_dev->ring, 0);
559 ret = adis16260_initialize_ring(st->indio_dev->ring);
560 if (ret) { 560 if (ret) {
561 printk(KERN_ERR "failed to initialize the ring\n"); 561 printk(KERN_ERR "failed to initialize the ring\n");
562 goto error_unreg_ring_funcs; 562 goto error_unreg_ring_funcs;
@@ -588,7 +588,7 @@ error_unregister_line:
588 if (spi->irq) 588 if (spi->irq)
589 iio_unregister_interrupt_line(st->indio_dev, 0); 589 iio_unregister_interrupt_line(st->indio_dev, 0);
590error_uninitialize_ring: 590error_uninitialize_ring:
591 adis16260_uninitialize_ring(st->indio_dev->ring); 591 iio_ring_buffer_unregister(st->indio_dev->ring);
592error_unreg_ring_funcs: 592error_unreg_ring_funcs:
593 adis16260_unconfigure_ring(st->indio_dev); 593 adis16260_unconfigure_ring(st->indio_dev);
594error_free_dev: 594error_free_dev:
@@ -622,15 +622,13 @@ static int adis16260_remove(struct spi_device *spi)
622 if (spi->irq) 622 if (spi->irq)
623 iio_unregister_interrupt_line(indio_dev, 0); 623 iio_unregister_interrupt_line(indio_dev, 0);
624 624
625 adis16260_uninitialize_ring(indio_dev->ring); 625 iio_ring_buffer_unregister(st->indio_dev->ring);
626 iio_device_unregister(indio_dev); 626 iio_device_unregister(indio_dev);
627 adis16260_unconfigure_ring(indio_dev); 627 adis16260_unconfigure_ring(indio_dev);
628 kfree(st->tx); 628 kfree(st->tx);
629 kfree(st->rx); 629 kfree(st->rx);
630 kfree(st); 630 kfree(st);
631 631
632 return 0;
633
634err_ret: 632err_ret:
635 return ret; 633 return ret;
636} 634}
diff --git a/drivers/staging/iio/gyro/adis16260_ring.c b/drivers/staging/iio/gyro/adis16260_ring.c
index 57ebc8c0bb7..94b4515c20f 100644
--- a/drivers/staging/iio/gyro/adis16260_ring.c
+++ b/drivers/staging/iio/gyro/adis16260_ring.c
@@ -215,13 +215,3 @@ error_iio_sw_rb_free:
215 iio_sw_rb_free(indio_dev->ring); 215 iio_sw_rb_free(indio_dev->ring);
216 return ret; 216 return ret;
217} 217}
218
219int adis16260_initialize_ring(struct iio_ring_buffer *ring)
220{
221 return iio_ring_buffer_register(ring, 0);
222}
223
224void adis16260_uninitialize_ring(struct iio_ring_buffer *ring)
225{
226 iio_ring_buffer_unregister(ring);
227}
diff --git a/drivers/staging/iio/imu/adis16300_core.c b/drivers/staging/iio/imu/adis16300_core.c
index 28667e8f26c..f1950d56cb1 100644
--- a/drivers/staging/iio/imu/adis16300_core.c
+++ b/drivers/staging/iio/imu/adis16300_core.c
@@ -20,6 +20,7 @@
20 20
21#include "../iio.h" 21#include "../iio.h"
22#include "../sysfs.h" 22#include "../sysfs.h"
23#include "../ring_generic.h"
23#include "../accel/accel.h" 24#include "../accel/accel.h"
24#include "../accel/inclinometer.h" 25#include "../accel/inclinometer.h"
25#include "../gyro/gyro.h" 26#include "../gyro/gyro.h"
@@ -644,7 +645,7 @@ static int __devinit adis16300_probe(struct spi_device *spi)
644 goto error_unreg_ring_funcs; 645 goto error_unreg_ring_funcs;
645 regdone = 1; 646 regdone = 1;
646 647
647 ret = adis16300_initialize_ring(st->indio_dev->ring); 648 ret = iio_ring_buffer_register(st->indio_dev->ring, 0);
648 if (ret) { 649 if (ret) {
649 printk(KERN_ERR "failed to initialize the ring\n"); 650 printk(KERN_ERR "failed to initialize the ring\n");
650 goto error_unreg_ring_funcs; 651 goto error_unreg_ring_funcs;
@@ -676,7 +677,7 @@ error_unregister_line:
676 if (spi->irq) 677 if (spi->irq)
677 iio_unregister_interrupt_line(st->indio_dev, 0); 678 iio_unregister_interrupt_line(st->indio_dev, 0);
678error_uninitialize_ring: 679error_uninitialize_ring:
679 adis16300_uninitialize_ring(st->indio_dev->ring); 680 iio_ring_buffer_unregister(st->indio_dev->ring);
680error_unreg_ring_funcs: 681error_unreg_ring_funcs:
681 adis16300_unconfigure_ring(st->indio_dev); 682 adis16300_unconfigure_ring(st->indio_dev);
682error_free_dev: 683error_free_dev:
@@ -710,7 +711,7 @@ static int adis16300_remove(struct spi_device *spi)
710 if (spi->irq) 711 if (spi->irq)
711 iio_unregister_interrupt_line(indio_dev, 0); 712 iio_unregister_interrupt_line(indio_dev, 0);
712 713
713 adis16300_uninitialize_ring(indio_dev->ring); 714 iio_ring_buffer_unregister(indio_dev->ring);
714 iio_device_unregister(indio_dev); 715 iio_device_unregister(indio_dev);
715 adis16300_unconfigure_ring(indio_dev); 716 adis16300_unconfigure_ring(indio_dev);
716 kfree(st->tx); 717 kfree(st->tx);
diff --git a/drivers/staging/iio/imu/adis16300_ring.c b/drivers/staging/iio/imu/adis16300_ring.c
index a76d43cd209..3bf9904f7d7 100644
--- a/drivers/staging/iio/imu/adis16300_ring.c
+++ b/drivers/staging/iio/imu/adis16300_ring.c
@@ -241,12 +241,3 @@ error_iio_sw_rb_free:
241 return ret; 241 return ret;
242} 242}
243 243
244int adis16300_initialize_ring(struct iio_ring_buffer *ring)
245{
246 return iio_ring_buffer_register(ring, 0);
247}
248
249void adis16300_uninitialize_ring(struct iio_ring_buffer *ring)
250{
251 iio_ring_buffer_unregister(ring);
252}
diff --git a/drivers/staging/iio/imu/adis16350.h b/drivers/staging/iio/imu/adis16350.h
index b4533a0e0ef..d94f6ab57fb 100644
--- a/drivers/staging/iio/imu/adis16350.h
+++ b/drivers/staging/iio/imu/adis16350.h
@@ -148,8 +148,6 @@ ssize_t adis16350_read_data_from_ring(struct device *dev,
148int adis16350_configure_ring(struct iio_dev *indio_dev); 148int adis16350_configure_ring(struct iio_dev *indio_dev);
149void adis16350_unconfigure_ring(struct iio_dev *indio_dev); 149void adis16350_unconfigure_ring(struct iio_dev *indio_dev);
150 150
151int adis16350_initialize_ring(struct iio_ring_buffer *ring);
152void adis16350_uninitialize_ring(struct iio_ring_buffer *ring);
153#else /* CONFIG_IIO_RING_BUFFER */ 151#else /* CONFIG_IIO_RING_BUFFER */
154 152
155static inline void adis16350_remove_trigger(struct iio_dev *indio_dev) 153static inline void adis16350_remove_trigger(struct iio_dev *indio_dev)
@@ -169,23 +167,5 @@ adis16350_read_data_from_ring(struct device *dev,
169 return 0; 167 return 0;
170} 168}
171 169
172static int adis16350_configure_ring(struct iio_dev *indio_dev)
173{
174 return 0;
175}
176
177static inline void adis16350_unconfigure_ring(struct iio_dev *indio_dev)
178{
179}
180
181static inline int adis16350_initialize_ring(struct iio_ring_buffer *ring)
182{
183 return 0;
184}
185
186static inline void adis16350_uninitialize_ring(struct iio_ring_buffer *ring)
187{
188}
189
190#endif /* CONFIG_IIO_RING_BUFFER */ 170#endif /* CONFIG_IIO_RING_BUFFER */
191#endif /* SPI_ADIS16350_H_ */ 171#endif /* SPI_ADIS16350_H_ */
diff --git a/drivers/staging/iio/imu/adis16350_core.c b/drivers/staging/iio/imu/adis16350_core.c
index 0bb19a9d12f..1575b7b5d44 100644
--- a/drivers/staging/iio/imu/adis16350_core.c
+++ b/drivers/staging/iio/imu/adis16350_core.c
@@ -20,6 +20,7 @@
20 20
21#include "../iio.h" 21#include "../iio.h"
22#include "../sysfs.h" 22#include "../sysfs.h"
23#include "../ring_generic.h"
23#include "../accel/accel.h" 24#include "../accel/accel.h"
24#include "../adc/adc.h" 25#include "../adc/adc.h"
25#include "../gyro/gyro.h" 26#include "../gyro/gyro.h"
@@ -619,7 +620,7 @@ static int __devinit adis16350_probe(struct spi_device *spi)
619 goto error_unreg_ring_funcs; 620 goto error_unreg_ring_funcs;
620 regdone = 1; 621 regdone = 1;
621 622
622 ret = adis16350_initialize_ring(st->indio_dev->ring); 623 ret = iio_ring_buffer_register(st->indio_dev->ring, 0);
623 if (ret) { 624 if (ret) {
624 printk(KERN_ERR "failed to initialize the ring\n"); 625 printk(KERN_ERR "failed to initialize the ring\n");
625 goto error_unreg_ring_funcs; 626 goto error_unreg_ring_funcs;
@@ -651,7 +652,7 @@ error_unregister_line:
651 if (spi->irq) 652 if (spi->irq)
652 iio_unregister_interrupt_line(st->indio_dev, 0); 653 iio_unregister_interrupt_line(st->indio_dev, 0);
653error_uninitialize_ring: 654error_uninitialize_ring:
654 adis16350_uninitialize_ring(st->indio_dev->ring); 655 iio_ring_buffer_unregister(st->indio_dev->ring);
655error_unreg_ring_funcs: 656error_unreg_ring_funcs:
656 adis16350_unconfigure_ring(st->indio_dev); 657 adis16350_unconfigure_ring(st->indio_dev);
657error_free_dev: 658error_free_dev:
@@ -685,7 +686,7 @@ static int adis16350_remove(struct spi_device *spi)
685 if (spi->irq) 686 if (spi->irq)
686 iio_unregister_interrupt_line(indio_dev, 0); 687 iio_unregister_interrupt_line(indio_dev, 0);
687 688
688 adis16350_uninitialize_ring(indio_dev->ring); 689 iio_ring_buffer_unregister(indio_dev->ring);
689 iio_device_unregister(indio_dev); 690 iio_device_unregister(indio_dev);
690 adis16350_unconfigure_ring(indio_dev); 691 adis16350_unconfigure_ring(indio_dev);
691 kfree(st->tx); 692 kfree(st->tx);
diff --git a/drivers/staging/iio/imu/adis16350_ring.c b/drivers/staging/iio/imu/adis16350_ring.c
index ca4f685d2f5..319aa34b19c 100644
--- a/drivers/staging/iio/imu/adis16350_ring.c
+++ b/drivers/staging/iio/imu/adis16350_ring.c
@@ -246,12 +246,3 @@ error_iio_sw_rb_free:
246 return ret; 246 return ret;
247} 247}
248 248
249int adis16350_initialize_ring(struct iio_ring_buffer *ring)
250{
251 return iio_ring_buffer_register(ring, 0);
252}
253
254void adis16350_uninitialize_ring(struct iio_ring_buffer *ring)
255{
256 iio_ring_buffer_unregister(ring);
257}
diff --git a/drivers/staging/iio/imu/adis16400.h b/drivers/staging/iio/imu/adis16400.h
index f74faee1d29..0685195b351 100644
--- a/drivers/staging/iio/imu/adis16400.h
+++ b/drivers/staging/iio/imu/adis16400.h
@@ -178,8 +178,6 @@ ssize_t adis16400_read_data_from_ring(struct device *dev,
178int adis16400_configure_ring(struct iio_dev *indio_dev); 178int adis16400_configure_ring(struct iio_dev *indio_dev);
179void adis16400_unconfigure_ring(struct iio_dev *indio_dev); 179void adis16400_unconfigure_ring(struct iio_dev *indio_dev);
180 180
181int adis16400_initialize_ring(struct iio_ring_buffer *ring);
182void adis16400_uninitialize_ring(struct iio_ring_buffer *ring);
183#else /* CONFIG_IIO_RING_BUFFER */ 181#else /* CONFIG_IIO_RING_BUFFER */
184 182
185static inline void adis16400_remove_trigger(struct iio_dev *indio_dev) 183static inline void adis16400_remove_trigger(struct iio_dev *indio_dev)
@@ -208,14 +206,5 @@ static inline void adis16400_unconfigure_ring(struct iio_dev *indio_dev)
208{ 206{
209} 207}
210 208
211static inline int adis16400_initialize_ring(struct iio_ring_buffer *ring)
212{
213 return 0;
214}
215
216static inline void adis16400_uninitialize_ring(struct iio_ring_buffer *ring)
217{
218}
219
220#endif /* CONFIG_IIO_RING_BUFFER */ 209#endif /* CONFIG_IIO_RING_BUFFER */
221#endif /* SPI_ADIS16400_H_ */ 210#endif /* SPI_ADIS16400_H_ */
diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c
index 160585fab31..6013fee218e 100644
--- a/drivers/staging/iio/imu/adis16400_core.c
+++ b/drivers/staging/iio/imu/adis16400_core.c
@@ -27,6 +27,7 @@
27 27
28#include "../iio.h" 28#include "../iio.h"
29#include "../sysfs.h" 29#include "../sysfs.h"
30#include "../ring_generic.h"
30#include "../accel/accel.h" 31#include "../accel/accel.h"
31#include "../adc/adc.h" 32#include "../adc/adc.h"
32#include "../gyro/gyro.h" 33#include "../gyro/gyro.h"
@@ -641,7 +642,7 @@ static int __devinit adis16400_probe(struct spi_device *spi)
641 goto error_unreg_ring_funcs; 642 goto error_unreg_ring_funcs;
642 regdone = 1; 643 regdone = 1;
643 644
644 ret = adis16400_initialize_ring(st->indio_dev->ring); 645 ret = iio_ring_buffer_register(st->indio_dev->ring, 0);
645 if (ret) { 646 if (ret) {
646 printk(KERN_ERR "failed to initialize the ring\n"); 647 printk(KERN_ERR "failed to initialize the ring\n");
647 goto error_unreg_ring_funcs; 648 goto error_unreg_ring_funcs;
@@ -674,7 +675,7 @@ error_unregister_line:
674 if (st->indio_dev->modes & INDIO_RING_TRIGGERED) 675 if (st->indio_dev->modes & INDIO_RING_TRIGGERED)
675 iio_unregister_interrupt_line(st->indio_dev, 0); 676 iio_unregister_interrupt_line(st->indio_dev, 0);
676error_uninitialize_ring: 677error_uninitialize_ring:
677 adis16400_uninitialize_ring(st->indio_dev->ring); 678 iio_ring_buffer_unregister(st->indio_dev->ring);
678error_unreg_ring_funcs: 679error_unreg_ring_funcs:
679 adis16400_unconfigure_ring(st->indio_dev); 680 adis16400_unconfigure_ring(st->indio_dev);
680error_free_dev: 681error_free_dev:
@@ -709,7 +710,7 @@ static int adis16400_remove(struct spi_device *spi)
709 if (spi->irq && gpio_is_valid(irq_to_gpio(spi->irq)) > 0) 710 if (spi->irq && gpio_is_valid(irq_to_gpio(spi->irq)) > 0)
710 iio_unregister_interrupt_line(indio_dev, 0); 711 iio_unregister_interrupt_line(indio_dev, 0);
711 712
712 adis16400_uninitialize_ring(indio_dev->ring); 713 iio_ring_buffer_unregister(st->indio_dev->ring);
713 adis16400_unconfigure_ring(indio_dev); 714 adis16400_unconfigure_ring(indio_dev);
714 iio_device_unregister(indio_dev); 715 iio_device_unregister(indio_dev);
715 kfree(st->tx); 716 kfree(st->tx);
diff --git a/drivers/staging/iio/imu/adis16400_ring.c b/drivers/staging/iio/imu/adis16400_ring.c
index 59d62a78096..c7744efefd7 100644
--- a/drivers/staging/iio/imu/adis16400_ring.c
+++ b/drivers/staging/iio/imu/adis16400_ring.c
@@ -252,13 +252,3 @@ error_iio_sw_rb_free:
252 iio_sw_rb_free(indio_dev->ring); 252 iio_sw_rb_free(indio_dev->ring);
253 return ret; 253 return ret;
254} 254}
255
256int adis16400_initialize_ring(struct iio_ring_buffer *ring)
257{
258 return iio_ring_buffer_register(ring, 0);
259}
260
261void adis16400_uninitialize_ring(struct iio_ring_buffer *ring)
262{
263 iio_ring_buffer_unregister(ring);
264}
diff --git a/drivers/staging/iio/ring_generic.h b/drivers/staging/iio/ring_generic.h
index 0e443757b02..dbf11e18062 100644
--- a/drivers/staging/iio/ring_generic.h
+++ b/drivers/staging/iio/ring_generic.h
@@ -11,6 +11,8 @@
11#define _IIO_RING_GENERIC_H_ 11#define _IIO_RING_GENERIC_H_
12#include "iio.h" 12#include "iio.h"
13 13
14#ifdef CONFIG_IIO_RING_BUFFER
15
14struct iio_handler; 16struct iio_handler;
15struct iio_ring_buffer; 17struct iio_ring_buffer;
16struct iio_dev; 18struct iio_dev;
@@ -287,5 +289,14 @@ ssize_t iio_show_ring_enable(struct device *dev,
287#define IIO_RING_ENABLE_ATTR DEVICE_ATTR(ring_enable, S_IRUGO | S_IWUSR, \ 289#define IIO_RING_ENABLE_ATTR DEVICE_ATTR(ring_enable, S_IRUGO | S_IWUSR, \
288 iio_show_ring_enable, \ 290 iio_show_ring_enable, \
289 iio_store_ring_enable) 291 iio_store_ring_enable)
292#else /* CONFIG_IIO_RING_BUFFER */
293static inline int iio_ring_buffer_register(struct iio_ring_buffer *ring, int id)
294{
295 return 0;
296};
297static inline void iio_ring_buffer_unregister(struct iio_ring_buffer *ring)
298{};
299
300#endif /* CONFIG_IIO_RING_BUFFER */
290 301
291#endif /* _IIO_RING_GENERIC_H_ */ 302#endif /* _IIO_RING_GENERIC_H_ */