tristate "Analog Devices ADE7758 Poly Phase Multifunction Energy Metering IC Driver"
        depends on SPI
        select IIO_TRIGGER if IIO_BUFFER
-       select IIO_SW_RING if IIO_BUFFER
+       select IIO_KFIFO_BUF if IIO_BUFFER
        help
          Say yes here to build support for Analog Devices ADE7758 Polyphase
          Multifunction Energy Metering IC with Per Phase Information Driver.
 
 #include <asm/unaligned.h>
 
 #include <linux/iio/iio.h>
-#include "../ring_sw.h"
+#include <linux/iio/kfifo_buf.h>
 #include <linux/iio/trigger_consumer.h>
 #include "ade7758.h"
 
 void ade7758_unconfigure_ring(struct iio_dev *indio_dev)
 {
        iio_dealloc_pollfunc(indio_dev->pollfunc);
-       iio_sw_rb_free(indio_dev->buffer);
+       iio_kfifo_free(indio_dev->buffer);
 }
 
 int ade7758_configure_ring(struct iio_dev *indio_dev)
        struct ade7758_state *st = iio_priv(indio_dev);
        int ret = 0;
 
-       indio_dev->buffer = iio_sw_rb_allocate(indio_dev);
+       indio_dev->buffer = iio_kfifo_allocate(indio_dev);
        if (!indio_dev->buffer) {
                ret = -ENOMEM;
                return ret;
                                                 indio_dev->id);
        if (indio_dev->pollfunc == NULL) {
                ret = -ENOMEM;
-               goto error_iio_sw_rb_free;
+               goto error_iio_kfifo_free;
        }
 
        indio_dev->modes |= INDIO_BUFFER_TRIGGERED;
 
        return 0;
 
-error_iio_sw_rb_free:
-       iio_sw_rb_free(indio_dev->buffer);
+error_iio_kfifo_free:
+       iio_kfifo_free(indio_dev->buffer);
        return ret;
 }