]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/staging/iio/accel/adis16240_ring.c
staging:iio: rationalization of different buffer implementation hooks.
[karo-tx-linux.git] / drivers / staging / iio / accel / adis16240_ring.c
index bddd6990b3dbdbf713790d21bf8d720d625df9f8..8450f7f0e53864ed3185dc665ddacbf1de807291 100644 (file)
@@ -68,7 +68,7 @@ static irqreturn_t adis16240_trigger_handler(int irq, void *p)
 
        int i = 0;
        s16 *data;
-       size_t datasize = ring->access.get_bytes_per_datum(ring);
+       size_t datasize = ring->access->get_bytes_per_datum(ring);
 
        data = kmalloc(datasize, GFP_KERNEL);
        if (data == NULL) {
@@ -85,7 +85,7 @@ static irqreturn_t adis16240_trigger_handler(int irq, void *p)
        if (ring->scan_timestamp)
                *((s64 *)(data + ((i + 3)/4)*4)) = pf->timestamp;
 
-       ring->access.store_to(ring, (u8 *)data, pf->timestamp);
+       ring->access->store_to(ring, (u8 *)data, pf->timestamp);
 
        iio_trigger_notify_done(st->indio_dev->trig);
        kfree(data);
@@ -100,6 +100,12 @@ void adis16240_unconfigure_ring(struct iio_dev *indio_dev)
        iio_sw_rb_free(indio_dev->ring);
 }
 
+static const struct iio_ring_setup_ops adis16240_ring_setup_ops = {
+       .preenable = &iio_sw_ring_preenable,
+       .postenable = &iio_triggered_ring_postenable,
+       .predisable = &iio_triggered_ring_predisable,
+};
+
 int adis16240_configure_ring(struct iio_dev *indio_dev)
 {
        int ret = 0;
@@ -112,12 +118,10 @@ int adis16240_configure_ring(struct iio_dev *indio_dev)
        }
        indio_dev->ring = ring;
        /* Effectively select the ring buffer implementation */
-       iio_ring_sw_register_funcs(&ring->access);
+       ring->access = &ring_sw_access_funcs;
        ring->bpe = 2;
        ring->scan_timestamp = true;
-       ring->preenable = &iio_sw_ring_preenable;
-       ring->postenable = &iio_triggered_ring_postenable;
-       ring->predisable = &iio_triggered_ring_predisable;
+       ring->setup_ops = &adis16240_ring_setup_ops;
        ring->owner = THIS_MODULE;
 
        /* Set default scan mode */