* [PATCH 0/3] staging:iio: more buffer related cleanups.
@ 2011-11-27 14:46 Jonathan Cameron
2011-11-27 14:46 ` [PATCH 1/3] staging:iio:buffer scrap to_iio_buffer as it no longer has meaning Jonathan Cameron
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Jonathan Cameron @ 2011-11-27 14:46 UTC (permalink / raw)
To: linux-iio; +Cc: lars, Michael.Hennerich, manuel.stahl, Jonathan Cameron
These were after the inkern pull interface stuff in my tree, but
with a closer look they clearly aren't dependent on it so I'll tack
them on to the end of the previous series if everyone is happy.
Jonathan
Jonathan Cameron (3):
staging:iio:buffer scrap to_iio_buffer as it no longer has meaning.
staging:iio:buffer struct iio_buffer doesn't need an indio_dev
pointer.
staging:iio:buffer.h update struct buffer docs.
drivers/staging/iio/accel/sca3000_core.c | 6 +++---
drivers/staging/iio/accel/sca3000_ring.c | 11 ++++-------
drivers/staging/iio/buffer.h | 21 +++++++++++----------
drivers/staging/iio/gyro/adis16260_core.c | 15 ++++++++++-----
drivers/staging/iio/impedance-analyzer/ad5933.c | 4 ++--
drivers/staging/iio/industrialio-buffer.c | 15 +++++++--------
drivers/staging/iio/kfifo_buf.c | 2 +-
drivers/staging/iio/ring_sw.c | 2 +-
8 files changed, 39 insertions(+), 37 deletions(-)
--
1.7.7.3
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/3] staging:iio:buffer scrap to_iio_buffer as it no longer has meaning.
2011-11-27 14:46 [PATCH 0/3] staging:iio: more buffer related cleanups Jonathan Cameron
@ 2011-11-27 14:46 ` Jonathan Cameron
2011-11-27 14:46 ` [PATCH 2/3] staging:iio:buffer struct iio_buffer doesn't need an indio_dev pointer Jonathan Cameron
2011-11-27 14:46 ` [PATCH 3/3] staging:iio:buffer.h update struct buffer docs Jonathan Cameron
2 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2011-11-27 14:46 UTC (permalink / raw)
To: linux-iio
Cc: lars, Michael.Hennerich, manuel.stahl, Jonathan Cameron,
Jonathan Cameron
Now buffers do not have a specific dev structure, this is garbage.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
drivers/staging/iio/buffer.h | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/iio/buffer.h b/drivers/staging/iio/buffer.h
index 7272333..501d4ee 100644
--- a/drivers/staging/iio/buffer.h
+++ b/drivers/staging/iio/buffer.h
@@ -129,9 +129,6 @@ int iio_scan_mask_query(struct iio_buffer *buffer, int bit);
**/
int iio_scan_mask_set(struct iio_buffer *buffer, int bit);
-#define to_iio_buffer(d) \
- container_of(d, struct iio_buffer, dev)
-
/**
* iio_push_to_buffer() - push to a registered buffer.
* @buffer: IIO buffer structure for device
--
1.7.7.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] staging:iio:buffer struct iio_buffer doesn't need an indio_dev pointer.
2011-11-27 14:46 [PATCH 0/3] staging:iio: more buffer related cleanups Jonathan Cameron
2011-11-27 14:46 ` [PATCH 1/3] staging:iio:buffer scrap to_iio_buffer as it no longer has meaning Jonathan Cameron
@ 2011-11-27 14:46 ` Jonathan Cameron
2011-11-27 14:46 ` [PATCH 3/3] staging:iio:buffer.h update struct buffer docs Jonathan Cameron
2 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2011-11-27 14:46 UTC (permalink / raw)
To: linux-iio; +Cc: lars, Michael.Hennerich, manuel.stahl, Jonathan Cameron
In all existing cases, the calls are coming from a location where
the indio_dev is already available.
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
---
drivers/staging/iio/accel/sca3000_core.c | 6 +++---
drivers/staging/iio/accel/sca3000_ring.c | 11 ++++-------
drivers/staging/iio/buffer.h | 12 +++++-------
drivers/staging/iio/gyro/adis16260_core.c | 15 ++++++++++-----
drivers/staging/iio/impedance-analyzer/ad5933.c | 4 ++--
drivers/staging/iio/industrialio-buffer.c | 15 +++++++--------
drivers/staging/iio/kfifo_buf.c | 2 +-
drivers/staging/iio/ring_sw.c | 2 +-
8 files changed, 33 insertions(+), 34 deletions(-)
diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c
index 94bfe05..6c0d864 100644
--- a/drivers/staging/iio/accel/sca3000_core.c
+++ b/drivers/staging/iio/accel/sca3000_core.c
@@ -1162,9 +1162,9 @@ static int __devinit sca3000_probe(struct spi_device *spi)
if (ret < 0)
goto error_unregister_dev;
if (indio_dev->buffer) {
- iio_scan_mask_set(indio_dev->buffer, 0);
- iio_scan_mask_set(indio_dev->buffer, 1);
- iio_scan_mask_set(indio_dev->buffer, 2);
+ iio_scan_mask_set(indio_dev, indio_dev->buffer, 0);
+ iio_scan_mask_set(indio_dev, indio_dev->buffer, 1);
+ iio_scan_mask_set(indio_dev, indio_dev->buffer, 2);
}
if (spi->irq) {
diff --git a/drivers/staging/iio/accel/sca3000_ring.c b/drivers/staging/iio/accel/sca3000_ring.c
index 6a27a95..6b824a1 100644
--- a/drivers/staging/iio/accel/sca3000_ring.c
+++ b/drivers/staging/iio/accel/sca3000_ring.c
@@ -157,8 +157,7 @@ static ssize_t sca3000_query_ring_int(struct device *dev,
{
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
int ret, val;
- struct iio_buffer *ring = dev_get_drvdata(dev);
- struct iio_dev *indio_dev = ring->indio_dev;
+ struct iio_dev *indio_dev = dev_get_drvdata(dev);
struct sca3000_state *st = iio_priv(indio_dev);
mutex_lock(&st->lock);
@@ -179,8 +178,7 @@ static ssize_t sca3000_set_ring_int(struct device *dev,
const char *buf,
size_t len)
{
- struct iio_buffer *ring = dev_get_drvdata(dev);
- struct iio_dev *indio_dev = ring->indio_dev;
+ struct iio_dev *indio_dev = dev_get_drvdata(dev);
struct sca3000_state *st = iio_priv(indio_dev);
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
long val;
@@ -221,8 +219,7 @@ static ssize_t sca3000_show_buffer_scale(struct device *dev,
struct device_attribute *attr,
char *buf)
{
- struct iio_buffer *ring = dev_get_drvdata(dev);
- struct iio_dev *indio_dev = ring->indio_dev;
+ struct iio_dev *indio_dev = dev_get_drvdata(dev);
struct sca3000_state *st = iio_priv(indio_dev);
return sprintf(buf, "0.%06d\n", 4*st->info->scale);
@@ -267,7 +264,7 @@ static struct iio_buffer *sca3000_rb_allocate(struct iio_dev *indio_dev)
buf = &ring->buf;
buf->stufftoread = 0;
buf->attrs = &sca3000_ring_attr;
- iio_buffer_init(buf, indio_dev);
+ iio_buffer_init(buf);
return buf;
}
diff --git a/drivers/staging/iio/buffer.h b/drivers/staging/iio/buffer.h
index 501d4ee..9b1a4f1 100644
--- a/drivers/staging/iio/buffer.h
+++ b/drivers/staging/iio/buffer.h
@@ -65,7 +65,6 @@ struct iio_buffer_access_funcs {
/**
* struct iio_buffer - general buffer structure
- * @indio_dev: industrial I/O device structure
* @length: [DEVICE] number of datums in buffer
* @bytes_per_datum: [DEVICE] size of individual datum including timestamp
* @scan_el_attrs: [DRIVER] control of scan elements if that scan mode
@@ -79,7 +78,6 @@ struct iio_buffer_access_funcs {
* @demux_bounce: [INTERN] buffer for doing gather from incoming scan.
**/
struct iio_buffer {
- struct iio_dev *indio_dev;
int length;
int bytes_per_datum;
struct attribute_group *scan_el_attrs;
@@ -100,10 +98,8 @@ struct iio_buffer {
/**
* iio_buffer_init() - Initialize the buffer structure
* @buffer: buffer to be initialized
- * @indio_dev: the iio device the buffer is assocated with
**/
-void iio_buffer_init(struct iio_buffer *buffer,
- struct iio_dev *indio_dev);
+void iio_buffer_init(struct iio_buffer *buffer);
void iio_buffer_deinit(struct iio_buffer *buffer);
@@ -120,14 +116,16 @@ static inline void __iio_update_buffer(struct iio_buffer *buffer,
buffer->length = length;
}
-int iio_scan_mask_query(struct iio_buffer *buffer, int bit);
+int iio_scan_mask_query(struct iio_dev *indio_dev,
+ struct iio_buffer *buffer, int bit);
/**
* iio_scan_mask_set() - set particular bit in the scan mask
* @buffer: the buffer whose scan mask we are interested in
* @bit: the bit to be set.
**/
-int iio_scan_mask_set(struct iio_buffer *buffer, int bit);
+int iio_scan_mask_set(struct iio_dev *indio_dev,
+ struct iio_buffer *buffer, int bit);
/**
* iio_push_to_buffer() - push to a registered buffer.
diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c
index 5614a22..871f76b 100644
--- a/drivers/staging/iio/gyro/adis16260_core.c
+++ b/drivers/staging/iio/gyro/adis16260_core.c
@@ -632,11 +632,16 @@ static int __devinit adis16260_probe(struct spi_device *spi)
}
if (indio_dev->buffer) {
/* Set default scan mode */
- iio_scan_mask_set(indio_dev->buffer, ADIS16260_SCAN_SUPPLY);
- iio_scan_mask_set(indio_dev->buffer, ADIS16260_SCAN_GYRO);
- iio_scan_mask_set(indio_dev->buffer, ADIS16260_SCAN_AUX_ADC);
- iio_scan_mask_set(indio_dev->buffer, ADIS16260_SCAN_TEMP);
- iio_scan_mask_set(indio_dev->buffer, ADIS16260_SCAN_ANGL);
+ iio_scan_mask_set(indio_dev, indio_dev->buffer,
+ ADIS16260_SCAN_SUPPLY);
+ iio_scan_mask_set(indio_dev, indio_dev->buffer,
+ ADIS16260_SCAN_GYRO);
+ iio_scan_mask_set(indio_dev, indio_dev->buffer,
+ ADIS16260_SCAN_AUX_ADC);
+ iio_scan_mask_set(indio_dev, indio_dev->buffer,
+ ADIS16260_SCAN_TEMP);
+ iio_scan_mask_set(indio_dev, indio_dev->buffer,
+ ADIS16260_SCAN_ANGL);
}
if (spi->irq) {
ret = adis16260_probe_trigger(indio_dev);
diff --git a/drivers/staging/iio/impedance-analyzer/ad5933.c b/drivers/staging/iio/impedance-analyzer/ad5933.c
index 23241c4..f02d1c0 100644
--- a/drivers/staging/iio/impedance-analyzer/ad5933.c
+++ b/drivers/staging/iio/impedance-analyzer/ad5933.c
@@ -736,8 +736,8 @@ static int __devinit ad5933_probe(struct i2c_client *client,
goto error_unreg_ring;
/* enable both REAL and IMAG channels by default */
- iio_scan_mask_set(indio_dev->buffer, 0);
- iio_scan_mask_set(indio_dev->buffer, 1);
+ iio_scan_mask_set(indio_dev, indio_dev->buffer, 0);
+ iio_scan_mask_set(indio_dev, indio_dev->buffer, 1);
ret = ad5933_setup(st);
if (ret)
diff --git a/drivers/staging/iio/industrialio-buffer.c b/drivers/staging/iio/industrialio-buffer.c
index 79f1543..f131088 100644
--- a/drivers/staging/iio/industrialio-buffer.c
+++ b/drivers/staging/iio/industrialio-buffer.c
@@ -85,10 +85,9 @@ void iio_chrdev_buffer_release(struct iio_dev *indio_dev)
rb->access->unmark_in_use(rb);
}
-void iio_buffer_init(struct iio_buffer *buffer, struct iio_dev *indio_dev)
+void iio_buffer_init(struct iio_buffer *buffer)
{
INIT_LIST_HEAD(&buffer->demux_list);
- buffer->indio_dev = indio_dev;
init_waitqueue_head(&buffer->pollq);
}
EXPORT_SYMBOL(iio_buffer_init);
@@ -158,7 +157,7 @@ static ssize_t iio_scan_el_store(struct device *dev,
ret = -EBUSY;
goto error_ret;
}
- ret = iio_scan_mask_query(buffer, this_attr->address);
+ ret = iio_scan_mask_query(indio_dev, buffer, this_attr->address);
if (ret < 0)
goto error_ret;
if (!state && ret) {
@@ -166,7 +165,7 @@ static ssize_t iio_scan_el_store(struct device *dev,
if (ret)
goto error_ret;
} else if (state && !ret) {
- ret = iio_scan_mask_set(buffer, this_attr->address);
+ ret = iio_scan_mask_set(indio_dev, buffer, this_attr->address);
if (ret)
goto error_ret;
}
@@ -582,9 +581,9 @@ EXPORT_SYMBOL(iio_sw_buffer_preenable);
* @buffer: the buffer whose scan mask we are interested in
* @bit: the bit to be set.
**/
-int iio_scan_mask_set(struct iio_buffer *buffer, int bit)
+int iio_scan_mask_set(struct iio_dev *indio_dev,
+ struct iio_buffer *buffer, int bit)
{
- struct iio_dev *indio_dev = buffer->indio_dev;
unsigned long *mask;
unsigned long *trialmask;
@@ -619,9 +618,9 @@ int iio_scan_mask_set(struct iio_buffer *buffer, int bit)
};
EXPORT_SYMBOL_GPL(iio_scan_mask_set);
-int iio_scan_mask_query(struct iio_buffer *buffer, int bit)
+int iio_scan_mask_query(struct iio_dev *indio_dev,
+ struct iio_buffer *buffer, int bit)
{
- struct iio_dev *indio_dev = buffer->indio_dev;
long *mask;
if (bit > indio_dev->masklength)
diff --git a/drivers/staging/iio/kfifo_buf.c b/drivers/staging/iio/kfifo_buf.c
index fb3b7ae..d8867ab 100644
--- a/drivers/staging/iio/kfifo_buf.c
+++ b/drivers/staging/iio/kfifo_buf.c
@@ -96,7 +96,7 @@ struct iio_buffer *iio_kfifo_allocate(struct iio_dev *indio_dev)
if (!kf)
return NULL;
kf->update_needed = true;
- iio_buffer_init(&kf->buffer, indio_dev);
+ iio_buffer_init(&kf->buffer);
kf->buffer.attrs = &iio_kfifo_attribute_group;
__iio_init_kfifo(kf);
diff --git a/drivers/staging/iio/ring_sw.c b/drivers/staging/iio/ring_sw.c
index 37d26e6..a541a73 100644
--- a/drivers/staging/iio/ring_sw.c
+++ b/drivers/staging/iio/ring_sw.c
@@ -385,7 +385,7 @@ struct iio_buffer *iio_sw_rb_allocate(struct iio_dev *indio_dev)
return NULL;
ring->update_needed = true;
buf = &ring->buf;
- iio_buffer_init(buf, indio_dev);
+ iio_buffer_init(buf);
__iio_init_sw_ring_buffer(ring);
buf->attrs = &iio_ring_attribute_group;
--
1.7.7.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] staging:iio:buffer.h update struct buffer docs.
2011-11-27 14:46 [PATCH 0/3] staging:iio: more buffer related cleanups Jonathan Cameron
2011-11-27 14:46 ` [PATCH 1/3] staging:iio:buffer scrap to_iio_buffer as it no longer has meaning Jonathan Cameron
2011-11-27 14:46 ` [PATCH 2/3] staging:iio:buffer struct iio_buffer doesn't need an indio_dev pointer Jonathan Cameron
@ 2011-11-27 14:46 ` Jonathan Cameron
2 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2011-11-27 14:46 UTC (permalink / raw)
To: linux-iio; +Cc: lars, Michael.Hennerich, manuel.stahl, Jonathan Cameron
These docs have lagged recent developments.
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
---
drivers/staging/iio/buffer.h | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/drivers/staging/iio/buffer.h b/drivers/staging/iio/buffer.h
index 9b1a4f1..c697099 100644
--- a/drivers/staging/iio/buffer.h
+++ b/drivers/staging/iio/buffer.h
@@ -70,9 +70,15 @@ struct iio_buffer_access_funcs {
* @scan_el_attrs: [DRIVER] control of scan elements if that scan mode
* control method is used
* @scan_mask: [INTERN] bitmask used in masking scan mode elements
+ * @scan_index_timestamp:[INTERN] cache of the index to the timestamp
* @scan_timestamp: [INTERN] does the scan mode include a timestamp
* @access: [DRIVER] buffer access functions associated with the
* implementation.
+ * @scan_el_dev_attr_list:[INTERN] list of scan element related attributes.
+ * @scan_el_group: [DRIVER] attribute group for those attributes not
+ * created from the iio_chan_info array.
+ * @pollq: [INTERN] wait queue to allow for polling on the buffer.
+ * @stufftoread: [INTERN] flag to indicate new data.
* @flags: [INTERN] file ops related flags including busy flag.
* @demux_list: [INTERN] list of operations required to demux the scan.
* @demux_bounce: [INTERN] buffer for doing gather from incoming scan.
--
1.7.7.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-11-27 14:46 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-27 14:46 [PATCH 0/3] staging:iio: more buffer related cleanups Jonathan Cameron
2011-11-27 14:46 ` [PATCH 1/3] staging:iio:buffer scrap to_iio_buffer as it no longer has meaning Jonathan Cameron
2011-11-27 14:46 ` [PATCH 2/3] staging:iio:buffer struct iio_buffer doesn't need an indio_dev pointer Jonathan Cameron
2011-11-27 14:46 ` [PATCH 3/3] staging:iio:buffer.h update struct buffer docs Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).