From: Vinod Koul Date: Wed, 5 Aug 2015 03:12:06 +0000 (+0530) Subject: Documentation: dmaengine: Add DMA_CTRL_REUSE documentation X-Git-Tag: v4.3-rc1~80^2~50 X-Git-Url: https://git.kernelconcepts.de/?a=commitdiff_plain;h=60884ddecdc2f45fd2862b7e95c9ad858584f82b;p=karo-tx-linux.git Documentation: dmaengine: Add DMA_CTRL_REUSE documentation Signed-off-by: Vinod Koul Acked-by:Robert Jarzmik --- diff --git a/Documentation/dmaengine/provider.txt b/Documentation/dmaengine/provider.txt index 243889ec5c5a..67d4ce4df109 100644 --- a/Documentation/dmaengine/provider.txt +++ b/Documentation/dmaengine/provider.txt @@ -351,6 +351,23 @@ where to put them) - This can be acked by invoking async_tx_ack() - If set, does not mean descriptor can be reused + * DMA_CTRL_REUSE + - If set, the descriptor can be reused after being completed. It should + not be freed by provider if this flag is set. + - The descriptor should be prepared for reuse by invoking + dmaengine_desc_set_reuse() which will set DMA_CTRL_REUSE. + - dmaengine_desc_set_reuse() will succeed only when channel support + reusable descriptor as exhibited by capablities + - As a consequence, if a device driver wants to skip the dma_map_sg() and + dma_unmap_sg() in between 2 transfers, because the DMA'd data wasn't used, + it can resubmit the transfer right after its completion. + - Descriptor can be freed in few ways + - Clearing DMA_CTRL_REUSE by invoking dmaengine_desc_clear_reuse() + and submitting for last txn + - Explicitly invoking dmaengine_desc_free(), this can succeed only + when DMA_CTRL_REUSE is already set + - Terminating the channel + General Design Notes --------------------