Message ID | 20241023-dlech-mainline-spi-engine-offload-2-v4-10-f8125b99f5a1@baylibre.com |
---|---|
State | Superseded |
Headers | show |
Series | spi: axi-spi-engine: add offload support | expand |
On Wed, 23 Oct 2024 15:59:17 -0500 David Lechner <dlechner@baylibre.com> wrote: > The iio_dmaengine_buffer_setup_ext() function is public and should be > documented. Also, while touching this, fix the description of @dev in > related functions. @dev does not strictly have to be the parent of the > IIO device. It is only passed to dma_request_chan() so strictly > speaking, it can be any device that is a valid DMA channel consumer. > > Signed-off-by: David Lechner <dlechner@baylibre.com> > --- > > v4 changes: > * This patch is new in v4. > > Jonathan, I think this patch stands on its own if you want to take it > earlier than the rest of this series. I may do at some point, but want a few more eyes on it first so let's leave it here for now. Seems fine to me. > --- > drivers/iio/buffer/industrialio-buffer-dmaengine.c | 19 +++++++++++++++++-- > 1 file changed, 17 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/buffer/industrialio-buffer-dmaengine.c b/drivers/iio/buffer/industrialio-buffer-dmaengine.c > index 19af1caf14cd..054af21dfa65 100644 > --- a/drivers/iio/buffer/industrialio-buffer-dmaengine.c > +++ b/drivers/iio/buffer/industrialio-buffer-dmaengine.c > @@ -206,7 +206,7 @@ static const struct iio_dev_attr *iio_dmaengine_buffer_attrs[] = { > > /** > * iio_dmaengine_buffer_alloc() - Allocate new buffer which uses DMAengine > - * @dev: Parent device for the buffer > + * @dev: DMA channel consumer device > * @channel: DMA channel name, typically "rx". > * > * This allocates a new IIO buffer which internally uses the DMAengine framework > @@ -288,6 +288,21 @@ void iio_dmaengine_buffer_free(struct iio_buffer *buffer) > } > EXPORT_SYMBOL_NS_GPL(iio_dmaengine_buffer_free, IIO_DMAENGINE_BUFFER); > > +/** > + * iio_dmaengine_buffer_setup_ext() - Setup a DMA buffer for an IIO device > + * @dev: DMA channel consumer device > + * @indio_dev: IIO device to which to attach this buffer. > + * @channel: DMA channel name, typically "rx". > + * @dir: Direction of buffer (in or out) > + * > + * This allocates a new IIO buffer with devm_iio_dmaengine_buffer_alloc() > + * and attaches it to an IIO device with iio_device_attach_buffer(). > + * It also appends the INDIO_BUFFER_HARDWARE mode to the supported modes of the > + * IIO device. > + * > + * Once done using the buffer iio_dmaengine_buffer_free() should be used to > + * release it. > + */ > struct iio_buffer *iio_dmaengine_buffer_setup_ext(struct device *dev, > struct iio_dev *indio_dev, > const char *channel, > @@ -321,7 +336,7 @@ static void __devm_iio_dmaengine_buffer_free(void *buffer) > > /** > * devm_iio_dmaengine_buffer_setup_ext() - Setup a DMA buffer for an IIO device > - * @dev: Parent device for the buffer > + * @dev: Device for devm ownership and DMA channel consumer device > * @indio_dev: IIO device to which to attach this buffer. > * @channel: DMA channel name, typically "rx". > * @dir: Direction of buffer (in or out) >
diff --git a/drivers/iio/buffer/industrialio-buffer-dmaengine.c b/drivers/iio/buffer/industrialio-buffer-dmaengine.c index 19af1caf14cd..054af21dfa65 100644 --- a/drivers/iio/buffer/industrialio-buffer-dmaengine.c +++ b/drivers/iio/buffer/industrialio-buffer-dmaengine.c @@ -206,7 +206,7 @@ static const struct iio_dev_attr *iio_dmaengine_buffer_attrs[] = { /** * iio_dmaengine_buffer_alloc() - Allocate new buffer which uses DMAengine - * @dev: Parent device for the buffer + * @dev: DMA channel consumer device * @channel: DMA channel name, typically "rx". * * This allocates a new IIO buffer which internally uses the DMAengine framework @@ -288,6 +288,21 @@ void iio_dmaengine_buffer_free(struct iio_buffer *buffer) } EXPORT_SYMBOL_NS_GPL(iio_dmaengine_buffer_free, IIO_DMAENGINE_BUFFER); +/** + * iio_dmaengine_buffer_setup_ext() - Setup a DMA buffer for an IIO device + * @dev: DMA channel consumer device + * @indio_dev: IIO device to which to attach this buffer. + * @channel: DMA channel name, typically "rx". + * @dir: Direction of buffer (in or out) + * + * This allocates a new IIO buffer with devm_iio_dmaengine_buffer_alloc() + * and attaches it to an IIO device with iio_device_attach_buffer(). + * It also appends the INDIO_BUFFER_HARDWARE mode to the supported modes of the + * IIO device. + * + * Once done using the buffer iio_dmaengine_buffer_free() should be used to + * release it. + */ struct iio_buffer *iio_dmaengine_buffer_setup_ext(struct device *dev, struct iio_dev *indio_dev, const char *channel, @@ -321,7 +336,7 @@ static void __devm_iio_dmaengine_buffer_free(void *buffer) /** * devm_iio_dmaengine_buffer_setup_ext() - Setup a DMA buffer for an IIO device - * @dev: Parent device for the buffer + * @dev: Device for devm ownership and DMA channel consumer device * @indio_dev: IIO device to which to attach this buffer. * @channel: DMA channel name, typically "rx". * @dir: Direction of buffer (in or out)
The iio_dmaengine_buffer_setup_ext() function is public and should be documented. Also, while touching this, fix the description of @dev in related functions. @dev does not strictly have to be the parent of the IIO device. It is only passed to dma_request_chan() so strictly speaking, it can be any device that is a valid DMA channel consumer. Signed-off-by: David Lechner <dlechner@baylibre.com> --- v4 changes: * This patch is new in v4. Jonathan, I think this patch stands on its own if you want to take it earlier than the rest of this series. --- drivers/iio/buffer/industrialio-buffer-dmaengine.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-)