* [PATCH 1/8] staging:iio:core flatten convenience function that only has one user.
2011-07-25 13:10 [PATCH 0/2] blue part 4: IIO general cleanup Jonathan Cameron
@ 2011-07-25 13:10 ` Jonathan Cameron
2011-07-25 13:10 ` [PATCH 2/8] staging:iio:core squash trivial wrappers and use ida allocation func Jonathan Cameron
` (6 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Jonathan Cameron @ 2011-07-25 13:10 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron
Fix trivial wrong index (no effect on any current drivers).
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
drivers/staging/iio/industrialio-core.c | 22 +++++++---------------
1 files changed, 7 insertions(+), 15 deletions(-)
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c
index 7d15bce..d0e039b 100644
--- a/drivers/staging/iio/industrialio-core.c
+++ b/drivers/staging/iio/industrialio-core.c
@@ -991,18 +991,17 @@ error_ret:
return ret;
}
-static inline void __iio_remove_all_event_sysfs(struct iio_dev *dev_info,
- const char *groupname,
- int num)
+static inline void __iio_remove_event_config_attrs(struct iio_dev *dev_info,
+ int i)
{
struct iio_dev_attr *p, *n;
list_for_each_entry_safe(p, n,
- &dev_info->event_interfaces[num].
+ &dev_info->event_interfaces[i].
dev_attr_list, l) {
sysfs_remove_file_from_group(&dev_info
- ->event_interfaces[num].dev.kobj,
+ ->event_interfaces[i].dev.kobj,
&p->dev_attr.attr,
- groupname);
+ NULL);
kfree(p->dev_attr.attr.name);
kfree(p);
}
@@ -1012,7 +1011,7 @@ static inline int __iio_add_event_config_attrs(struct iio_dev *dev_info, int i)
{
int j;
int ret;
- INIT_LIST_HEAD(&dev_info->event_interfaces[0].dev_attr_list);
+ INIT_LIST_HEAD(&dev_info->event_interfaces[i].dev_attr_list);
/* Dynically created from the channels array */
if (dev_info->channels) {
for (j = 0; j < dev_info->num_channels; j++) {
@@ -1026,18 +1025,11 @@ static inline int __iio_add_event_config_attrs(struct iio_dev *dev_info, int i)
return 0;
error_clear_attrs:
- __iio_remove_all_event_sysfs(dev_info, NULL, i);
+ __iio_remove_event_config_attrs(dev_info, i);
return ret;
}
-static inline int __iio_remove_event_config_attrs(struct iio_dev *dev_info,
- int i)
-{
- __iio_remove_all_event_sysfs(dev_info, NULL, i);
- return 0;
-}
-
static int iio_device_register_eventset(struct iio_dev *dev_info)
{
int ret = 0, i, j;
--
1.7.3.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/8] staging:iio:core squash trivial wrappers and use ida allocation func.
2011-07-25 13:10 [PATCH 0/2] blue part 4: IIO general cleanup Jonathan Cameron
2011-07-25 13:10 ` [PATCH 1/8] staging:iio:core flatten convenience function that only has one user Jonathan Cameron
@ 2011-07-25 13:10 ` Jonathan Cameron
2011-07-25 13:10 ` [PATCH 3/8] staging:iio:trigger core. Trivial code cleanups Jonathan Cameron
` (5 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Jonathan Cameron @ 2011-07-25 13:10 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron
Reorder to remove need for definitions currently in header.
Remove ida related utility function defs from header.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
drivers/staging/iio/iio.h | 4 -
drivers/staging/iio/industrialio-core.c | 108 ++++++++++++-------------------
2 files changed, 42 insertions(+), 70 deletions(-)
diff --git a/drivers/staging/iio/iio.h b/drivers/staging/iio/iio.h
index 2a8c8e2..07f88aa 100644
--- a/drivers/staging/iio/iio.h
+++ b/drivers/staging/iio/iio.h
@@ -424,8 +424,4 @@ static inline bool iio_ring_enabled(struct iio_dev *dev_info)
| INDIO_RING_HARDWARE_BUFFER);
};
-struct ida;
-
-int iio_get_new_ida_val(struct ida *this_ida);
-void iio_free_ida_val(struct ida *this_ida, int id);
#endif /* _INDUSTRIAL_IO_H_ */
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c
index d0e039b..b131a58 100644
--- a/drivers/staging/iio/industrialio-core.c
+++ b/drivers/staging/iio/industrialio-core.c
@@ -89,6 +89,36 @@ static const char * const iio_chan_info_postfix[] = {
= "quadrature_correction_raw",
};
+/* Return a negative errno on failure */
+int iio_get_new_ida_val(struct ida *this_ida)
+{
+ int ret;
+ int val;
+
+ida_again:
+ if (unlikely(ida_pre_get(this_ida, GFP_KERNEL) == 0))
+ return -ENOMEM;
+
+ spin_lock(&iio_ida_lock);
+ ret = ida_get_new(this_ida, &val);
+ spin_unlock(&iio_ida_lock);
+ if (unlikely(ret == -EAGAIN))
+ goto ida_again;
+ else if (unlikely(ret))
+ return ret;
+
+ return val;
+}
+EXPORT_SYMBOL(iio_get_new_ida_val);
+
+void iio_free_ida_val(struct ida *this_ida, int id)
+{
+ spin_lock(&iio_ida_lock);
+ ida_remove(this_ida, id);
+ spin_unlock(&iio_ida_lock);
+}
+EXPORT_SYMBOL(iio_free_ida_val);
+
int iio_push_event(struct iio_dev *dev_info,
int ev_line,
int ev_code,
@@ -248,28 +278,18 @@ static struct device_type iio_event_type = {
int iio_device_get_chrdev_minor(void)
{
- int ret, val;
+ int ret;
-ida_again:
- if (unlikely(ida_pre_get(&iio_chrdev_ida, GFP_KERNEL) == 0))
- return -ENOMEM;
- spin_lock(&iio_ida_lock);
- ret = ida_get_new(&iio_chrdev_ida, &val);
- spin_unlock(&iio_ida_lock);
- if (unlikely(ret == -EAGAIN))
- goto ida_again;
- else if (unlikely(ret))
+ ret = iio_get_new_ida_val(&iio_chrdev_ida);
+ if (ret < IIO_DEV_MAX) /* both errors and valid */
return ret;
- if (val > IIO_DEV_MAX)
+ else
return -ENOMEM;
- return val;
}
void iio_device_free_chrdev_minor(int val)
{
- spin_lock(&iio_ida_lock);
- ida_remove(&iio_chrdev_ida, val);
- spin_unlock(&iio_ida_lock);
+ iio_free_ida_val(&iio_chrdev_ida, val);
}
static int iio_setup_ev_int(struct iio_event_interface *ev_int,
@@ -331,24 +351,6 @@ static void iio_free_ev_int(struct iio_event_interface *ev_int)
put_device(&ev_int->dev);
}
-static int __init iio_dev_init(void)
-{
- int err;
-
- err = alloc_chrdev_region(&iio_devt, 0, IIO_DEV_MAX, "iio");
- if (err < 0)
- printk(KERN_ERR "%s: failed to allocate char dev region\n",
- __FILE__);
-
- return err;
-}
-
-static void __exit iio_dev_exit(void)
-{
- if (iio_devt)
- unregister_chrdev_region(iio_devt, IIO_DEV_MAX);
-}
-
static int __init iio_init(void)
{
int ret;
@@ -362,9 +364,12 @@ static int __init iio_init(void)
goto error_nothing;
}
- ret = iio_dev_init();
- if (ret < 0)
+ ret = alloc_chrdev_region(&iio_devt, 0, IIO_DEV_MAX, "iio");
+ if (ret < 0) {
+ printk(KERN_ERR "%s: failed to allocate char dev region\n",
+ __FILE__);
goto error_unregister_bus_type;
+ }
return 0;
@@ -376,7 +381,8 @@ error_nothing:
static void __exit iio_exit(void)
{
- iio_dev_exit();
+ if (iio_devt)
+ unregister_chrdev_region(iio_devt, IIO_DEV_MAX);
bus_unregister(&iio_bus_type);
}
@@ -794,36 +800,6 @@ static void iio_device_unregister_sysfs(struct iio_dev *dev_info)
sysfs_remove_group(&dev_info->dev.kobj, dev_info->info->attrs);
}
-/* Return a negative errno on failure */
-int iio_get_new_ida_val(struct ida *this_ida)
-{
- int ret;
- int val;
-
-ida_again:
- if (unlikely(ida_pre_get(this_ida, GFP_KERNEL) == 0))
- return -ENOMEM;
-
- spin_lock(&iio_ida_lock);
- ret = ida_get_new(this_ida, &val);
- spin_unlock(&iio_ida_lock);
- if (unlikely(ret == -EAGAIN))
- goto ida_again;
- else if (unlikely(ret))
- return ret;
-
- return val;
-}
-EXPORT_SYMBOL(iio_get_new_ida_val);
-
-void iio_free_ida_val(struct ida *this_ida, int id)
-{
- spin_lock(&iio_ida_lock);
- ida_remove(this_ida, id);
- spin_unlock(&iio_ida_lock);
-}
-EXPORT_SYMBOL(iio_free_ida_val);
-
static const char * const iio_ev_type_text[] = {
[IIO_EV_TYPE_THRESH] = "thresh",
[IIO_EV_TYPE_MAG] = "mag",
--
1.7.3.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/8] staging:iio:trigger core. Trivial code cleanups.
2011-07-25 13:10 [PATCH 0/2] blue part 4: IIO general cleanup Jonathan Cameron
2011-07-25 13:10 ` [PATCH 1/8] staging:iio:core flatten convenience function that only has one user Jonathan Cameron
2011-07-25 13:10 ` [PATCH 2/8] staging:iio:core squash trivial wrappers and use ida allocation func Jonathan Cameron
@ 2011-07-25 13:10 ` Jonathan Cameron
2011-07-25 13:10 ` [PATCH 4/8] staging:iio: Introduce iio_core.h and move all core only stuff out of iio.h Jonathan Cameron
` (4 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Jonathan Cameron @ 2011-07-25 13:10 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron
Stop exporting functions only intended for core usage.
Return void from function which can never return anything other than 0.
Trivial stype cleanups.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
drivers/staging/iio/iio_core_trigger.h | 5 ++---
drivers/staging/iio/industrialio-trigger.c | 22 +++++++---------------
2 files changed, 9 insertions(+), 18 deletions(-)
diff --git a/drivers/staging/iio/iio_core_trigger.h b/drivers/staging/iio/iio_core_trigger.h
index 9d52d96..3e5195a 100644
--- a/drivers/staging/iio/iio_core_trigger.h
+++ b/drivers/staging/iio/iio_core_trigger.h
@@ -19,7 +19,7 @@ int iio_device_register_trigger_consumer(struct iio_dev *dev_info);
* iio_device_unregister_trigger_consumer() - reverse the registration process
* @dev_info: iio_dev associated with the device that consumed the trigger
**/
-int iio_device_unregister_trigger_consumer(struct iio_dev *dev_info);
+void iio_device_unregister_trigger_consumer(struct iio_dev *dev_info);
#else
@@ -36,9 +36,8 @@ static int iio_device_register_trigger_consumer(struct iio_dev *dev_info)
* iio_device_unregister_trigger_consumer() - reverse the registration process
* @dev_info: iio_dev associated with the device that consumed the trigger
**/
-static int iio_device_unregister_trigger_consumer(struct iio_dev *dev_info)
+static void iio_device_unregister_trigger_consumer(struct iio_dev *dev_info)
{
- return 0;
};
#endif /* CONFIG_TRIGGER_CONSUMER */
diff --git a/drivers/staging/iio/industrialio-trigger.c b/drivers/staging/iio/industrialio-trigger.c
index 6940f8c..21a7dbb 100644
--- a/drivers/staging/iio/industrialio-trigger.c
+++ b/drivers/staging/iio/industrialio-trigger.c
@@ -173,13 +173,12 @@ static struct iio_trigger *iio_trigger_find_by_name(const char *name,
void iio_trigger_poll(struct iio_trigger *trig, s64 time)
{
int i;
- if (!trig->use_count) {
+ if (!trig->use_count)
for (i = 0; i < CONFIG_IIO_CONSUMERS_PER_TRIGGER; i++)
if (trig->subirqs[i].enabled) {
trig->use_count++;
generic_handle_irq(trig->subirq_base + i);
}
- }
}
EXPORT_SYMBOL(iio_trigger_poll);
@@ -321,12 +320,10 @@ static ssize_t iio_trigger_read_current(struct device *dev,
char *buf)
{
struct iio_dev *dev_info = dev_get_drvdata(dev);
- int len = 0;
+
if (dev_info->trig)
- len = sprintf(buf,
- "%s\n",
- dev_info->trig->name);
- return len;
+ return sprintf(buf, "%s\n", dev_info->trig->name);
+ return 0;
}
/**
@@ -495,23 +492,18 @@ EXPORT_SYMBOL(iio_free_trigger);
int iio_device_register_trigger_consumer(struct iio_dev *dev_info)
{
- int ret;
- ret = sysfs_create_group(&dev_info->dev.kobj,
- &iio_trigger_consumer_attr_group);
- return ret;
+ return sysfs_create_group(&dev_info->dev.kobj,
+ &iio_trigger_consumer_attr_group);
}
-EXPORT_SYMBOL(iio_device_register_trigger_consumer);
-int iio_device_unregister_trigger_consumer(struct iio_dev *dev_info)
+void iio_device_unregister_trigger_consumer(struct iio_dev *dev_info)
{
/* Clean up and associated but not attached triggers references */
if (dev_info->trig)
iio_put_trigger(dev_info->trig);
sysfs_remove_group(&dev_info->dev.kobj,
&iio_trigger_consumer_attr_group);
- return 0;
}
-EXPORT_SYMBOL(iio_device_unregister_trigger_consumer);
int iio_triggered_ring_postenable(struct iio_dev *indio_dev)
{
--
1.7.3.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/8] staging:iio: Introduce iio_core.h and move all core only stuff out of iio.h.
2011-07-25 13:10 [PATCH 0/2] blue part 4: IIO general cleanup Jonathan Cameron
` (2 preceding siblings ...)
2011-07-25 13:10 ` [PATCH 3/8] staging:iio:trigger core. Trivial code cleanups Jonathan Cameron
@ 2011-07-25 13:10 ` Jonathan Cameron
2011-07-25 13:10 ` [PATCH 5/8] staging:iio:sysfs cleanout header for unused definitions Jonathan Cameron
` (3 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Jonathan Cameron @ 2011-07-25 13:10 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron
Also get rid of a few function defs where they are only now in one core file
anyway.
Whilst here add mask = 0 to get rid of warning.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
drivers/staging/iio/iio.h | 63 +---------------------------
drivers/staging/iio/iio_core.h | 48 +++++++++++++++++++++
drivers/staging/iio/industrialio-core.c | 16 ++++----
drivers/staging/iio/industrialio-ring.c | 1 +
drivers/staging/iio/industrialio-trigger.c | 1 +
5 files changed, 59 insertions(+), 70 deletions(-)
diff --git a/drivers/staging/iio/iio.h b/drivers/staging/iio/iio.h
index 07f88aa..61cfb26 100644
--- a/drivers/staging/iio/iio.h
+++ b/drivers/staging/iio/iio.h
@@ -23,9 +23,6 @@
* Currently assumes nano seconds.
*/
-/* Event interface flags */
-#define IIO_BUSY_BIT_POS 1
-
/* naughty temporary hack to match these against the event version
- need to flattern these together */
enum iio_chan_type {
@@ -131,19 +128,7 @@ struct iio_chan_spec {
unsigned modified:1;
unsigned indexed:1;
};
-/* Meant for internal use only */
-void __iio_device_attr_deinit(struct device_attribute *dev_attr);
-int __iio_device_attr_init(struct device_attribute *dev_attr,
- const char *postfix,
- struct iio_chan_spec const *chan,
- ssize_t (*readfunc)(struct device *dev,
- struct device_attribute *attr,
- char *buf),
- ssize_t (*writefunc)(struct device *dev,
- struct device_attribute *attr,
- const char *buf,
- size_t len),
- bool generic);
+
#define IIO_ST(si, rb, sb, sh) \
{ .sign = si, .realbits = rb, .storagebits = sb, .shift = sh }
@@ -166,20 +151,6 @@ int __iio_device_attr_init(struct device_attribute *dev_attr,
{ .type = IIO_TIMESTAMP, .channel = -1, \
.scan_index = _si, .scan_type = IIO_ST('s', 64, 64, 0) }
-int __iio_add_chan_devattr(const char *postfix,
- const char *group,
- struct iio_chan_spec const *chan,
- ssize_t (*func)(struct device *dev,
- struct device_attribute *attr,
- char *buf),
- ssize_t (*writefunc)(struct device *dev,
- struct device_attribute *attr,
- const char *buf,
- size_t len),
- int mask,
- bool generic,
- struct device *dev,
- struct list_head *attr_list);
/**
* iio_get_time_ns() - utility function to get a time stamp for events etc
**/
@@ -344,13 +315,6 @@ int iio_push_event(struct iio_dev *dev_info,
int ev_code,
s64 timestamp);
-/* Used to distinguish between bipolar and unipolar scan elemenents.
- * Whilst this may seem obvious, we may well want to change the representation
- * in the future!*/
-#define IIO_SIGNED(a) -(a)
-#define IIO_UNSIGNED(a) (a)
-
-extern dev_t iio_devt;
extern struct bus_type iio_bus_type;
/**
@@ -363,15 +327,6 @@ static inline void iio_put_device(struct iio_dev *dev)
put_device(&dev->dev);
};
-/**
- * to_iio_dev() - get iio_dev for which we have the struct device
- * @d: the struct device
- **/
-static inline struct iio_dev *to_iio_dev(struct device *d)
-{
- return container_of(d, struct iio_dev, dev);
-};
-
/* Can we make this smaller? */
#define IIO_ALIGN L1_CACHE_BYTES
/**
@@ -398,22 +353,6 @@ static inline struct iio_dev *iio_priv_to_dev(void *priv)
void iio_free_device(struct iio_dev *dev);
/**
- * iio_put() - internal module reference count reduce
- **/
-void iio_put(void);
-
-/**
- * iio_get() - internal module reference count increase
- **/
-void iio_get(void);
-
-/**
- * iio_device_get_chrdev_minor() - get an unused minor number
- **/
-int iio_device_get_chrdev_minor(void);
-void iio_device_free_chrdev_minor(int val);
-
-/**
* iio_ring_enabled() - helper function to test if any form of ring is enabled
* @dev_info: IIO device info structure for device
**/
diff --git a/drivers/staging/iio/iio_core.h b/drivers/staging/iio/iio_core.h
new file mode 100644
index 0000000..00e894d
--- /dev/null
+++ b/drivers/staging/iio/iio_core.h
@@ -0,0 +1,48 @@
+/* The industrial I/O core function defs.
+ *
+ * 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.
+ *
+ * These definitions are meant for use only within the IIO core, not indvidual
+ * drivers.
+ */
+
+/**
+ * iio_device_get_chrdev_minor() - get an unused minor number
+ **/
+int iio_device_get_chrdev_minor(void);
+void iio_device_free_chrdev_minor(int val);
+
+
+/**
+ * iio_put() - internal module reference count reduce
+ **/
+void iio_put(void);
+
+/**
+ * iio_get() - internal module reference count increase
+ **/
+void iio_get(void);
+
+extern dev_t iio_devt;
+
+int __iio_add_chan_devattr(const char *postfix,
+ const char *group,
+ struct iio_chan_spec const *chan,
+ ssize_t (*func)(struct device *dev,
+ struct device_attribute *attr,
+ char *buf),
+ ssize_t (*writefunc)(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf,
+ size_t len),
+ int mask,
+ bool generic,
+ struct device *dev,
+ struct list_head *attr_list);
+
+/* Event interface flags */
+#define IIO_BUSY_BIT_POS 1
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c
index b131a58..123841b 100644
--- a/drivers/staging/iio/industrialio-core.c
+++ b/drivers/staging/iio/industrialio-core.c
@@ -22,6 +22,7 @@
#include <linux/cdev.h>
#include <linux/slab.h>
#include "iio.h"
+#include "iio_core.h"
#include "iio_core_trigger.h"
#define IIO_ID_PREFIX "device"
@@ -35,7 +36,6 @@ static DEFINE_IDA(iio_chrdev_ida);
static DEFINE_SPINLOCK(iio_ida_lock);
dev_t iio_devt;
-EXPORT_SYMBOL(iio_devt);
#define IIO_DEV_MAX 256
struct bus_type iio_bus_type = {
@@ -90,7 +90,7 @@ static const char * const iio_chan_info_postfix[] = {
};
/* Return a negative errno on failure */
-int iio_get_new_ida_val(struct ida *this_ida)
+static int iio_get_new_ida_val(struct ida *this_ida)
{
int ret;
int val;
@@ -109,15 +109,13 @@ ida_again:
return val;
}
-EXPORT_SYMBOL(iio_get_new_ida_val);
-void iio_free_ida_val(struct ida *this_ida, int id)
+static void iio_free_ida_val(struct ida *this_ida, int id)
{
spin_lock(&iio_ida_lock);
ida_remove(this_ida, id);
spin_unlock(&iio_ida_lock);
}
-EXPORT_SYMBOL(iio_free_ida_val);
int iio_push_event(struct iio_dev *dev_info,
int ev_line,
@@ -532,6 +530,7 @@ static int __iio_build_postfix(struct iio_chan_spec const *chan,
return 0;
}
+static
int __iio_device_attr_init(struct device_attribute *dev_attr,
const char *postfix,
struct iio_chan_spec const *chan,
@@ -604,7 +603,7 @@ error_ret:
return ret;
}
-void __iio_device_attr_deinit(struct device_attribute *dev_attr)
+static void __iio_device_attr_deinit(struct device_attribute *dev_attr)
{
kfree(dev_attr->attr.name);
}
@@ -889,7 +888,7 @@ static int iio_device_add_event_sysfs(struct iio_dev *dev_info,
struct iio_chan_spec const *chan)
{
- int ret = 0, i, mask;
+ int ret = 0, i, mask = 0;
char *postfix;
if (!chan->event_mask)
return 0;
@@ -1099,8 +1098,9 @@ static void iio_device_unregister_eventset(struct iio_dev *dev_info)
static void iio_dev_release(struct device *device)
{
+ struct iio_dev *dev_info = container_of(device, struct iio_dev, dev);
iio_put();
- kfree(to_iio_dev(device));
+ kfree(dev_info);
}
static struct device_type iio_dev_type = {
diff --git a/drivers/staging/iio/industrialio-ring.c b/drivers/staging/iio/industrialio-ring.c
index 843eb82..dce50b1 100644
--- a/drivers/staging/iio/industrialio-ring.c
+++ b/drivers/staging/iio/industrialio-ring.c
@@ -21,6 +21,7 @@
#include <linux/poll.h>
#include "iio.h"
+#include "iio_core.h"
#include "ring_generic.h"
/**
diff --git a/drivers/staging/iio/industrialio-trigger.c b/drivers/staging/iio/industrialio-trigger.c
index 21a7dbb..72ea106 100644
--- a/drivers/staging/iio/industrialio-trigger.c
+++ b/drivers/staging/iio/industrialio-trigger.c
@@ -17,6 +17,7 @@
#include "iio.h"
#include "trigger.h"
+#include "iio_core.h"
#include "iio_core_trigger.h"
#include "trigger_consumer.h"
--
1.7.3.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 5/8] staging:iio:sysfs cleanout header for unused definitions.
2011-07-25 13:10 [PATCH 0/2] blue part 4: IIO general cleanup Jonathan Cameron
` (3 preceding siblings ...)
2011-07-25 13:10 ` [PATCH 4/8] staging:iio: Introduce iio_core.h and move all core only stuff out of iio.h Jonathan Cameron
@ 2011-07-25 13:10 ` Jonathan Cameron
2011-07-25 13:10 ` [PATCH 6/8] staging:iio:events: use IIO_<TYPE> and IIO_MOD_<> instead of IIO_EV_CLASS_<TYPE> etc Jonathan Cameron
` (2 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Jonathan Cameron @ 2011-07-25 13:10 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron
Also push one down into the only driver that actually uses it.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
drivers/staging/iio/accel/sca3000_core.c | 2 +-
drivers/staging/iio/sysfs.h | 45 +----------------------------
2 files changed, 3 insertions(+), 44 deletions(-)
diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c
index 3c637b9..22c38c3 100644
--- a/drivers/staging/iio/accel/sca3000_core.c
+++ b/drivers/staging/iio/accel/sca3000_core.c
@@ -421,7 +421,7 @@ static IIO_DEVICE_ATTR(measurement_mode, S_IRUGO | S_IWUSR,
/* More standard attributes */
-static IIO_DEV_ATTR_REV(sca3000_show_rev);
+static IIO_DEVICE_ATTR(revision, S_IRUGO, sca3000_show_rev, NULL, 0);
#define SCA3000_INFO_MASK \
(1 << IIO_CHAN_INFO_SCALE_SHARED)
diff --git a/drivers/staging/iio/sysfs.h b/drivers/staging/iio/sysfs.h
index dd79b58..fed7b11 100644
--- a/drivers/staging/iio/sysfs.h
+++ b/drivers/staging/iio/sysfs.h
@@ -77,17 +77,8 @@ struct iio_const_attr {
struct iio_const_attr iio_const_attr_##_vname \
= { .string = _string, \
.dev_attr = __ATTR(_name, S_IRUGO, iio_read_const_attr, NULL)}
-/* Generic attributes of onetype or another */
-
-/**
- * IIO_DEV_ATTR_REV - revision number for the device
- * @_show: output method for the attribute
- *
- * Very much device dependent.
- **/
-#define IIO_DEV_ATTR_REV(_show) \
- IIO_DEVICE_ATTR(revision, S_IRUGO, _show, NULL, 0)
+/* Generic attributes of onetype or another */
/**
* IIO_DEV_ATTR_RESET: resets the device
**/
@@ -95,13 +86,6 @@ struct iio_const_attr {
IIO_DEVICE_ATTR(reset, S_IWUSR, NULL, _store, 0)
/**
- * IIO_CONST_ATTR_NAME - constant identifier
- * @_string: the name
- **/
-#define IIO_CONST_ATTR_NAME(_string) \
- IIO_CONST_ATTR(name, _string)
-
-/**
* IIO_DEV_ATTR_SAMP_FREQ - sets any internal clock frequency
* @_mode: sysfs file mode/permissions
* @_show: output method for the attribute
@@ -111,15 +95,11 @@ struct iio_const_attr {
IIO_DEVICE_ATTR(sampling_frequency, _mode, _show, _store, 0)
/**
- * IIO_DEV_ATTR_AVAIL_SAMP_FREQ - list available sampling frequencies
+ * IIO_DEV_ATTR_SAMP_FREQ_AVAIL - list available sampling frequencies
* @_show: output method for the attribute
*
* May be mode dependent on some devices
**/
-/* Deprecated */
-#define IIO_DEV_ATTR_AVAIL_SAMP_FREQ(_show) \
- IIO_DEVICE_ATTR(available_sampling_frequency, S_IRUGO, _show, NULL, 0)
-
#define IIO_DEV_ATTR_SAMP_FREQ_AVAIL(_show) \
IIO_DEVICE_ATTR(sampling_frequency_available, S_IRUGO, _show, NULL, 0)
/**
@@ -131,27 +111,6 @@ struct iio_const_attr {
#define IIO_CONST_ATTR_SAMP_FREQ_AVAIL(_string) \
IIO_CONST_ATTR(sampling_frequency_available, _string)
-/**
- * IIO_DEV_ATTR_SW_RING_ENABLE - enable software ring buffer
- * @_show: output method for the attribute
- * @_store: input method for the attribute
- *
- * Success may be dependent on attachment of trigger previously.
- **/
-#define IIO_DEV_ATTR_SW_RING_ENABLE(_show, _store) \
- IIO_DEVICE_ATTR(sw_ring_enable, S_IRUGO | S_IWUSR, _show, _store, 0)
-
-/**
- * IIO_DEV_ATTR_HW_RING_ENABLE - enable hardware ring buffer
- * @_show: output method for the attribute
- * @_store: input method for the attribute
- *
- * This is a different attribute from the software one as one can envision
- * schemes where a combination of the two may be used.
- **/
-#define IIO_DEV_ATTR_HW_RING_ENABLE(_show, _store) \
- IIO_DEVICE_ATTR(hw_ring_enable, S_IRUGO | S_IWUSR, _show, _store, 0)
-
#define IIO_DEV_ATTR_TEMP_RAW(_show) \
IIO_DEVICE_ATTR(temp_raw, S_IRUGO, _show, NULL, 0)
--
1.7.3.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 6/8] staging:iio:events: use IIO_<TYPE> and IIO_MOD_<> instead of IIO_EV_CLASS_<TYPE> etc
2011-07-25 13:10 [PATCH 0/2] blue part 4: IIO general cleanup Jonathan Cameron
` (4 preceding siblings ...)
2011-07-25 13:10 ` [PATCH 5/8] staging:iio:sysfs cleanout header for unused definitions Jonathan Cameron
@ 2011-07-25 13:10 ` Jonathan Cameron
2011-07-26 7:27 ` Michael Hennerich
2011-07-25 13:10 ` [PATCH 7/8] staging:iio:trigger push functions that don't need to be generaly available down into the core Jonathan Cameron
2011-07-25 13:10 ` [PATCH 8/8] staging:iio:kfifo buffer - push structure definition down into implementation Jonathan Cameron
7 siblings, 1 reply; 10+ messages in thread
From: Jonathan Cameron @ 2011-07-25 13:10 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron
The original definitions were duplicated to reduce tree churn during introduction of chan_spec
registration. Now there is no point in maintaining the two sets of definitions.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
drivers/staging/iio/accel/lis3l02dq_core.c | 24 ++++++++++++------------
drivers/staging/iio/accel/sca3000_core.c | 16 ++++++++--------
drivers/staging/iio/adc/ad7150.c | 8 ++++----
drivers/staging/iio/adc/ad7816.c | 2 +-
drivers/staging/iio/adc/ad799x_core.c | 4 ++--
drivers/staging/iio/adc/adt75.c | 2 +-
drivers/staging/iio/adc/max1363_core.c | 24 ++++++++----------------
drivers/staging/iio/dac/ad5504.c | 2 +-
drivers/staging/iio/iio.h | 2 --
drivers/staging/iio/light/tsl2563.c | 2 +-
drivers/staging/iio/sysfs.h | 26 --------------------------
11 files changed, 38 insertions(+), 74 deletions(-)
diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c
index 83ec286..7f946aa 100644
--- a/drivers/staging/iio/accel/lis3l02dq_core.c
+++ b/drivers/staging/iio/accel/lis3l02dq_core.c
@@ -452,54 +452,54 @@ static irqreturn_t lis3l02dq_event_handler(int irq, void *private)
if (t & LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_Z_HIGH)
iio_push_event(indio_dev, 0,
- IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
+ IIO_MOD_EVENT_CODE(IIO_ACCEL,
0,
- IIO_EV_MOD_Z,
+ IIO_MOD_Z,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_RISING),
timestamp);
if (t & LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_Z_LOW)
iio_push_event(indio_dev, 0,
- IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
+ IIO_MOD_EVENT_CODE(IIO_ACCEL,
0,
- IIO_EV_MOD_Z,
+ IIO_MOD_Z,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_FALLING),
timestamp);
if (t & LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_Y_HIGH)
iio_push_event(indio_dev, 0,
- IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
+ IIO_MOD_EVENT_CODE(IIO_ACCEL,
0,
- IIO_EV_MOD_Y,
+ IIO_MOD_Y,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_RISING),
timestamp);
if (t & LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_Y_LOW)
iio_push_event(indio_dev, 0,
- IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
+ IIO_MOD_EVENT_CODE(IIO_ACCEL,
0,
- IIO_EV_MOD_Y,
+ IIO_MOD_Y,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_FALLING),
timestamp);
if (t & LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_X_HIGH)
iio_push_event(indio_dev, 0,
- IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
+ IIO_MOD_EVENT_CODE(IIO_ACCEL,
0,
- IIO_EV_MOD_X,
+ IIO_MOD_X,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_RISING),
timestamp);
if (t & LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_X_LOW)
iio_push_event(indio_dev, 0,
- IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
+ IIO_MOD_EVENT_CODE(IIO_ACCEL,
0,
- IIO_EV_MOD_X,
+ IIO_MOD_X,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_FALLING),
timestamp);
diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c
index 22c38c3..d5684fc 100644
--- a/drivers/staging/iio/accel/sca3000_core.c
+++ b/drivers/staging/iio/accel/sca3000_core.c
@@ -815,36 +815,36 @@ static irqreturn_t sca3000_event_handler(int irq, void *private)
if (val & SCA3000_INT_STATUS_FREE_FALL)
iio_push_event(indio_dev, 0,
- IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
+ IIO_MOD_EVENT_CODE(IIO_ACCEL,
0,
- IIO_EV_MOD_X_AND_Y_AND_Z,
+ IIO_MOD_X_AND_Y_AND_Z,
IIO_EV_TYPE_MAG,
IIO_EV_DIR_FALLING),
last_timestamp);
if (val & SCA3000_INT_STATUS_Y_TRIGGER)
iio_push_event(indio_dev, 0,
- IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
+ IIO_MOD_EVENT_CODE(IIO_ACCEL,
0,
- IIO_EV_MOD_Y,
+ IIO_MOD_Y,
IIO_EV_TYPE_MAG,
IIO_EV_DIR_RISING),
last_timestamp);
if (val & SCA3000_INT_STATUS_X_TRIGGER)
iio_push_event(indio_dev, 0,
- IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
+ IIO_MOD_EVENT_CODE(IIO_ACCEL,
0,
- IIO_EV_MOD_X,
+ IIO_MOD_X,
IIO_EV_TYPE_MAG,
IIO_EV_DIR_RISING),
last_timestamp);
if (val & SCA3000_INT_STATUS_Z_TRIGGER)
iio_push_event(indio_dev, 0,
- IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
+ IIO_MOD_EVENT_CODE(IIO_ACCEL,
0,
- IIO_EV_MOD_Z,
+ IIO_MOD_Z,
IIO_EV_TYPE_MAG,
IIO_EV_DIR_RISING),
last_timestamp);
diff --git a/drivers/staging/iio/adc/ad7150.c b/drivers/staging/iio/adc/ad7150.c
index 04017ef..67989e0 100644
--- a/drivers/staging/iio/adc/ad7150.c
+++ b/drivers/staging/iio/adc/ad7150.c
@@ -652,14 +652,14 @@ static irqreturn_t ad7150_event_handler(int irq, void *private)
if ((int_status & AD7150_STATUS_OUT1) && !(chip->old_state & AD7150_STATUS_OUT1))
iio_push_event(indio_dev, 0,
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
+ IIO_UNMOD_EVENT_CODE(IIO_IN,
0,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_RISING),
timestamp);
else if ((!(int_status & AD7150_STATUS_OUT1)) && (chip->old_state & AD7150_STATUS_OUT1))
iio_push_event(indio_dev, 0,
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
+ IIO_UNMOD_EVENT_CODE(IIO_IN,
0,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_FALLING),
@@ -667,14 +667,14 @@ static irqreturn_t ad7150_event_handler(int irq, void *private)
if ((int_status & AD7150_STATUS_OUT2) && !(chip->old_state & AD7150_STATUS_OUT2))
iio_push_event(indio_dev, 0,
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
+ IIO_UNMOD_EVENT_CODE(IIO_IN,
1,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_RISING),
timestamp);
else if ((!(int_status & AD7150_STATUS_OUT2)) && (chip->old_state & AD7150_STATUS_OUT2))
iio_push_event(indio_dev, 0,
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
+ IIO_UNMOD_EVENT_CODE(IIO_IN,
1,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_FALLING),
diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c
index 0c84217..3fa4bb3 100644
--- a/drivers/staging/iio/adc/ad7816.c
+++ b/drivers/staging/iio/adc/ad7816.c
@@ -246,7 +246,7 @@ static const struct attribute_group ad7816_attribute_group = {
* temperature bound events
*/
-#define IIO_EVENT_CODE_AD7816_OTI IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_TEMP, \
+#define IIO_EVENT_CODE_AD7816_OTI IIO_UNMOD_EVENT_CODE(IIO_TEMP, \
0, \
IIO_EV_TYPE_THRESH, \
IIO_EV_DIR_FALLING)
diff --git a/drivers/staging/iio/adc/ad799x_core.c b/drivers/staging/iio/adc/ad799x_core.c
index d42d61d..2438ed5 100644
--- a/drivers/staging/iio/adc/ad799x_core.c
+++ b/drivers/staging/iio/adc/ad799x_core.c
@@ -335,11 +335,11 @@ static irqreturn_t ad799x_event_handler(int irq, void *private)
if (status & (1 << i))
iio_push_event(indio_dev, 0,
i & 0x1 ?
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
+ IIO_UNMOD_EVENT_CODE(IIO_IN,
(i >> 1),
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_RISING) :
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
+ IIO_UNMOD_EVENT_CODE(IIO_IN,
(i >> 1),
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_FALLING),
diff --git a/drivers/staging/iio/adc/adt75.c b/drivers/staging/iio/adc/adt75.c
index 38f141d..fc31cac 100644
--- a/drivers/staging/iio/adc/adt75.c
+++ b/drivers/staging/iio/adc/adt75.c
@@ -257,7 +257,7 @@ static const struct attribute_group adt75_attribute_group = {
* temperature bound events
*/
-#define IIO_EVENT_CODE_ADT75_OTI IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_TEMP, \
+#define IIO_EVENT_CODE_ADT75_OTI IIO_UNMOD_EVENT_CODE(IIO_TEMP, \
0, \
IIO_EV_TYPE_THRESH, \
IIO_EV_DIR_FALLING)
diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
index 9525aec..6896b4c 100644
--- a/drivers/staging/iio/adc/max1363_core.c
+++ b/drivers/staging/iio/adc/max1363_core.c
@@ -591,22 +591,14 @@ static int max1363_write_thresh(struct iio_dev *indio_dev,
}
static const int max1363_event_codes[] = {
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 0,
- IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 1,
- IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 2,
- IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 3,
- IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 0,
- IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 1,
- IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 2,
- IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 3,
- IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
+ IIO_UNMOD_EVENT_CODE(IIO_IN, 0, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
+ IIO_UNMOD_EVENT_CODE(IIO_IN, 1, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
+ IIO_UNMOD_EVENT_CODE(IIO_IN, 2, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
+ IIO_UNMOD_EVENT_CODE(IIO_IN, 3, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
+ IIO_UNMOD_EVENT_CODE(IIO_IN, 0, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
+ IIO_UNMOD_EVENT_CODE(IIO_IN, 1, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
+ IIO_UNMOD_EVENT_CODE(IIO_IN, 2, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
+ IIO_UNMOD_EVENT_CODE(IIO_IN, 3, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
};
static irqreturn_t max1363_event_handler(int irq, void *private)
diff --git a/drivers/staging/iio/dac/ad5504.c b/drivers/staging/iio/dac/ad5504.c
index 1915f45..716a3d2 100644
--- a/drivers/staging/iio/dac/ad5504.c
+++ b/drivers/staging/iio/dac/ad5504.c
@@ -251,7 +251,7 @@ static struct attribute_group ad5504_ev_attribute_group = {
static irqreturn_t ad5504_event_handler(int irq, void *private)
{
iio_push_event(private, 0,
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_TEMP,
+ IIO_UNMOD_EVENT_CODE(IIO_TEMP,
0,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_RISING),
diff --git a/drivers/staging/iio/iio.h b/drivers/staging/iio/iio.h
index 61cfb26..16abb37 100644
--- a/drivers/staging/iio/iio.h
+++ b/drivers/staging/iio/iio.h
@@ -23,8 +23,6 @@
* Currently assumes nano seconds.
*/
-/* naughty temporary hack to match these against the event version
- - need to flattern these together */
enum iio_chan_type {
/* real channel types */
IIO_IN,
diff --git a/drivers/staging/iio/light/tsl2563.c b/drivers/staging/iio/light/tsl2563.c
index f25243b..7c4cc9e 100644
--- a/drivers/staging/iio/light/tsl2563.c
+++ b/drivers/staging/iio/light/tsl2563.c
@@ -596,7 +596,7 @@ static irqreturn_t tsl2563_event_handler(int irq, void *private)
struct tsl2563_chip *chip = iio_priv(dev_info);
iio_push_event(dev_info, 0,
- IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_LIGHT,
+ IIO_UNMOD_EVENT_CODE(IIO_LIGHT,
0,
IIO_EV_TYPE_THRESH,
IIO_EV_DIR_EITHER),
diff --git a/drivers/staging/iio/sysfs.h b/drivers/staging/iio/sysfs.h
index fed7b11..8277950 100644
--- a/drivers/staging/iio/sysfs.h
+++ b/drivers/staging/iio/sysfs.h
@@ -120,28 +120,6 @@ struct iio_const_attr {
#define IIO_CONST_ATTR_TEMP_SCALE(_string) \
IIO_CONST_ATTR(temp_scale, _string)
-/* must match our channel defs */
-#define IIO_EV_CLASS_IN IIO_IN
-#define IIO_EV_CLASS_IN_DIFF IIO_IN_DIFF
-#define IIO_EV_CLASS_ACCEL IIO_ACCEL
-#define IIO_EV_CLASS_GYRO IIO_GYRO
-#define IIO_EV_CLASS_MAGN IIO_MAGN
-#define IIO_EV_CLASS_LIGHT IIO_LIGHT
-#define IIO_EV_CLASS_PROXIMITY IIO_PROXIMITY
-#define IIO_EV_CLASS_TEMP IIO_TEMP
-
-#define IIO_EV_MOD_X IIO_MOD_X
-#define IIO_EV_MOD_Y IIO_MOD_Y
-#define IIO_EV_MOD_Z IIO_MOD_Z
-#define IIO_EV_MOD_X_AND_Y IIO_MOD_X_AND_Y
-#define IIO_EV_MOD_X_ANX_Z IIO_MOD_X_AND_Z
-#define IIO_EV_MOD_Y_AND_Z IIO_MOD_Y_AND_Z
-#define IIO_EV_MOD_X_AND_Y_AND_Z IIO_MOD_X_AND_Y_AND_Z
-#define IIO_EV_MOD_X_OR_Y IIO_MOD_X_OR_Y
-#define IIO_EV_MOD_X_OR_Z IIO_MOD_X_OR_Z
-#define IIO_EV_MOD_Y_OR_Z IIO_MOD_Y_OR_Z
-#define IIO_EV_MOD_X_OR_Y_OR_Z IIO_MOD_X_OR_Y_OR_Z
-
#define IIO_EV_TYPE_THRESH 0
#define IIO_EV_TYPE_MAG 1
#define IIO_EV_TYPE_ROC 2
@@ -166,10 +144,6 @@ struct iio_const_attr {
#define IIO_UNMOD_EVENT_CODE(channelclass, number, type, direction) \
IIO_EVENT_CODE(channelclass, 0, number, 0, type, direction)
-
-#define IIO_BUFFER_EVENT_CODE(code) \
- (IIO_EV_CLASS_BUFFER | (code << 8))
-
#define IIO_EVENT_CODE_EXTRACT_DIR(mask) ((mask >> 24) & 0xf)
/* Event code number extraction depends on which type of event we have.
--
1.7.3.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 6/8] staging:iio:events: use IIO_<TYPE> and IIO_MOD_<> instead of IIO_EV_CLASS_<TYPE> etc
2011-07-25 13:10 ` [PATCH 6/8] staging:iio:events: use IIO_<TYPE> and IIO_MOD_<> instead of IIO_EV_CLASS_<TYPE> etc Jonathan Cameron
@ 2011-07-26 7:27 ` Michael Hennerich
0 siblings, 0 replies; 10+ messages in thread
From: Michael Hennerich @ 2011-07-26 7:27 UTC (permalink / raw)
To: Jonathan Cameron; +Cc: linux-iio, device-drivers-devel
On 07/25/2011 03:10 PM, Jonathan Cameron wrote:
> The original definitions were duplicated to reduce tree churn during introduction of chan_spec
> registration. Now there is no point in maintaining the two sets of definitions.
>
> Signed-off-by: Jonathan Cameron<jic23@cam.ac.uk>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
> ---
> drivers/staging/iio/accel/lis3l02dq_core.c | 24 ++++++++++++------------
> drivers/staging/iio/accel/sca3000_core.c | 16 ++++++++--------
> drivers/staging/iio/adc/ad7150.c | 8 ++++----
> drivers/staging/iio/adc/ad7816.c | 2 +-
> drivers/staging/iio/adc/ad799x_core.c | 4 ++--
> drivers/staging/iio/adc/adt75.c | 2 +-
> drivers/staging/iio/adc/max1363_core.c | 24 ++++++++----------------
> drivers/staging/iio/dac/ad5504.c | 2 +-
> drivers/staging/iio/iio.h | 2 --
> drivers/staging/iio/light/tsl2563.c | 2 +-
> drivers/staging/iio/sysfs.h | 26 --------------------------
> 11 files changed, 38 insertions(+), 74 deletions(-)
>
> diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c
> index 83ec286..7f946aa 100644
> --- a/drivers/staging/iio/accel/lis3l02dq_core.c
> +++ b/drivers/staging/iio/accel/lis3l02dq_core.c
> @@ -452,54 +452,54 @@ static irqreturn_t lis3l02dq_event_handler(int irq, void *private)
>
> if (t& LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_Z_HIGH)
> iio_push_event(indio_dev, 0,
> - IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
> + IIO_MOD_EVENT_CODE(IIO_ACCEL,
> 0,
> - IIO_EV_MOD_Z,
> + IIO_MOD_Z,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_RISING),
> timestamp);
>
> if (t& LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_Z_LOW)
> iio_push_event(indio_dev, 0,
> - IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
> + IIO_MOD_EVENT_CODE(IIO_ACCEL,
> 0,
> - IIO_EV_MOD_Z,
> + IIO_MOD_Z,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_FALLING),
> timestamp);
>
> if (t& LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_Y_HIGH)
> iio_push_event(indio_dev, 0,
> - IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
> + IIO_MOD_EVENT_CODE(IIO_ACCEL,
> 0,
> - IIO_EV_MOD_Y,
> + IIO_MOD_Y,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_RISING),
> timestamp);
>
> if (t& LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_Y_LOW)
> iio_push_event(indio_dev, 0,
> - IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
> + IIO_MOD_EVENT_CODE(IIO_ACCEL,
> 0,
> - IIO_EV_MOD_Y,
> + IIO_MOD_Y,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_FALLING),
> timestamp);
>
> if (t& LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_X_HIGH)
> iio_push_event(indio_dev, 0,
> - IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
> + IIO_MOD_EVENT_CODE(IIO_ACCEL,
> 0,
> - IIO_EV_MOD_X,
> + IIO_MOD_X,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_RISING),
> timestamp);
>
> if (t& LIS3L02DQ_REG_WAKE_UP_SRC_INTERRUPT_X_LOW)
> iio_push_event(indio_dev, 0,
> - IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
> + IIO_MOD_EVENT_CODE(IIO_ACCEL,
> 0,
> - IIO_EV_MOD_X,
> + IIO_MOD_X,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_FALLING),
> timestamp);
> diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c
> index 22c38c3..d5684fc 100644
> --- a/drivers/staging/iio/accel/sca3000_core.c
> +++ b/drivers/staging/iio/accel/sca3000_core.c
> @@ -815,36 +815,36 @@ static irqreturn_t sca3000_event_handler(int irq, void *private)
>
> if (val& SCA3000_INT_STATUS_FREE_FALL)
> iio_push_event(indio_dev, 0,
> - IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
> + IIO_MOD_EVENT_CODE(IIO_ACCEL,
> 0,
> - IIO_EV_MOD_X_AND_Y_AND_Z,
> + IIO_MOD_X_AND_Y_AND_Z,
> IIO_EV_TYPE_MAG,
> IIO_EV_DIR_FALLING),
> last_timestamp);
>
> if (val& SCA3000_INT_STATUS_Y_TRIGGER)
> iio_push_event(indio_dev, 0,
> - IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
> + IIO_MOD_EVENT_CODE(IIO_ACCEL,
> 0,
> - IIO_EV_MOD_Y,
> + IIO_MOD_Y,
> IIO_EV_TYPE_MAG,
> IIO_EV_DIR_RISING),
> last_timestamp);
>
> if (val& SCA3000_INT_STATUS_X_TRIGGER)
> iio_push_event(indio_dev, 0,
> - IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
> + IIO_MOD_EVENT_CODE(IIO_ACCEL,
> 0,
> - IIO_EV_MOD_X,
> + IIO_MOD_X,
> IIO_EV_TYPE_MAG,
> IIO_EV_DIR_RISING),
> last_timestamp);
>
> if (val& SCA3000_INT_STATUS_Z_TRIGGER)
> iio_push_event(indio_dev, 0,
> - IIO_MOD_EVENT_CODE(IIO_EV_CLASS_ACCEL,
> + IIO_MOD_EVENT_CODE(IIO_ACCEL,
> 0,
> - IIO_EV_MOD_Z,
> + IIO_MOD_Z,
> IIO_EV_TYPE_MAG,
> IIO_EV_DIR_RISING),
> last_timestamp);
> diff --git a/drivers/staging/iio/adc/ad7150.c b/drivers/staging/iio/adc/ad7150.c
> index 04017ef..67989e0 100644
> --- a/drivers/staging/iio/adc/ad7150.c
> +++ b/drivers/staging/iio/adc/ad7150.c
> @@ -652,14 +652,14 @@ static irqreturn_t ad7150_event_handler(int irq, void *private)
>
> if ((int_status& AD7150_STATUS_OUT1)&& !(chip->old_state& AD7150_STATUS_OUT1))
> iio_push_event(indio_dev, 0,
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
> + IIO_UNMOD_EVENT_CODE(IIO_IN,
> 0,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_RISING),
> timestamp);
> else if ((!(int_status& AD7150_STATUS_OUT1))&& (chip->old_state& AD7150_STATUS_OUT1))
> iio_push_event(indio_dev, 0,
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
> + IIO_UNMOD_EVENT_CODE(IIO_IN,
> 0,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_FALLING),
> @@ -667,14 +667,14 @@ static irqreturn_t ad7150_event_handler(int irq, void *private)
>
> if ((int_status& AD7150_STATUS_OUT2)&& !(chip->old_state& AD7150_STATUS_OUT2))
> iio_push_event(indio_dev, 0,
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
> + IIO_UNMOD_EVENT_CODE(IIO_IN,
> 1,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_RISING),
> timestamp);
> else if ((!(int_status& AD7150_STATUS_OUT2))&& (chip->old_state& AD7150_STATUS_OUT2))
> iio_push_event(indio_dev, 0,
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
> + IIO_UNMOD_EVENT_CODE(IIO_IN,
> 1,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_FALLING),
> diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c
> index 0c84217..3fa4bb3 100644
> --- a/drivers/staging/iio/adc/ad7816.c
> +++ b/drivers/staging/iio/adc/ad7816.c
> @@ -246,7 +246,7 @@ static const struct attribute_group ad7816_attribute_group = {
> * temperature bound events
> */
>
> -#define IIO_EVENT_CODE_AD7816_OTI IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_TEMP, \
> +#define IIO_EVENT_CODE_AD7816_OTI IIO_UNMOD_EVENT_CODE(IIO_TEMP, \
> 0, \
> IIO_EV_TYPE_THRESH, \
> IIO_EV_DIR_FALLING)
> diff --git a/drivers/staging/iio/adc/ad799x_core.c b/drivers/staging/iio/adc/ad799x_core.c
> index d42d61d..2438ed5 100644
> --- a/drivers/staging/iio/adc/ad799x_core.c
> +++ b/drivers/staging/iio/adc/ad799x_core.c
> @@ -335,11 +335,11 @@ static irqreturn_t ad799x_event_handler(int irq, void *private)
> if (status& (1<< i))
> iio_push_event(indio_dev, 0,
> i& 0x1 ?
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
> + IIO_UNMOD_EVENT_CODE(IIO_IN,
> (i>> 1),
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_RISING) :
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN,
> + IIO_UNMOD_EVENT_CODE(IIO_IN,
> (i>> 1),
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_FALLING),
> diff --git a/drivers/staging/iio/adc/adt75.c b/drivers/staging/iio/adc/adt75.c
> index 38f141d..fc31cac 100644
> --- a/drivers/staging/iio/adc/adt75.c
> +++ b/drivers/staging/iio/adc/adt75.c
> @@ -257,7 +257,7 @@ static const struct attribute_group adt75_attribute_group = {
> * temperature bound events
> */
>
> -#define IIO_EVENT_CODE_ADT75_OTI IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_TEMP, \
> +#define IIO_EVENT_CODE_ADT75_OTI IIO_UNMOD_EVENT_CODE(IIO_TEMP, \
> 0, \
> IIO_EV_TYPE_THRESH, \
> IIO_EV_DIR_FALLING)
> diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
> index 9525aec..6896b4c 100644
> --- a/drivers/staging/iio/adc/max1363_core.c
> +++ b/drivers/staging/iio/adc/max1363_core.c
> @@ -591,22 +591,14 @@ static int max1363_write_thresh(struct iio_dev *indio_dev,
> }
>
> static const int max1363_event_codes[] = {
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 0,
> - IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 1,
> - IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 2,
> - IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 3,
> - IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 0,
> - IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 1,
> - IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 2,
> - IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_IN, 3,
> - IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
> + IIO_UNMOD_EVENT_CODE(IIO_IN, 0, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
> + IIO_UNMOD_EVENT_CODE(IIO_IN, 1, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
> + IIO_UNMOD_EVENT_CODE(IIO_IN, 2, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
> + IIO_UNMOD_EVENT_CODE(IIO_IN, 3, IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING),
> + IIO_UNMOD_EVENT_CODE(IIO_IN, 0, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
> + IIO_UNMOD_EVENT_CODE(IIO_IN, 1, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
> + IIO_UNMOD_EVENT_CODE(IIO_IN, 2, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
> + IIO_UNMOD_EVENT_CODE(IIO_IN, 3, IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING),
> };
>
> static irqreturn_t max1363_event_handler(int irq, void *private)
> diff --git a/drivers/staging/iio/dac/ad5504.c b/drivers/staging/iio/dac/ad5504.c
> index 1915f45..716a3d2 100644
> --- a/drivers/staging/iio/dac/ad5504.c
> +++ b/drivers/staging/iio/dac/ad5504.c
> @@ -251,7 +251,7 @@ static struct attribute_group ad5504_ev_attribute_group = {
> static irqreturn_t ad5504_event_handler(int irq, void *private)
> {
> iio_push_event(private, 0,
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_TEMP,
> + IIO_UNMOD_EVENT_CODE(IIO_TEMP,
> 0,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_RISING),
> diff --git a/drivers/staging/iio/iio.h b/drivers/staging/iio/iio.h
> index 61cfb26..16abb37 100644
> --- a/drivers/staging/iio/iio.h
> +++ b/drivers/staging/iio/iio.h
> @@ -23,8 +23,6 @@
> * Currently assumes nano seconds.
> */
>
> -/* naughty temporary hack to match these against the event version
> - - need to flattern these together */
> enum iio_chan_type {
> /* real channel types */
> IIO_IN,
> diff --git a/drivers/staging/iio/light/tsl2563.c b/drivers/staging/iio/light/tsl2563.c
> index f25243b..7c4cc9e 100644
> --- a/drivers/staging/iio/light/tsl2563.c
> +++ b/drivers/staging/iio/light/tsl2563.c
> @@ -596,7 +596,7 @@ static irqreturn_t tsl2563_event_handler(int irq, void *private)
> struct tsl2563_chip *chip = iio_priv(dev_info);
>
> iio_push_event(dev_info, 0,
> - IIO_UNMOD_EVENT_CODE(IIO_EV_CLASS_LIGHT,
> + IIO_UNMOD_EVENT_CODE(IIO_LIGHT,
> 0,
> IIO_EV_TYPE_THRESH,
> IIO_EV_DIR_EITHER),
> diff --git a/drivers/staging/iio/sysfs.h b/drivers/staging/iio/sysfs.h
> index fed7b11..8277950 100644
> --- a/drivers/staging/iio/sysfs.h
> +++ b/drivers/staging/iio/sysfs.h
> @@ -120,28 +120,6 @@ struct iio_const_attr {
> #define IIO_CONST_ATTR_TEMP_SCALE(_string) \
> IIO_CONST_ATTR(temp_scale, _string)
>
> -/* must match our channel defs */
> -#define IIO_EV_CLASS_IN IIO_IN
> -#define IIO_EV_CLASS_IN_DIFF IIO_IN_DIFF
> -#define IIO_EV_CLASS_ACCEL IIO_ACCEL
> -#define IIO_EV_CLASS_GYRO IIO_GYRO
> -#define IIO_EV_CLASS_MAGN IIO_MAGN
> -#define IIO_EV_CLASS_LIGHT IIO_LIGHT
> -#define IIO_EV_CLASS_PROXIMITY IIO_PROXIMITY
> -#define IIO_EV_CLASS_TEMP IIO_TEMP
> -
> -#define IIO_EV_MOD_X IIO_MOD_X
> -#define IIO_EV_MOD_Y IIO_MOD_Y
> -#define IIO_EV_MOD_Z IIO_MOD_Z
> -#define IIO_EV_MOD_X_AND_Y IIO_MOD_X_AND_Y
> -#define IIO_EV_MOD_X_ANX_Z IIO_MOD_X_AND_Z
> -#define IIO_EV_MOD_Y_AND_Z IIO_MOD_Y_AND_Z
> -#define IIO_EV_MOD_X_AND_Y_AND_Z IIO_MOD_X_AND_Y_AND_Z
> -#define IIO_EV_MOD_X_OR_Y IIO_MOD_X_OR_Y
> -#define IIO_EV_MOD_X_OR_Z IIO_MOD_X_OR_Z
> -#define IIO_EV_MOD_Y_OR_Z IIO_MOD_Y_OR_Z
> -#define IIO_EV_MOD_X_OR_Y_OR_Z IIO_MOD_X_OR_Y_OR_Z
> -
> #define IIO_EV_TYPE_THRESH 0
> #define IIO_EV_TYPE_MAG 1
> #define IIO_EV_TYPE_ROC 2
> @@ -166,10 +144,6 @@ struct iio_const_attr {
> #define IIO_UNMOD_EVENT_CODE(channelclass, number, type, direction) \
> IIO_EVENT_CODE(channelclass, 0, number, 0, type, direction)
>
> -
> -#define IIO_BUFFER_EVENT_CODE(code) \
> - (IIO_EV_CLASS_BUFFER | (code<< 8))
> -
> #define IIO_EVENT_CODE_EXTRACT_DIR(mask) ((mask>> 24)& 0xf)
>
> /* Event code number extraction depends on which type of event we have.
> --
> 1.7.3.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Greetings,
Michael
--
Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen
Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368;
Geschaeftsfuehrer:Dr.Carsten Suckrow, Thomas Wessel, William A. Martin,
Margaret Seif
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 7/8] staging:iio:trigger push functions that don't need to be generaly available down into the core.
2011-07-25 13:10 [PATCH 0/2] blue part 4: IIO general cleanup Jonathan Cameron
` (5 preceding siblings ...)
2011-07-25 13:10 ` [PATCH 6/8] staging:iio:events: use IIO_<TYPE> and IIO_MOD_<> instead of IIO_EV_CLASS_<TYPE> etc Jonathan Cameron
@ 2011-07-25 13:10 ` Jonathan Cameron
2011-07-25 13:10 ` [PATCH 8/8] staging:iio:kfifo buffer - push structure definition down into implementation Jonathan Cameron
7 siblings, 0 replies; 10+ messages in thread
From: Jonathan Cameron @ 2011-07-25 13:10 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
drivers/staging/iio/industrialio-trigger.c | 30 +++++++++++++++++----
drivers/staging/iio/trigger.h | 39 ----------------------------
2 files changed, 24 insertions(+), 45 deletions(-)
diff --git a/drivers/staging/iio/industrialio-trigger.c b/drivers/staging/iio/industrialio-trigger.c
index 72ea106..f1ece86 100644
--- a/drivers/staging/iio/industrialio-trigger.c
+++ b/drivers/staging/iio/industrialio-trigger.c
@@ -215,6 +215,26 @@ void iio_trigger_notify_done(struct iio_trigger *trig)
EXPORT_SYMBOL(iio_trigger_notify_done);
/* Trigger Consumer related functions */
+static int iio_trigger_get_irq(struct iio_trigger *trig)
+{
+ int ret;
+ mutex_lock(&trig->pool_lock);
+ ret = bitmap_find_free_region(trig->pool,
+ CONFIG_IIO_CONSUMERS_PER_TRIGGER,
+ ilog2(1));
+ mutex_unlock(&trig->pool_lock);
+ if (ret >= 0)
+ ret += trig->subirq_base;
+
+ return ret;
+}
+
+static void iio_trigger_put_irq(struct iio_trigger *trig, int irq)
+{
+ mutex_lock(&trig->pool_lock);
+ clear_bit(irq - trig->subirq_base, trig->pool);
+ mutex_unlock(&trig->pool_lock);
+}
/* Complexity in here. With certain triggers (datardy) an acknowledgement
* may be needed if the pollfuncs do not include the data read for the
@@ -223,8 +243,8 @@ EXPORT_SYMBOL(iio_trigger_notify_done);
* the relevant function is in there may be the best option.
*/
/* Worth protecting against double additions?*/
-int iio_trigger_attach_poll_func(struct iio_trigger *trig,
- struct iio_poll_func *pf)
+static int iio_trigger_attach_poll_func(struct iio_trigger *trig,
+ struct iio_poll_func *pf)
{
int ret = 0;
bool notinuse
@@ -241,10 +261,9 @@ int iio_trigger_attach_poll_func(struct iio_trigger *trig,
return ret;
}
-EXPORT_SYMBOL(iio_trigger_attach_poll_func);
-int iio_trigger_dettach_poll_func(struct iio_trigger *trig,
- struct iio_poll_func *pf)
+static int iio_trigger_dettach_poll_func(struct iio_trigger *trig,
+ struct iio_poll_func *pf)
{
int ret = 0;
bool no_other_users
@@ -263,7 +282,6 @@ int iio_trigger_dettach_poll_func(struct iio_trigger *trig,
error_ret:
return ret;
}
-EXPORT_SYMBOL(iio_trigger_dettach_poll_func);
irqreturn_t iio_pollfunc_store_time(int irq, void *p)
{
diff --git a/drivers/staging/iio/trigger.h b/drivers/staging/iio/trigger.h
index 56f8baf..722fc33 100644
--- a/drivers/staging/iio/trigger.h
+++ b/drivers/staging/iio/trigger.h
@@ -104,23 +104,6 @@ int iio_trigger_register(struct iio_trigger *trig_info);
void iio_trigger_unregister(struct iio_trigger *trig_info);
/**
- * iio_trigger_attach_poll_func() - add a function pair to be run on trigger
- * @trig: trigger to which the function pair are being added
- * @pf: poll function pair
- **/
-int iio_trigger_attach_poll_func(struct iio_trigger *trig,
- struct iio_poll_func *pf);
-
-/**
- * iio_trigger_dettach_poll_func() - remove function pair from those to be
- * run on trigger
- * @trig: trigger from which the function is being removed
- * @pf: poll function pair
- **/
-int iio_trigger_dettach_poll_func(struct iio_trigger *trig,
- struct iio_poll_func *pf);
-
-/**
* iio_trigger_poll() - called on a trigger occurring
* @trig: trigger which occurred
*
@@ -129,30 +112,8 @@ int iio_trigger_dettach_poll_func(struct iio_trigger *trig,
void iio_trigger_poll(struct iio_trigger *trig, s64 time);
void iio_trigger_poll_chained(struct iio_trigger *trig, s64 time);
-
irqreturn_t iio_trigger_generic_data_rdy_poll(int irq, void *private);
-static inline int iio_trigger_get_irq(struct iio_trigger *trig)
-{
- int ret;
- mutex_lock(&trig->pool_lock);
- ret = bitmap_find_free_region(trig->pool,
- CONFIG_IIO_CONSUMERS_PER_TRIGGER,
- ilog2(1));
- mutex_unlock(&trig->pool_lock);
- if (ret >= 0)
- ret += trig->subirq_base;
-
- return ret;
-};
-
-static inline void iio_trigger_put_irq(struct iio_trigger *trig, int irq)
-{
- mutex_lock(&trig->pool_lock);
- clear_bit(irq - trig->subirq_base, trig->pool);
- mutex_unlock(&trig->pool_lock);
-};
-
struct iio_trigger *iio_allocate_trigger(const char *fmt, ...)
__attribute__((format(printf, 1, 2)));
void iio_free_trigger(struct iio_trigger *trig);
--
1.7.3.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 8/8] staging:iio:kfifo buffer - push structure definition down into implementation.
2011-07-25 13:10 [PATCH 0/2] blue part 4: IIO general cleanup Jonathan Cameron
` (6 preceding siblings ...)
2011-07-25 13:10 ` [PATCH 7/8] staging:iio:trigger push functions that don't need to be generaly available down into the core Jonathan Cameron
@ 2011-07-25 13:10 ` Jonathan Cameron
7 siblings, 0 replies; 10+ messages in thread
From: Jonathan Cameron @ 2011-07-25 13:10 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron
Nothing other than the implementation needs to know about this.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
drivers/staging/iio/kfifo_buf.c | 8 ++++++++
drivers/staging/iio/kfifo_buf.h | 8 --------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/staging/iio/kfifo_buf.c b/drivers/staging/iio/kfifo_buf.c
index 6002368..3c9516b 100644
--- a/drivers/staging/iio/kfifo_buf.c
+++ b/drivers/staging/iio/kfifo_buf.c
@@ -8,6 +8,14 @@
#include "kfifo_buf.h"
+struct iio_kfifo {
+ struct iio_ring_buffer ring;
+ struct kfifo kf;
+ int use_count;
+ int update_needed;
+ struct mutex use_lock;
+};
+
#define iio_to_kfifo(r) container_of(r, struct iio_kfifo, ring)
static inline int __iio_allocate_kfifo(struct iio_kfifo *buf,
diff --git a/drivers/staging/iio/kfifo_buf.h b/drivers/staging/iio/kfifo_buf.h
index aac3053..fb48523 100644
--- a/drivers/staging/iio/kfifo_buf.h
+++ b/drivers/staging/iio/kfifo_buf.h
@@ -3,14 +3,6 @@
#include "iio.h"
#include "ring_generic.h"
-struct iio_kfifo {
- struct iio_ring_buffer ring;
- struct kfifo kf;
- int use_count;
- int update_needed;
- struct mutex use_lock;
-};
-
extern const struct iio_ring_access_funcs kfifo_access_funcs;
struct iio_ring_buffer *iio_kfifo_allocate(struct iio_dev *indio_dev);
--
1.7.3.4
^ permalink raw reply related [flat|nested] 10+ messages in thread