diff options
Diffstat (limited to 'drivers/staging/iio/accel/adis16209_ring.c')
-rw-r--r-- | drivers/staging/iio/accel/adis16209_ring.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/staging/iio/accel/adis16209_ring.c b/drivers/staging/iio/accel/adis16209_ring.c index 8959ad8..e8f7264 100644 --- a/drivers/staging/iio/accel/adis16209_ring.c +++ b/drivers/staging/iio/accel/adis16209_ring.c @@ -241,13 +241,10 @@ int adis16209_configure_ring(struct iio_dev *indio_dev) ring->predisable = &adis16209_data_rdy_ring_predisable; ring->owner = THIS_MODULE; - indio_dev->pollfunc = kzalloc(sizeof(*indio_dev->pollfunc), GFP_KERNEL); - if (indio_dev->pollfunc == NULL) { - ret = -ENOMEM; - goto error_iio_sw_rb_free;; - } - indio_dev->pollfunc->poll_func_main = &adis16209_poll_func_th; - indio_dev->pollfunc->private_data = indio_dev; + ret = iio_alloc_pollfunc(indio_dev, NULL, &adis16209_poll_func_th); + if (ret) + goto error_iio_sw_rb_free; + indio_dev->modes |= INDIO_RING_TRIGGERED; return 0; |