iio: buffer: dmaengine: obtain buffer object from attribute
authorAlexandru Ardelean <alexandru.ardelean@analog.com>
Mon, 15 Feb 2021 10:40:34 +0000 (12:40 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 11 Mar 2021 20:47:04 +0000 (20:47 +0000)
The reference to the IIO buffer object is stored on the attribute object.
So we need to unwind it to obtain it.

Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Link: https://lore.kernel.org/r/20210215104043.91251-16-alexandru.ardelean@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/buffer/industrialio-buffer-dmaengine.c

index 9981896..a64b222 100644 (file)
@@ -132,9 +132,9 @@ static const struct iio_dma_buffer_ops iio_dmaengine_default_ops = {
 static ssize_t iio_dmaengine_buffer_get_length_align(struct device *dev,
        struct device_attribute *attr, char *buf)
 {
-       struct iio_dev *indio_dev = dev_to_iio_dev(dev);
+       struct iio_buffer *buffer = to_iio_dev_attr(attr)->buffer;
        struct dmaengine_buffer *dmaengine_buffer =
-               iio_buffer_to_dmaengine_buffer(indio_dev->buffer);
+               iio_buffer_to_dmaengine_buffer(buffer);
 
        return sprintf(buf, "%zu\n", dmaengine_buffer->align);
 }