|
@@ -128,16 +128,44 @@ X!Edrivers/base/interface.c
|
|
|
!Edrivers/base/platform.c
|
|
|
!Edrivers/base/bus.c
|
|
|
</sect1>
|
|
|
- <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>
|
|
|
!Edrivers/dma-buf/dma-buf.c
|
|
|
+!Iinclude/linux/dma-buf.h
|
|
|
+ </sect2>
|
|
|
+ <sect2><title>reservation</title>
|
|
|
+!Pdrivers/dma-buf/reservation.c Reservation Object Overview
|
|
|
+!Edrivers/dma-buf/reservation.c
|
|
|
+!Iinclude/linux/reservation.h
|
|
|
+ </sect2>
|
|
|
+ <sect2><title>fence</title>
|
|
|
!Edrivers/dma-buf/fence.c
|
|
|
-!Edrivers/dma-buf/seqno-fence.c
|
|
|
!Iinclude/linux/fence.h
|
|
|
+!Edrivers/dma-buf/seqno-fence.c
|
|
|
!Iinclude/linux/seqno-fence.h
|
|
|
-!Edrivers/dma-buf/reservation.c
|
|
|
-!Iinclude/linux/reservation.h
|
|
|
!Edrivers/dma-buf/sync_file.c
|
|
|
!Iinclude/linux/sync_file.h
|
|
|
+ </sect2>
|
|
|
+ </sect1>
|
|
|
+ <sect1><title>Device Drivers DMA Management</title>
|
|
|
!Edrivers/base/dma-coherent.c
|
|
|
!Edrivers/base/dma-mapping.c
|
|
|
</sect1>
|