staging:iio: drop sw_ring buffer implementation.
Subsystems (4)
Jonathan Cameron
maintainercover staging:iio: drop sw_ring buffer implementation.
sw_ring was the original buffer implementation for IIO. It kind of evolved over a couple of late nights and even though I wrote it I was never convinced it was right. Then a nice kfifo implementation came along and in the vast majority of IIO use cases whether we have a kfifo or a ring buffer is not as it turns out that important.
We have been telling people not to use this for quite some time now. Lets make that finally a really hard rule by dropping it. There are 4 remaining users. This patch drops support form lis3l02dq which had support for both this and kfifo. For the other 3 users it simply switches over to kfifo. We haven't seen any real problems doing this with any other driver so I can't see why these would cause trouble!
Note my aim for this cycle ist to greatly cut down what we have left in staging by removing legacy cruft and getting other stuff cleaned up and out!
Jonathan
Jonathan Cameron (5):
staging:iio:accel:lis3l02dq remove sw_ring support. staging:iio:impedance-analyzer switch from sw_ring to kfifo. staging:iio:meter:ade7758 switch from sw_ring to kfifo staging:iio:imu: adis16400 switch from sw_ring to kfifo staging:iio: drop sw_ring buffer implementation.
drivers/staging/iio/Kconfig | 13 - drivers/staging/iio/Makefile | 2 - drivers/staging/iio/accel/Kconfig | 23 +- drivers/staging/iio/accel/lis3l02dq.h | 8 - drivers/staging/iio/accel/lis3l02dq_ring.c | 7 +- drivers/staging/iio/impedance-analyzer/Kconfig | 2 +- drivers/staging/iio/impedance-analyzer/ad5933.c | 8 +- drivers/staging/iio/imu/Kconfig | 2 +- drivers/staging/iio/imu/adis16400_ring.c | 12 +- drivers/staging/iio/meter/Kconfig | 2 +- drivers/staging/iio/meter/ade7758_ring.c | 12 +- drivers/staging/iio/ring_sw.c | 366 ------------------------ drivers/staging/iio/ring_sw.h | 30 -- 13 files changed, 23 insertions(+), 464 deletions(-) delete mode 100644 drivers/staging/iio/ring_sw.c delete mode 100644 drivers/staging/iio/ring_sw.h
Signature · 1 line
1.8.0.1
Jonathan Cameron
maintainerPATCH 1/5 staging:iio:accel:lis3l02dq remove sw_ring support.
The sw_ring buffer is being removed in favour of the kfifo version. This is one of only a couple of driver still supporting its use.
This driver will hopefully also be removed in favour of supporting the part in the unified ST accelerometer driver.
--- drivers/staging/iio/accel/Kconfig | 23 +---------------------- drivers/staging/iio/accel/lis3l02dq.h | 8 -------- drivers/staging/iio/accel/lis3l02dq_ring.c | 7 +++---- 3 files changed, 4 insertions(+), 34 deletions(-)
drivers/staging/iio/accel/Kconfig +1 -22
@@ -67,34 +67,13 @@ config LIS3L02DQ tristate "ST Microelectronics LIS3L02DQ Accelerometer Driver" depends on SPI select IIO_TRIGGER if IIO_BUFFER - depends on !IIO_BUFFER || IIO_KFIFO_BUF || IIO_SW_RING + depends on !IIO_BUFFER || IIO_KFIFO_BUF depends on GENERIC_GPIO help Say yes here to build SPI support for the ST microelectronics accelerometer. The driver supplies direct access via sysfs files and an event interface via a character device. -choice - prompt "Buffer type" - depends on LIS3L02DQ && IIO_BUFFER - -config LIS3L02DQ_BUF_KFIFO - depends on IIO_KFIFO_BUF - bool "Simple FIFO" - help - Kfifo based FIFO. Does not provide any events so it is up - to userspace to ensure it reads often enough that data is not - lost. - -config LIS3L02DQ_BUF_RING_SW - depends on IIO_SW_RING - bool "IIO Software Ring" - help - Original IIO ring buffer implementation. Provides simple - buffer events, half full etc. - -endchoice - config SCA3000 depends on IIO_BUFFER depends on SPI
drivers/staging/iio/accel/lis3l02dq.h +0 -8
@@ -185,14 +185,6 @@ int lis3l02dq_probe_trigger(struct iio_dev *indio_dev);int lis3l02dq_configure_buffer (struct iio_dev *indio_dev);void lis3l02dq_unconfigure_buffer (struct iio_dev *indio_dev); -#ifdef CONFIG_LIS3L02DQ_BUF_RING_SW -#define lis3l02dq_free_buf iio_sw_rb_free -#define lis3l02dq_alloc_buf iio_sw_rb_allocate -#endif -#ifdef CONFIG_LIS3L02DQ_BUF_KFIFO -#define lis3l02dq_free_buf iio_kfifo_free -#define lis3l02dq_alloc_buf iio_kfifo_allocate -#endif irqreturn_t lis3l02dq_data_rdy_trig_poll (int irq,void *private);#define lis3l02dq_th lis3l02dq_data_rdy_trig_poll
drivers/staging/iio/accel/lis3l02dq_ring.c +3 -4
@@ -7,7 +7,6 @@#include <linux/export.h> #include <linux/iio/iio.h> -#include "../ring_sw.h" #include <linux/iio/kfifo_buf.h> #include <linux/iio/trigger.h> #include <linux/iio/trigger_consumer.h>
@@ -318,7 +317,7 @@ void lis3l02dq_remove_trigger(struct iio_dev *indio_dev)void lis3l02dq_unconfigure_buffer (struct iio_dev *indio_dev) {iio_dealloc_pollfunc (indio_dev->pollfunc); -lis3l02dq_free_buf (indio_dev->buffer); +iio_kfifo_free (indio_dev->buffer); }static int lis3l02dq_buffer_postenable (struct iio_dev *indio_dev)
@@ -401,7 +400,7 @@ int lis3l02dq_configure_buffer(struct iio_dev *indio_dev)int ret;struct iio_buffer *buffer; - buffer =lis3l02dq_alloc_buf (indio_dev); + buffer =iio_kfifo_allocate (indio_dev);if (!buffer)return -ENOMEM ;
@@ -427,6 +426,6 @@ int lis3l02dq_configure_buffer(struct iio_dev *indio_dev)return 0 ; error_iio_sw_rb_free: -lis3l02dq_free_buf (indio_dev->buffer); +iio_kfifo_free (indio_dev->buffer);return ret; }
Signature · 1 line
1.8.0.1
Jonathan Cameron
maintainerPATCH 2/5 staging:iio:impedance-analyzer switch from sw_ring to kfifo.
In reply to Jonathan Cameronsw_ring buffer implementation is going away so switch to the kfifo based alternative.
--- drivers/staging/iio/impedance-analyzer/Kconfig | 2 +- drivers/staging/iio/impedance-analyzer/ad5933.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-)
drivers/staging/iio/impedance-analyzer/Kconfig +1 -1
@@ -7,7 +7,7 @@ config AD5933 tristate "Analog Devices AD5933, AD5934 driver" depends on I2C select IIO_BUFFER - select IIO_SW_RING + select IIO_KFIFO_BUF help Say yes here to build support for Analog Devices Impedance Converter, Network Analyzer, AD5933/4, provides direct access via sysfs.
drivers/staging/iio/impedance-analyzer/ad5933.c +4 -4
@@ -22,7 +22,7 @@#include <linux/iio/iio.h> #include <linux/iio/sysfs.h> #include <linux/iio/buffer.h> -#include "../ring_sw.h" +#include <linux/iio/kfifo_buf.h> #include "ad5933.h"
@@ -630,7 +630,7 @@ static const struct iio_buffer_setup_ops ad5933_ring_setup_ops = {static int ad5933_register_ring_funcs_and_init (struct iio_dev *indio_dev) { - indio_dev->buffer =iio_sw_rb_allocate (indio_dev); + indio_dev->buffer =iio_kfifo_allocate (indio_dev);if (!indio_dev->buffer)return -ENOMEM ;
@@ -774,7 +774,7 @@ static int ad5933_probe(struct i2c_client *client, error_uninitialize_ring:iio_buffer_unregister (indio_dev); error_unreg_ring: -iio_sw_rb_free (indio_dev->buffer); +iio_kfifo_free (indio_dev->buffer); error_disable_reg:if (!IS_ERR (st->reg))regulator_disable (st->reg);
@@ -794,7 +794,7 @@ static int ad5933_remove(struct i2c_client *client)iio_device_unregister (indio_dev);iio_buffer_unregister (indio_dev); -iio_sw_rb_free (indio_dev->buffer); +iio_kfifo_free (indio_dev->buffer);if (!IS_ERR (st->reg)) {regulator_disable (st->reg);regulator_put (st->reg);
Signature · 1 line
1.8.0.1
Jonathan Cameron
maintainerPATCH 3/5 staging:iio:meter:ade7758 switch from sw_ring to kfifo
In reply to Jonathan Cameronsw 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.
--- drivers/staging/iio/meter/Kconfig | 2 +- drivers/staging/iio/meter/ade7758_ring.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-)
drivers/staging/iio/meter/Kconfig +1 -1
@@ -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.
drivers/staging/iio/meter/ade7758_ring.c +6 -6
@@ -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; }
Signature · 1 line
1.8.0.1
Jonathan Cameron
maintainerPATCH 4/5 staging:iio:imu: adis16400 switch from sw_ring to kfifo
In reply to Jonathan Cameronsw 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.
--- drivers/staging/iio/imu/Kconfig | 2 +- drivers/staging/iio/imu/adis16400_ring.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-)
drivers/staging/iio/imu/Kconfig +1 -1
@@ -6,7 +6,7 @@ menu "Inertial measurement units" config ADIS16400 tristate "Analog Devices ADIS16400 and similar IMU SPI driver" depends on SPI - select IIO_SW_RING if IIO_BUFFER + select IIO_KFIFO_BUF if IIO_BUFFER select IIO_TRIGGER if IIO_BUFFER help Say yes here to build support for Analog Devices adis16300, adis16344,
drivers/staging/iio/imu/adis16400_ring.c +6 -6
@@ -7,7 +7,7 @@#include <linux/export.h> #include <linux/iio/iio.h> -#include "../ring_sw.h" +#include <linux/iio/kfifo_buf.h> #include <linux/iio/trigger_consumer.h> #include "adis16400.h"
@@ -161,7 +161,7 @@ done:void adis16400_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); }static const struct iio_buffer_setup_ops adis16400_ring_setup_ops = {
@@ -175,7 +175,7 @@ int adis16400_configure_ring(struct iio_dev *indio_dev)int ret =0 ;struct iio_buffer *ring; - ring =iio_sw_rb_allocate (indio_dev); + ring =iio_kfifo_allocate (indio_dev);if (!ring) { ret = -ENOMEM ;return ret;
@@ -193,12 +193,12 @@ int adis16400_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 ;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; }
Signature · 1 line
1.8.0.1
Re: [PATCH 4/5] staging:iio:imu: adis16400 switch from sw_ring to kfifo
Quoted 5 lines · Jonathan Cameron
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 <[email protected]>
Is is ok for you to drop this one and wait with the last patch in the series still a bit? I've patches to switch this driver over to the adislib and this patch would probably introduce a couple of conflicts.
The rest of the series looks good.
Thanks,
- Lars
Quoted 65 lines
--- drivers/staging/iio/imu/Kconfig | 2 +- drivers/staging/iio/imu/adis16400_ring.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-)drivers/staging/iio/imu/Kconfig +1
-1@@ -6,7 +6,7 @@ menu "Inertial measurement units" config ADIS16400 tristate "Analog Devices ADIS16400 and similar IMU SPI driver" depends on SPI - select IIO_SW_RING if IIO_BUFFER + select IIO_KFIFO_BUF if IIO_BUFFER select IIO_TRIGGER if IIO_BUFFER help Say yes here to build support for Analog Devices adis16300, adis16344,drivers/staging/iio/imu/adis16400_ring.c +6
-6@@ -7,7 +7,7 @@#include <linux/export.h> #include <linux/iio/iio.h> -#include "../ring_sw.h" +#include <linux/iio/kfifo_buf.h> #include <linux/iio/trigger_consumer.h> #include "adis16400.h" @@ -161,7 +161,7 @@ done:void adis16400_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); }static const struct iio_buffer_setup_ops adis16400_ring_setup_ops = {@@ -175,7 +175,7 @@ int adis16400_configure_ring(struct iio_dev *indio_dev)int ret =0 ;struct iio_buffer *ring; - ring =iio_sw_rb_allocate (indio_dev); + ring =iio_kfifo_allocate (indio_dev);if (!ring) { ret = -ENOMEM ;return ret;@@ -193,12 +193,12 @@ int adis16400_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 ;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; }
Jonathan Cameron
maintainerRe: [PATCH 4/5] staging:iio:imu: adis16400 switch from sw_ring to kfifo
Quoted 5 lines · Lars-Peter Clausen
Quoted 4 lines · Jonathan Cameron
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.
Quoted 7 lines
Quoted 1 line
Signed-off-by Jonathan Cameron <[email protected]>Is is ok for you to drop this one and wait with the last patch in the series still a bit? I've patches to switch this driver over to the adislib and this patch would probably introduce a couple of conflicts.
The rest of the series looks good.
*laughs* I guessed as much, but decided it was quicker to write the patch and have you request I hold it than to send you an email to ask if you had such a patch and then wait for the response.
Should have known you'd get back almost instantly.
These are very much for the next cycle, so I am happy to do as you requested!
Quoted 75 lines
Thanks,
- LarsQuoted 55 lines
--- drivers/staging/iio/imu/Kconfig | 2 +- drivers/staging/iio/imu/adis16400_ring.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-)drivers/staging/iio/imu/Kconfig +1
-1@@ -6,7 +6,7 @@ menu "Inertial measurement units" config ADIS16400 tristate "Analog Devices ADIS16400 and similar IMU SPI driver" depends on SPI - select IIO_SW_RING if IIO_BUFFER + select IIO_KFIFO_BUF if IIO_BUFFER select IIO_TRIGGER if IIO_BUFFER help Say yes here to build support for Analog Devices adis16300, adis16344,drivers/staging/iio/imu/adis16400_ring.c +4
-4@@ -7,7 +7,7 @@#include <linux/export.h> #include <linux/iio/iio.h> -#include "../ring_sw.h" +#include <linux/iio/kfifo_buf.h> #include <linux/iio/trigger_consumer.h> #include "adis16400.h" @@ -161,7 +161,7 @@ done:void adis16400_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); }static const struct iio_buffer_setup_ops adis16400_ring_setup_ops = {@@ -175,7 +175,7 @@ int adis16400_configure_ring(struct iio_dev *indio_dev)int ret =0 ;struct iio_buffer *ring; - ring =iio_sw_rb_allocate (indio_dev); + ring =iio_kfifo_allocate (indio_dev);if (!ring) { ret = -ENOMEM ;return ret;@@ -193,12 +193,12 @@ int adis16400_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;drivers/staging/iio/imu/adis16400_ring.c int adis16400_configure_ring(struct iio_dev *indio_dev) · line 204
Quoted 10 lines
drivers/staging/iio/imu/adis16400_ring.c +2
-2} 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; }--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Jonathan Cameron
maintainerPATCH 5/5 staging:iio: drop sw_ring buffer implementation.
In reply to Jonathan CameronWhilst this is IIO's oldest buffer implementation it is messy, poorly implemented and whilst it works, no one is entirely sure it always will.
New IIO drivers have not been using this for some time and now all remaining old users have been converted to use the kfifo based alternative.
Clearly a fifo isn't the same as a ring buffer but in many use cases it really doesn't matter. We also loose the watershed based poll implementation. However having poll effectively report data only when the buffer was half full was at best an 'unusual' use of the interface.
At somepoint in the future we may bring watersheds back on a different buffer implementation, but then we will think a lot more about how to do the interface first.
--- drivers/staging/iio/Kconfig | 13 -- drivers/staging/iio/Makefile | 2 - drivers/staging/iio/ring_sw.c | 366 ------------------------------------------ drivers/staging/iio/ring_sw.h | 30 ---- 4 files changed, 411 deletions(-)
drivers/staging/iio/Kconfig +0 -13
@@ -12,19 +12,6 @@ config IIO_ST_HWMON map allows IIO devices to provide basic hwmon functionality for those channels specified in the map. -if IIO_BUFFER - -config IIO_SW_RING - select IIO_TRIGGER - tristate "Industrial I/O lock free software ring" - help - Example software ring buffer implementation. The design aim - of this particular realization was to minimize write locking - with the intention that some devices would be able to write - in interrupt context. - -endif # IIO_BUFFER - source "drivers/staging/iio/accel/Kconfig" source "drivers/staging/iio/adc/Kconfig" source "drivers/staging/iio/addac/Kconfig"
drivers/staging/iio/Makefile +0 -2
@@ -2,8 +2,6 @@ # Makefile for the industrial I/O core. # -obj-$(CONFIG_IIO_SW_RING) += ring_sw.o - obj-$(CONFIG_IIO_SIMPLE_DUMMY) += iio_dummy.o iio_dummy-y := iio_simple_dummy.o iio_dummy-$(CONFIG_IIO_SIMPLE_DUMMY_EVENTS) += iio_simple_dummy_events.o
drivers/staging/iio/ring_sw.c deleted +0 -366
366 lines not on this page · raw message
drivers/staging/iio/ring_sw.h deleted +0 -30
@@ -1,30 +0,0 @@ -/* The industrial I/O simple minimally locked ring buffer. -* -* Copyright (c) 2008 Jonathan Cameron -* -* This program is free software; you can redistribute it and/or modify it -* under the terms of the GNU General Public License version 2 as published by -* the Free Software Foundation. -* -* This code is deliberately kept separate from the main industrialio I/O core -* as it is intended that in the future a number of different software ring -* buffer implementations will exist with different characteristics to suit -* different applications. -* -* This particular one was designed for a data capture application where it was -* particularly important that no userspace reads would interrupt the capture -* process. To this end the ring is not locked during a read. -* -* Comments on this buffer design welcomed. It's far from efficient and some of -* my understanding of the effects of scheduling on this are somewhat limited. -* Frankly, to my mind, this is the current weak point in the industrial I/O -* patch set. -*/ - -#ifndef _IIO_RING_SW_H_ -#define _IIO_RING_SW_H_ -#include <linux/iio/buffer.h> - -struct iio_buffer *iio_sw_rb_allocate (struct iio_dev *indio_dev); -void iio_sw_rb_free (struct iio_buffer *ring); -#endif /* _IIO_RING_SW_H_ */
Signature · 1 line
1.8.0.1
Jonathan Cameron
maintainerAdded all but patch 4 to the togreg branch of
iio.git given the only reason this was held was the just merged series cleaning up the adis16400 driver (which included as a side effect removing the code patch 4 dealt with).
Quoted 44 lines · Jonathan Cameron
sw_ringwas the original buffer implementation for IIO. It kind of evolved over a couple of late nights and even though I wrote it I was never convinced it was right. Then a nice kfifo implementation came along and in the vast majority of IIO use cases whether we have a kfifo or a ring buffer is not as it turns out that important.We have been telling people not to use this for quite some time now. Lets make that finally a really hard rule by dropping it. There are 4 remaining users. This patch drops support form lis3l02dq which had support for both this and kfifo. For the other 3 users it simply switches over to kfifo. We haven't seen any real problems doing this with any other driver so I can't see why these would cause trouble!
Note my aim for this cycle ist to greatly cut down what we have left in staging by removing legacy cruft and getting other stuff cleaned up and out!
Jonathan
Jonathan Cameron (5):
staging:iio:accel:lis3l02dq removesw_ringsupport. staging:iio:impedance-analyzer switch fromsw_ringto kfifo. staging:iio:meter:ade7758 switch fromsw_ringto kfifo staging:iio:imu: adis16400 switch fromsw_ringto kfifo staging:iio: dropsw_ringbuffer implementation.drivers/staging/iio/Kconfig | 13 - drivers/staging/iio/Makefile | 2 - drivers/staging/iio/accel/Kconfig | 23 +- drivers/staging/iio/accel/lis3l02dq.h | 8 - drivers/staging/iio/accel/lis3l02dq_ring.c | 7 +- drivers/staging/iio/impedance-analyzer/Kconfig | 2 +- drivers/staging/iio/impedance-analyzer/ad5933.c | 8 +- drivers/staging/iio/imu/Kconfig | 2 +- drivers/staging/iio/imu/adis16400_ring.c | 12 +- drivers/staging/iio/meter/Kconfig | 2 +- drivers/staging/iio/meter/ade7758_ring.c | 12 +- drivers/staging/iio/ring_sw.c | 366 ------------------------ drivers/staging/iio/ring_sw.h | 30 -- 13 files changed, 23 insertions(+), 464 deletions(-) delete mode 100644 drivers/staging/iio/ring_sw.c delete mode 100644 drivers/staging/iio/ring_sw.h