path: root/Documentation
diff options
authorRob Clark <>2016-03-31 16:26:52 -0400
committerSumit Semwal <>2016-05-31 22:16:53 +0530
commiteae1760fc838d5f569a80939f72483f02ac049c5 (patch)
tree4a6c77e46e5a916e420c26232b13ece64cb46e14 /Documentation
parentdad6c3945fd25384c2b92306a90ba033e1130428 (diff)
doc: update/fixup dma-buf related DocBook
Split out dma-buf related parts into their own section, add missing files, and write a bit of overview about how it all fits together. Signed-off-by: Rob Clark <> Signed-off-by: Sumit Semwal <>
Diffstat (limited to 'Documentation')
1 files changed, 32 insertions, 4 deletions
diff --git a/Documentation/DocBook/device-drivers.tmpl b/Documentation/DocBook/device-drivers.tmpl
index de79efdad46c..8c68768ebee5 100644
--- a/Documentation/DocBook/device-drivers.tmpl
+++ b/Documentation/DocBook/device-drivers.tmpl
@@ -128,16 +128,44 @@ X!Edrivers/base/interface.c
- <sect1><title>Device Drivers DMA Management</title>
+ <sect1>
+ <title>Buffer Sharing and Synchronization</title>
+ <para>
+ The dma-buf subsystem provides the framework for sharing buffers
+ for hardware (DMA) access across multiple device drivers and
+ subsystems, and for synchronizing asynchronous hardware access.
+ </para>
+ <para>
+ This is used, for example, by drm "prime" multi-GPU support, but
+ is of course not limited to GPU use cases.
+ </para>
+ <para>
+ The three main components of this are: (1) dma-buf, representing
+ a sg_table and exposed to userspace as a file descriptor to allow
+ passing between devices, (2) fence, which provides a mechanism
+ to signal when one device as finished access, and (3) reservation,
+ which manages the shared or exclusive fence(s) associated with
+ the buffer.
+ </para>
+ <sect2><title>dma-buf</title>
+ </sect2>
+ <sect2><title>reservation</title>
+!Pdrivers/dma-buf/reservation.c Reservation Object Overview
+ </sect2>
+ <sect2><title>fence</title>
+ </sect2>
+ </sect1>
+ <sect1><title>Device Drivers DMA Management</title>