Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 205886
b: refs/heads/master
c: c3db00c
h: refs/heads/master
v: v3
  • Loading branch information
Jonathan Cameron authored and Greg Kroah-Hartman committed Jul 22, 2010
1 parent 982d9ab commit bc32ad5
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 159 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 15744090c5ad3ed404a541bdec6f4f9ae1996fc9
refs/heads/master: c3db00cc80cf01f9a2033c3f3eb03345d0024761
20 changes: 2 additions & 18 deletions trunk/drivers/staging/iio/accel/adis16209_ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -186,22 +186,6 @@ static int adis16209_data_rdy_ring_preenable(struct iio_dev *indio_dev)
return 0;
}

static int adis16209_data_rdy_ring_postenable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_attach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

static int adis16209_data_rdy_ring_predisable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_dettach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

void adis16209_unconfigure_ring(struct iio_dev *indio_dev)
{
kfree(indio_dev->pollfunc);
Expand Down Expand Up @@ -237,8 +221,8 @@ int adis16209_configure_ring(struct iio_dev *indio_dev)
/* Effectively select the ring buffer implementation */
iio_ring_sw_register_funcs(&ring->access);
ring->preenable = &adis16209_data_rdy_ring_preenable;
ring->postenable = &adis16209_data_rdy_ring_postenable;
ring->predisable = &adis16209_data_rdy_ring_predisable;
ring->postenable = &iio_triggered_ring_postenable;
ring->predisable = &iio_triggered_ring_predisable;
ring->owner = THIS_MODULE;

ret = iio_alloc_pollfunc(indio_dev, NULL, &adis16209_poll_func_th);
Expand Down
20 changes: 2 additions & 18 deletions trunk/drivers/staging/iio/accel/adis16240_ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,22 +176,6 @@ static int adis16240_data_rdy_ring_preenable(struct iio_dev *indio_dev)
return 0;
}

static int adis16240_data_rdy_ring_postenable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_attach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

static int adis16240_data_rdy_ring_predisable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_dettach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

void adis16240_unconfigure_ring(struct iio_dev *indio_dev)
{
kfree(indio_dev->pollfunc);
Expand Down Expand Up @@ -225,8 +209,8 @@ int adis16240_configure_ring(struct iio_dev *indio_dev)
/* Effectively select the ring buffer implementation */
iio_ring_sw_register_funcs(&ring->access);
ring->preenable = &adis16240_data_rdy_ring_preenable;
ring->postenable = &adis16240_data_rdy_ring_postenable;
ring->predisable = &adis16240_data_rdy_ring_predisable;
ring->postenable = &iio_triggered_ring_postenable;
ring->predisable = &iio_triggered_ring_predisable;
ring->owner = THIS_MODULE;

ret = iio_alloc_pollfunc(indio_dev, NULL, &adis16240_poll_func_th);
Expand Down
21 changes: 2 additions & 19 deletions trunk/drivers/staging/iio/accel/lis3l02dq_ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -339,23 +339,6 @@ static int lis3l02dq_data_rdy_ring_preenable(struct iio_dev *indio_dev)
return 0;
}

static int lis3l02dq_data_rdy_ring_postenable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_attach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

static int lis3l02dq_data_rdy_ring_predisable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_dettach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}


/* Caller responsible for locking as necessary. */
static int
__lis3l02dq_write_data_ready_config(struct device *dev,
Expand Down Expand Up @@ -562,8 +545,8 @@ int lis3l02dq_configure_ring(struct iio_dev *indio_dev)
/* Effectively select the ring buffer implementation */
iio_ring_sw_register_funcs(&ring->access);
ring->preenable = &lis3l02dq_data_rdy_ring_preenable;
ring->postenable = &lis3l02dq_data_rdy_ring_postenable;
ring->predisable = &lis3l02dq_data_rdy_ring_predisable;
ring->postenable = &iio_triggered_ring_postenable;
ring->predisable = &iio_triggered_ring_predisable;
ring->owner = THIS_MODULE;

ret = iio_alloc_pollfunc(indio_dev, NULL, &lis3l02dq_poll_func_th);
Expand Down
33 changes: 2 additions & 31 deletions trunk/drivers/staging/iio/adc/max1363_ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,35 +105,6 @@ static int max1363_ring_preenable(struct iio_dev *indio_dev)
return 0;
}

/**
* max1363_ring_postenable() - typical ring post enable
*
* Only not moved into the core for the hardware ring buffer cases
* that are more sophisticated.
**/
static int max1363_ring_postenable(struct iio_dev *indio_dev)
{
if (indio_dev->trig == NULL)
return 0;
return iio_trigger_attach_poll_func(indio_dev->trig,
indio_dev->pollfunc);
}

/**
* max1363_ring_predisable() - runs just prior to ring buffer being disabled
*
* Typical predisable function which ensures that no trigger events can
* occur before we disable the ring buffer (and hence would have no idea
* what to do with them)
**/
static int max1363_ring_predisable(struct iio_dev *indio_dev)
{
if (indio_dev->trig)
return iio_trigger_dettach_poll_func(indio_dev->trig,
indio_dev->pollfunc);
else
return 0;
}

/**
* max1363_poll_func_th() - th of trigger launched polling to ring buffer
Expand Down Expand Up @@ -228,9 +199,9 @@ int max1363_register_ring_funcs_and_init(struct iio_dev *indio_dev)
goto error_deallocate_sw_rb;

/* Ring buffer functions - here trigger setup related */
indio_dev->ring->postenable = &max1363_ring_postenable;
indio_dev->ring->postenable = &iio_triggered_ring_postenable;
indio_dev->ring->preenable = &max1363_ring_preenable;
indio_dev->ring->predisable = &max1363_ring_predisable;
indio_dev->ring->predisable = &iio_triggered_ring_predisable;
INIT_WORK(&st->poll_work, &max1363_poll_bh_to_ring);

/* Flag that polled ring buffering is possible */
Expand Down
20 changes: 2 additions & 18 deletions trunk/drivers/staging/iio/gyro/adis16260_ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -179,22 +179,6 @@ static int adis16260_data_rdy_ring_preenable(struct iio_dev *indio_dev)
return 0;
}

static int adis16260_data_rdy_ring_postenable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_attach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

static int adis16260_data_rdy_ring_predisable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_dettach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

void adis16260_unconfigure_ring(struct iio_dev *indio_dev)
{
kfree(indio_dev->pollfunc);
Expand Down Expand Up @@ -227,8 +211,8 @@ int adis16260_configure_ring(struct iio_dev *indio_dev)
/* Effectively select the ring buffer implementation */
iio_ring_sw_register_funcs(&ring->access);
ring->preenable = &adis16260_data_rdy_ring_preenable;
ring->postenable = &adis16260_data_rdy_ring_postenable;
ring->predisable = &adis16260_data_rdy_ring_predisable;
ring->postenable = &iio_triggered_ring_postenable;
ring->predisable = &iio_triggered_ring_predisable;
ring->owner = THIS_MODULE;

ret = iio_alloc_pollfunc(indio_dev, NULL, &adis16260_poll_func_th);
Expand Down
20 changes: 2 additions & 18 deletions trunk/drivers/staging/iio/imu/adis16300_ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -200,22 +200,6 @@ static int adis16300_data_rdy_ring_preenable(struct iio_dev *indio_dev)
return 0;
}

static int adis16300_data_rdy_ring_postenable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_attach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

static int adis16300_data_rdy_ring_predisable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_dettach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

void adis16300_unconfigure_ring(struct iio_dev *indio_dev)
{
kfree(indio_dev->pollfunc);
Expand Down Expand Up @@ -252,8 +236,8 @@ int adis16300_configure_ring(struct iio_dev *indio_dev)
/* Effectively select the ring buffer implementation */
iio_ring_sw_register_funcs(&ring->access);
ring->preenable = &adis16300_data_rdy_ring_preenable;
ring->postenable = &adis16300_data_rdy_ring_postenable;
ring->predisable = &adis16300_data_rdy_ring_predisable;
ring->postenable = &iio_triggered_ring_postenable;
ring->predisable = &iio_triggered_ring_predisable;
ring->owner = THIS_MODULE;

ret = iio_alloc_pollfunc(indio_dev, NULL, &adis16300_poll_func_th);
Expand Down
20 changes: 2 additions & 18 deletions trunk/drivers/staging/iio/imu/adis16350_ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,22 +203,6 @@ static int adis16350_data_rdy_ring_preenable(struct iio_dev *indio_dev)
return 0;
}

static int adis16350_data_rdy_ring_postenable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_attach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

static int adis16350_data_rdy_ring_predisable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_dettach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

void adis16350_unconfigure_ring(struct iio_dev *indio_dev)
{
kfree(indio_dev->pollfunc);
Expand Down Expand Up @@ -257,8 +241,8 @@ int adis16350_configure_ring(struct iio_dev *indio_dev)
/* Effectively select the ring buffer implementation */
iio_ring_sw_register_funcs(&ring->access);
ring->preenable = &adis16350_data_rdy_ring_preenable;
ring->postenable = &adis16350_data_rdy_ring_postenable;
ring->predisable = &adis16350_data_rdy_ring_predisable;
ring->postenable = &iio_triggered_ring_postenable;
ring->predisable = &iio_triggered_ring_predisable;
ring->owner = THIS_MODULE;

ret = iio_alloc_pollfunc(indio_dev, NULL, &adis16350_poll_func_th);
Expand Down
20 changes: 2 additions & 18 deletions trunk/drivers/staging/iio/imu/adis16400_ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,22 +209,6 @@ static int adis16400_data_rdy_ring_preenable(struct iio_dev *indio_dev)
return 0;
}

static int adis16400_data_rdy_ring_postenable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_attach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

static int adis16400_data_rdy_ring_predisable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_dettach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}

void adis16400_unconfigure_ring(struct iio_dev *indio_dev)
{
kfree(indio_dev->pollfunc);
Expand Down Expand Up @@ -264,8 +248,8 @@ int adis16400_configure_ring(struct iio_dev *indio_dev)
/* Effectively select the ring buffer implementation */
iio_ring_sw_register_funcs(&ring->access);
ring->preenable = &adis16400_data_rdy_ring_preenable;
ring->postenable = &adis16400_data_rdy_ring_postenable;
ring->predisable = &adis16400_data_rdy_ring_predisable;
ring->postenable = &iio_triggered_ring_postenable;
ring->predisable = &iio_triggered_ring_predisable;
ring->owner = THIS_MODULE;

ret = iio_alloc_pollfunc(indio_dev, NULL, &adis16400_poll_func_th);
Expand Down
18 changes: 18 additions & 0 deletions trunk/drivers/staging/iio/industrialio-trigger.c
Original file line number Diff line number Diff line change
Expand Up @@ -411,3 +411,21 @@ int iio_alloc_pollfunc(struct iio_dev *indio_dev,
return 0;
}
EXPORT_SYMBOL(iio_alloc_pollfunc);

int iio_triggered_ring_postenable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_attach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}
EXPORT_SYMBOL(iio_triggered_ring_postenable);

int iio_triggered_ring_predisable(struct iio_dev *indio_dev)
{
return indio_dev->trig
? iio_trigger_dettach_poll_func(indio_dev->trig,
indio_dev->pollfunc)
: 0;
}
EXPORT_SYMBOL(iio_triggered_ring_predisable);
7 changes: 7 additions & 0 deletions trunk/drivers/staging/iio/trigger.h
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,13 @@ int iio_alloc_pollfunc(struct iio_dev *indio_dev,
void (*immediate)(struct iio_dev *indio_dev),
void (*main)(struct iio_dev *private_data));

/*
* Two functions for common case where all that happens is a pollfunc
* is attached and detached form a trigger
*/
int iio_triggered_ring_postenable(struct iio_dev *indio_dev);
int iio_triggered_ring_predisable(struct iio_dev *indio_dev);

struct iio_trigger *iio_allocate_trigger(void);

void iio_free_trigger(struct iio_trigger *trig);
Expand Down

0 comments on commit bc32ad5

Please sign in to comment.