Drivers may not need setup_ops at all, so let the core supply
some empty ops.
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Acked-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        .compat_ioctl = iio_ioctl,
 };
 
+static const struct iio_buffer_setup_ops noop_ring_setup_ops;
+
 int iio_device_register(struct iio_dev *indio_dev)
 {
        int ret;
        if (indio_dev->modes & INDIO_BUFFER_TRIGGERED)
                iio_device_register_trigger_consumer(indio_dev);
 
+       if ((indio_dev->modes & INDIO_ALL_BUFFER_MODES) &&
+               indio_dev->setup_ops == NULL)
+               indio_dev->setup_ops = &noop_ring_setup_ops;
+
        ret = device_add(&indio_dev->dev);
        if (ret < 0)
                goto error_unreg_eventset;