Skip to content

Commit

Permalink
dma-buf: Extract dma-buf.rst
Browse files Browse the repository at this point in the history
Just prep work to polish and consolidate all the dma-buf related
documenation.

Unfortunately I didn't discover a way to both integrate this new file
into the overall toc while keeping it at the current place. Work
around that by moving it into the overall driver-api/index.rst.

Cc: linux-doc@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
  • Loading branch information
danvet authored and Jonathan Corbet committed Dec 11, 2016
1 parent 9e22ff4 commit 868c97a
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 70 deletions.
73 changes: 73 additions & 0 deletions Documentation/driver-api/dma-buf.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
Buffer Sharing and Synchronization
==================================

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.

This is used, for example, by drm "prime" multi-GPU support, but is of
course not limited to GPU use cases.

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.

Shared DMA Buffers
------------------

.. kernel-doc:: drivers/dma-buf/dma-buf.c
:export:

.. kernel-doc:: include/linux/dma-buf.h
:internal:

Reservation Objects
-------------------

.. kernel-doc:: drivers/dma-buf/reservation.c
:doc: Reservation Object Overview

.. kernel-doc:: drivers/dma-buf/reservation.c
:export:

.. kernel-doc:: include/linux/reservation.h
:internal:

DMA Fences
----------

.. kernel-doc:: drivers/dma-buf/dma-fence.c
:export:

.. kernel-doc:: include/linux/dma-fence.h
:internal:

Seqno Hardware Fences
~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/dma-buf/seqno-fence.c
:export:

.. kernel-doc:: include/linux/seqno-fence.h
:internal:

DMA Fence Array
~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/dma-buf/dma-fence-array.c
:export:

.. kernel-doc:: include/linux/dma-fence-array.h
:internal:

DMA Fence uABI/Sync File
~~~~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/dma-buf/sync_file.c
:export:

.. kernel-doc:: include/linux/sync_file.h
:internal:

1 change: 1 addition & 0 deletions Documentation/driver-api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ available subsections can be seen below.

basics
infrastructure
dma-buf
device_link
message-based
sound
Expand Down
70 changes: 0 additions & 70 deletions Documentation/driver-api/infrastructure.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,76 +46,6 @@ Device Drivers Base
.. kernel-doc:: drivers/base/bus.c
:export:

Buffer Sharing and Synchronization
----------------------------------

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.

This is used, for example, by drm "prime" multi-GPU support, but is of
course not limited to GPU use cases.

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.

dma-buf
~~~~~~~

.. kernel-doc:: drivers/dma-buf/dma-buf.c
:export:

.. kernel-doc:: include/linux/dma-buf.h
:internal:

reservation
~~~~~~~~~~~

.. kernel-doc:: drivers/dma-buf/reservation.c
:doc: Reservation Object Overview

.. kernel-doc:: drivers/dma-buf/reservation.c
:export:

.. kernel-doc:: include/linux/reservation.h
:internal:

fence
~~~~~

.. kernel-doc:: drivers/dma-buf/dma-fence.c
:export:

.. kernel-doc:: include/linux/dma-fence.h
:internal:

.. kernel-doc:: drivers/dma-buf/seqno-fence.c
:export:

.. kernel-doc:: include/linux/seqno-fence.h
:internal:

.. kernel-doc:: drivers/dma-buf/dma-fence-array.c
:export:

.. kernel-doc:: include/linux/dma-fence-array.h
:internal:

.. kernel-doc:: drivers/dma-buf/reservation.c
:export:

.. kernel-doc:: include/linux/reservation.h
:internal:

.. kernel-doc:: drivers/dma-buf/sync_file.c
:export:

.. kernel-doc:: include/linux/sync_file.h
:internal:

Device Drivers DMA Management
-----------------------------

Expand Down

0 comments on commit 868c97a

Please sign in to comment.