diff options
author | Jonathan Cameron <jic23@cam.ac.uk> | 2011-05-18 13:42:23 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-05-19 23:15:03 (GMT) |
commit | 38d15f06f942306050a063abd111467d39c5cc37 (patch) | |
tree | 845d3de4cdc07833e51ed906c23b42980376232e /drivers/staging/iio/imu/adis16400_trigger.c | |
parent | 59c85e82c2e7a672cb4342dc5ccf9df8a3a14f73 (diff) | |
download | linux-fsl-qoriq-38d15f06f942306050a063abd111467d39c5cc37.tar.xz |
staging:iio:imu:adis16400 avoid allocating rx, tx, and state separately from iio_dev.
Uses the iio_allocate_device parameter to set aside space for adis16400_state and
____cacheline_aligned buffers for tx and rx to avoid separatel allocating them.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/iio/imu/adis16400_trigger.c')
-rw-r--r-- | drivers/staging/iio/imu/adis16400_trigger.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/staging/iio/imu/adis16400_trigger.c b/drivers/staging/iio/imu/adis16400_trigger.c index d426fba..c6ec41a 100644 --- a/drivers/staging/iio/imu/adis16400_trigger.c +++ b/drivers/staging/iio/imu/adis16400_trigger.c @@ -18,17 +18,16 @@ static int adis16400_data_rdy_trigger_set_state(struct iio_trigger *trig, bool state) { - struct adis16400_state *st = trig->private_data; - struct iio_dev *indio_dev = st->indio_dev; + struct iio_dev *indio_dev = trig->private_data; dev_dbg(&indio_dev->dev, "%s (%d)\n", __func__, state); - return adis16400_set_irq(st->indio_dev, state); + return adis16400_set_irq(indio_dev, state); } int adis16400_probe_trigger(struct iio_dev *indio_dev) { int ret; - struct adis16400_state *st = indio_dev->dev_data; + struct adis16400_state *st = iio_priv(indio_dev); st->trig = iio_allocate_trigger("%s-dev%d", spi_get_device_id(st->us)->name, @@ -47,7 +46,7 @@ int adis16400_probe_trigger(struct iio_dev *indio_dev) goto error_free_trig; st->trig->dev.parent = &st->us->dev; st->trig->owner = THIS_MODULE; - st->trig->private_data = st; + st->trig->private_data = indio_dev; st->trig->set_trigger_state = &adis16400_data_rdy_trigger_set_state; ret = iio_trigger_register(st->trig); @@ -68,9 +67,9 @@ error_ret: void adis16400_remove_trigger(struct iio_dev *indio_dev) { - struct adis16400_state *state = indio_dev->dev_data; + struct adis16400_state *st = iio_priv(indio_dev); - iio_trigger_unregister(state->trig); - free_irq(state->us->irq, state->trig); - iio_free_trigger(state->trig); + iio_trigger_unregister(st->trig); + free_irq(st->us->irq, st->trig); + iio_free_trigger(st->trig); } |