summaryrefslogtreecommitdiffstats
path: root/Documentation/dmaengine/provider.txt
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2016-01-06 15:17:47 +0530
committerVinod Koul <vinod.koul@intel.com>2016-01-06 15:17:47 +0530
commitd3f1e93ce8e00be19711c35f0c67c54a58aea559 (patch)
tree58010cdfa4fc473fc0693410b4a444755c4438c9 /Documentation/dmaengine/provider.txt
parent7c7b680fa6b0866af2c4876da261bbfe710315d6 (diff)
parentb1d6ab1aa8cdc23b89bcd578ea8d5e3c501a13d9 (diff)
Merge branch 'topic/async' into for-linus
Diffstat (limited to 'Documentation/dmaengine/provider.txt')
-rw-r--r--Documentation/dmaengine/provider.txt20
1 files changed, 18 insertions, 2 deletions
diff --git a/Documentation/dmaengine/provider.txt b/Documentation/dmaengine/provider.txt
index 67d4ce4df109..122b7f4876bb 100644
--- a/Documentation/dmaengine/provider.txt
+++ b/Documentation/dmaengine/provider.txt
@@ -327,8 +327,24 @@ supported.
* device_terminate_all
- Aborts all the pending and ongoing transfers on the channel
- - This command should operate synchronously on the channel,
- terminating right away all the channels
+ - For aborted transfers the complete callback should not be called
+ - Can be called from atomic context or from within a complete
+ callback of a descriptor. Must not sleep. Drivers must be able
+ to handle this correctly.
+ - Termination may be asynchronous. The driver does not have to
+ wait until the currently active transfer has completely stopped.
+ See device_synchronize.
+
+ * device_synchronize
+ - Must synchronize the termination of a channel to the current
+ context.
+ - Must make sure that memory for previously submitted
+ descriptors is no longer accessed by the DMA controller.
+ - Must make sure that all complete callbacks for previously
+ submitted descriptors have finished running and none are
+ scheduled to run.
+ - May sleep.
+
Misc notes (stuff that should be documented, but don't really know
where to put them)