Lines Matching full:buffer

17 #include <linux/iio/buffer.h>
19 #include <linux/iio/buffer-dma.h>
20 #include <linux/iio/buffer-dmaengine.h>
23 * The IIO DMAengine buffer combines the generic IIO DMA buffer infrastructure
24 * with the DMAengine framework. The generic IIO DMA buffer infrastructure is
25 * used to manage the buffer memory and implement the IIO buffer operations
27 * this results in a device independent fully functional DMA buffer
43 struct iio_buffer *buffer) in iio_buffer_to_dmaengine_buffer() argument
45 return container_of(buffer, struct dmaengine_buffer, queue.buffer); in iio_buffer_to_dmaengine_buffer()
65 iio_buffer_to_dmaengine_buffer(&queue->buffer); in iio_dmaengine_buffer_submit_block()
98 iio_buffer_to_dmaengine_buffer(&queue->buffer); in iio_dmaengine_buffer_abort()
135 struct iio_buffer *buffer = to_iio_dev_attr(attr)->buffer; in iio_dmaengine_buffer_get_length_align() local
137 iio_buffer_to_dmaengine_buffer(buffer); in iio_dmaengine_buffer_get_length_align()
151 * iio_dmaengine_buffer_alloc() - Allocate new buffer which uses DMAengine
152 * @dev: Parent device for the buffer
155 * This allocates a new IIO buffer which internally uses the DMAengine framework
159 * Once done using the buffer iio_dmaengine_buffer_free() should be used to
204 dmaengine_buffer->queue.buffer.attrs = iio_dmaengine_buffer_attrs; in iio_dmaengine_buffer_alloc()
205 dmaengine_buffer->queue.buffer.access = &iio_dmaengine_buffer_ops; in iio_dmaengine_buffer_alloc()
207 return &dmaengine_buffer->queue.buffer; in iio_dmaengine_buffer_alloc()
215 * iio_dmaengine_buffer_free() - Free dmaengine buffer
216 * @buffer: Buffer to free
218 * Frees a buffer previously allocated with iio_dmaengine_buffer_alloc().
220 static void iio_dmaengine_buffer_free(struct iio_buffer *buffer) in iio_dmaengine_buffer_free() argument
223 iio_buffer_to_dmaengine_buffer(buffer); in iio_dmaengine_buffer_free()
228 iio_buffer_put(buffer); in iio_dmaengine_buffer_free()
231 static void __devm_iio_dmaengine_buffer_free(void *buffer) in __devm_iio_dmaengine_buffer_free() argument
233 iio_dmaengine_buffer_free(buffer); in __devm_iio_dmaengine_buffer_free()
238 * @dev: Parent device for the buffer
241 * This allocates a new IIO buffer which internally uses the DMAengine framework
245 * The buffer will be automatically de-allocated once the device gets destroyed.
250 struct iio_buffer *buffer; in devm_iio_dmaengine_buffer_alloc() local
253 buffer = iio_dmaengine_buffer_alloc(dev, channel); in devm_iio_dmaengine_buffer_alloc()
254 if (IS_ERR(buffer)) in devm_iio_dmaengine_buffer_alloc()
255 return buffer; in devm_iio_dmaengine_buffer_alloc()
258 buffer); in devm_iio_dmaengine_buffer_alloc()
262 return buffer; in devm_iio_dmaengine_buffer_alloc()
266 * devm_iio_dmaengine_buffer_setup() - Setup a DMA buffer for an IIO device
267 * @dev: Parent device for the buffer
268 * @indio_dev: IIO device to which to attach this buffer.
271 * This allocates a new IIO buffer with devm_iio_dmaengine_buffer_alloc()
280 struct iio_buffer *buffer; in devm_iio_dmaengine_buffer_setup() local
282 buffer = devm_iio_dmaengine_buffer_alloc(indio_dev->dev.parent, in devm_iio_dmaengine_buffer_setup()
284 if (IS_ERR(buffer)) in devm_iio_dmaengine_buffer_setup()
285 return PTR_ERR(buffer); in devm_iio_dmaengine_buffer_setup()
289 return iio_device_attach_buffer(indio_dev, buffer); in devm_iio_dmaengine_buffer_setup()
294 MODULE_DESCRIPTION("DMA buffer for the IIO framework");