Commit 208b813c authored by Jonathan Cameron's avatar Jonathan Cameron Committed by Greg Kroah-Hartman

staging:iio:trigger push functions that don't need to be generaly available down into the core.

Signed-off-by: default avatarJonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent cb6c89a0
...@@ -215,6 +215,26 @@ void iio_trigger_notify_done(struct iio_trigger *trig) ...@@ -215,6 +215,26 @@ void iio_trigger_notify_done(struct iio_trigger *trig)
EXPORT_SYMBOL(iio_trigger_notify_done); EXPORT_SYMBOL(iio_trigger_notify_done);
/* Trigger Consumer related functions */ /* 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 /* Complexity in here. With certain triggers (datardy) an acknowledgement
* may be needed if the pollfuncs do not include the data read for the * may be needed if the pollfuncs do not include the data read for the
...@@ -223,7 +243,7 @@ EXPORT_SYMBOL(iio_trigger_notify_done); ...@@ -223,7 +243,7 @@ EXPORT_SYMBOL(iio_trigger_notify_done);
* the relevant function is in there may be the best option. * the relevant function is in there may be the best option.
*/ */
/* Worth protecting against double additions?*/ /* Worth protecting against double additions?*/
int iio_trigger_attach_poll_func(struct iio_trigger *trig, static int iio_trigger_attach_poll_func(struct iio_trigger *trig,
struct iio_poll_func *pf) struct iio_poll_func *pf)
{ {
int ret = 0; int ret = 0;
...@@ -241,9 +261,8 @@ int iio_trigger_attach_poll_func(struct iio_trigger *trig, ...@@ -241,9 +261,8 @@ int iio_trigger_attach_poll_func(struct iio_trigger *trig,
return ret; return ret;
} }
EXPORT_SYMBOL(iio_trigger_attach_poll_func);
int iio_trigger_dettach_poll_func(struct iio_trigger *trig, static int iio_trigger_dettach_poll_func(struct iio_trigger *trig,
struct iio_poll_func *pf) struct iio_poll_func *pf)
{ {
int ret = 0; int ret = 0;
...@@ -263,7 +282,6 @@ int iio_trigger_dettach_poll_func(struct iio_trigger *trig, ...@@ -263,7 +282,6 @@ int iio_trigger_dettach_poll_func(struct iio_trigger *trig,
error_ret: error_ret:
return ret; return ret;
} }
EXPORT_SYMBOL(iio_trigger_dettach_poll_func);
irqreturn_t iio_pollfunc_store_time(int irq, void *p) irqreturn_t iio_pollfunc_store_time(int irq, void *p)
{ {
......
...@@ -103,23 +103,6 @@ int iio_trigger_register(struct iio_trigger *trig_info); ...@@ -103,23 +103,6 @@ int iio_trigger_register(struct iio_trigger *trig_info);
**/ **/
void iio_trigger_unregister(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 * iio_trigger_poll() - called on a trigger occurring
* @trig: trigger which occurred * @trig: trigger which occurred
...@@ -129,30 +112,8 @@ int iio_trigger_dettach_poll_func(struct iio_trigger *trig, ...@@ -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(struct iio_trigger *trig, s64 time);
void iio_trigger_poll_chained(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); 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, ...) struct iio_trigger *iio_allocate_trigger(const char *fmt, ...)
__attribute__((format(printf, 1, 2))); __attribute__((format(printf, 1, 2)));
void iio_free_trigger(struct iio_trigger *trig); void iio_free_trigger(struct iio_trigger *trig);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment