staging:iio:meter:ade7758 switch from sw_ring to kfifo
authorJonathan Cameron <jic23@kernel.org>
Fri, 30 Nov 2012 14:22:00 +0000 (14:22 +0000)
committerJonathan Cameron <jic23@kernel.org>
Sat, 26 Jan 2013 10:07:52 +0000 (10:07 +0000)
sw ring is going away so switch over to kfifo based buffer implementation.
The only real change is that poll will return on some data there rather than
buffer 50% full.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/staging/iio/meter/Kconfig
drivers/staging/iio/meter/ade7758_ring.c

index d290d27384196cf39445d8e929609b9faa38a187..e53274b64ae1bb7afaa9988468bd67410bbdaacc 100644 (file)
@@ -21,7 +21,7 @@ config ADE7758
        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.
index 4552a4c7fe33b0d65d14d073abe5601781e9ff41..b29e2d5d993773c0e5ff4e22e97e8f48f349925f 100644 (file)
@@ -13,7 +13,7 @@
 #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"
 
@@ -119,7 +119,7 @@ static const struct iio_buffer_setup_ops ade7758_ring_setup_ops = {
 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)
@@ -127,7 +127,7 @@ 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;
@@ -143,7 +143,7 @@ int ade7758_configure_ring(struct iio_dev *indio_dev)
                                                 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;
@@ -183,8 +183,8 @@ int ade7758_configure_ring(struct iio_dev *indio_dev)
 
        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;
 }