Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60884dde authored by Vinod Koul's avatar Vinod Koul
Browse files

Documentation: dmaengine: Add DMA_CTRL_REUSE documentation

parent 06f10e2f
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -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
--------------------