dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	dri-devel@lists.freedesktop.org,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Archit Taneja <archit@ti.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Russell King <rmk+kernel@arm.linux.org.uk>,
	Dave Airlie <airlied@redhat.com>
Subject: Re: [PATCH 2/7] drm/doc: mm: Fix indentation
Date: Wed, 5 Nov 2014 15:19:13 +0100	[thread overview]
Message-ID: <20141105141913.GN26941@phenom.ffwll.local> (raw)
In-Reply-To: <1415193919-1687-3-git-send-email-thierry.reding@gmail.com>

On Wed, Nov 05, 2014 at 02:25:14PM +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Use spaces consistently for indentation in the memory-management
> section.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  Documentation/DocBook/drm.tmpl | 268 ++++++++++++++++++++---------------------
>  1 file changed, 134 insertions(+), 134 deletions(-)
> 
> diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
> index f6a9d7b21380..18025496a736 100644
> --- a/Documentation/DocBook/drm.tmpl
> +++ b/Documentation/DocBook/drm.tmpl
> @@ -492,10 +492,10 @@ char *date;</synopsis>
>      <sect2>
>        <title>The Translation Table Manager (TTM)</title>
>        <para>
> -	TTM design background and information belongs here.
> +        TTM design background and information belongs here.
>        </para>
>        <sect3>
> -	<title>TTM initialization</title>
> +        <title>TTM initialization</title>
>          <warning><para>This section is outdated.</para></warning>
>          <para>
>            Drivers wishing to support TTM must fill out a drm_bo_driver
> @@ -503,42 +503,42 @@ char *date;</synopsis>
>            pointers for initializing the TTM, allocating and freeing memory,
>            waiting for command completion and fence synchronization, and memory
>            migration. See the radeon_ttm.c file for an example of usage.
> -	</para>
> -	<para>
> -	  The ttm_global_reference structure is made up of several fields:
> -	</para>
> -	<programlisting>
> -	  struct ttm_global_reference {
> -	  	enum ttm_global_types global_type;
> -	  	size_t size;
> -	  	void *object;
> -	  	int (*init) (struct ttm_global_reference *);
> -	  	void (*release) (struct ttm_global_reference *);
> -	  };
> -	</programlisting>
> -	<para>
> -	  There should be one global reference structure for your memory
> -	  manager as a whole, and there will be others for each object
> -	  created by the memory manager at runtime.  Your global TTM should
> -	  have a type of TTM_GLOBAL_TTM_MEM.  The size field for the global
> -	  object should be sizeof(struct ttm_mem_global), and the init and
> -	  release hooks should point at your driver-specific init and
> -	  release routines, which probably eventually call
> -	  ttm_mem_global_init and ttm_mem_global_release, respectively.
> -	</para>
> -	<para>
> -	  Once your global TTM accounting structure is set up and initialized
> -	  by calling ttm_global_item_ref() on it,
> -	  you need to create a buffer object TTM to
> -	  provide a pool for buffer object allocation by clients and the
> -	  kernel itself.  The type of this object should be TTM_GLOBAL_TTM_BO,
> -	  and its size should be sizeof(struct ttm_bo_global).  Again,
> -	  driver-specific init and release functions may be provided,
> -	  likely eventually calling ttm_bo_global_init() and
> -	  ttm_bo_global_release(), respectively.  Also, like the previous
> -	  object, ttm_global_item_ref() is used to create an initial reference
> -	  count for the TTM, which will call your initialization function.
> -	</para>
> +        </para>
> +        <para>
> +          The ttm_global_reference structure is made up of several fields:
> +        </para>
> +        <programlisting>
> +          struct ttm_global_reference {
> +                  enum ttm_global_types global_type;
> +                  size_t size;
> +                  void *object;
> +                  int (*init) (struct ttm_global_reference *);
> +                  void (*release) (struct ttm_global_reference *);
> +          };
> +        </programlisting>
> +        <para>
> +          There should be one global reference structure for your memory
> +          manager as a whole, and there will be others for each object
> +          created by the memory manager at runtime.  Your global TTM should
> +          have a type of TTM_GLOBAL_TTM_MEM.  The size field for the global
> +          object should be sizeof(struct ttm_mem_global), and the init and
> +          release hooks should point at your driver-specific init and
> +          release routines, which probably eventually call
> +          ttm_mem_global_init and ttm_mem_global_release, respectively.
> +        </para>
> +        <para>
> +          Once your global TTM accounting structure is set up and initialized
> +          by calling ttm_global_item_ref() on it,
> +          you need to create a buffer object TTM to
> +          provide a pool for buffer object allocation by clients and the
> +          kernel itself.  The type of this object should be TTM_GLOBAL_TTM_BO,
> +          and its size should be sizeof(struct ttm_bo_global).  Again,
> +          driver-specific init and release functions may be provided,
> +          likely eventually calling ttm_bo_global_init() and
> +          ttm_bo_global_release(), respectively.  Also, like the previous
> +          object, ttm_global_item_ref() is used to create an initial reference
> +          count for the TTM, which will call your initialization function.
> +        </para>
>        </sect3>
>      </sect2>
>      <sect2 id="drm-gem">
> @@ -566,19 +566,19 @@ char *date;</synopsis>
>          using driver-specific ioctls.
>        </para>
>        <para>
> -	On a fundamental level, GEM involves several operations:
> -	<itemizedlist>
> -	  <listitem>Memory allocation and freeing</listitem>
> -	  <listitem>Command execution</listitem>
> -	  <listitem>Aperture management at command execution time</listitem>
> -	</itemizedlist>
> -	Buffer object allocation is relatively straightforward and largely
> +        On a fundamental level, GEM involves several operations:
> +        <itemizedlist>
> +          <listitem>Memory allocation and freeing</listitem>
> +          <listitem>Command execution</listitem>
> +          <listitem>Aperture management at command execution time</listitem>
> +        </itemizedlist>
> +        Buffer object allocation is relatively straightforward and largely
>          provided by Linux's shmem layer, which provides memory to back each
>          object.
>        </para>
>        <para>
>          Device-specific operations, such as command execution, pinning, buffer
> -	read &amp; write, mapping, and domain ownership transfers are left to
> +        read &amp; write, mapping, and domain ownership transfers are left to
>          driver-specific ioctls.
>        </para>
>        <sect3>
> @@ -738,16 +738,16 @@ char *date;</synopsis>
>            respectively. The conversion is handled by the DRM core without any
>            driver-specific support.
>          </para>
> -	<para>
> -	  GEM also supports buffer sharing with dma-buf file descriptors through
> -	  PRIME. GEM-based drivers must use the provided helpers functions to
> -	  implement the exporting and importing correctly. See <xref linkend="drm-prime-support" />.
> -	  Since sharing file descriptors is inherently more secure than the
> -	  easily guessable and global GEM names it is the preferred buffer
> -	  sharing mechanism. Sharing buffers through GEM names is only supported
> -	  for legacy userspace. Furthermore PRIME also allows cross-device
> -	  buffer sharing since it is based on dma-bufs.
> -	</para>
> +        <para>
> +          GEM also supports buffer sharing with dma-buf file descriptors through
> +          PRIME. GEM-based drivers must use the provided helpers functions to
> +          implement the exporting and importing correctly. See <xref linkend="drm-prime-support" />.
> +          Since sharing file descriptors is inherently more secure than the
> +          easily guessable and global GEM names it is the preferred buffer
> +          sharing mechanism. Sharing buffers through GEM names is only supported
> +          for legacy userspace. Furthermore PRIME also allows cross-device
> +          buffer sharing since it is based on dma-bufs.
> +        </para>
>        </sect3>
>        <sect3 id="drm-gem-objects-mapping">
>          <title>GEM Objects Mapping</title>
> @@ -852,7 +852,7 @@ char *date;</synopsis>
>        <sect3>
>          <title>Command Execution</title>
>          <para>
> -	  Perhaps the most important GEM function for GPU devices is providing a
> +          Perhaps the most important GEM function for GPU devices is providing a
>            command execution interface to clients. Client programs construct
>            command buffers containing references to previously allocated memory
>            objects, and then submit them to GEM. At that point, GEM takes care to
> @@ -874,95 +874,95 @@ char *date;</synopsis>
>          <title>GEM Function Reference</title>
>  !Edrivers/gpu/drm/drm_gem.c
>        </sect3>
> -      </sect2>
> -      <sect2>
> -	<title>VMA Offset Manager</title>
> +    </sect2>
> +    <sect2>
> +      <title>VMA Offset Manager</title>
>  !Pdrivers/gpu/drm/drm_vma_manager.c vma offset manager
>  !Edrivers/gpu/drm/drm_vma_manager.c
>  !Iinclude/drm/drm_vma_manager.h
> -      </sect2>
> -      <sect2 id="drm-prime-support">
> -	<title>PRIME Buffer Sharing</title>
> -	<para>
> -	  PRIME is the cross device buffer sharing framework in drm, originally
> -	  created for the OPTIMUS range of multi-gpu platforms. To userspace
> -	  PRIME buffers are dma-buf based file descriptors.
> -	</para>
> -	<sect3>
> -	  <title>Overview and Driver Interface</title>
> -	  <para>
> -	    Similar to GEM global names, PRIME file descriptors are
> -	    also used to share buffer objects across processes. They offer
> -	    additional security: as file descriptors must be explicitly sent over
> -	    UNIX domain sockets to be shared between applications, they can't be
> -	    guessed like the globally unique GEM names.
> -	  </para>
> -	  <para>
> -	    Drivers that support the PRIME
> -	    API must set the DRIVER_PRIME bit in the struct
> -	    <structname>drm_driver</structname>
> -	    <structfield>driver_features</structfield> field, and implement the
> -	    <methodname>prime_handle_to_fd</methodname> and
> -	    <methodname>prime_fd_to_handle</methodname> operations.
> -	  </para>
> -	  <para>
> -	    <synopsis>int (*prime_handle_to_fd)(struct drm_device *dev,
> -			  struct drm_file *file_priv, uint32_t handle,
> -			  uint32_t flags, int *prime_fd);
> +    </sect2>
> +    <sect2 id="drm-prime-support">
> +      <title>PRIME Buffer Sharing</title>
> +      <para>
> +        PRIME is the cross device buffer sharing framework in drm, originally
> +        created for the OPTIMUS range of multi-gpu platforms. To userspace
> +        PRIME buffers are dma-buf based file descriptors.
> +      </para>
> +      <sect3>
> +        <title>Overview and Driver Interface</title>
> +        <para>
> +          Similar to GEM global names, PRIME file descriptors are
> +          also used to share buffer objects across processes. They offer
> +          additional security: as file descriptors must be explicitly sent over
> +          UNIX domain sockets to be shared between applications, they can't be
> +          guessed like the globally unique GEM names.
> +        </para>
> +        <para>
> +          Drivers that support the PRIME
> +          API must set the DRIVER_PRIME bit in the struct
> +          <structname>drm_driver</structname>
> +          <structfield>driver_features</structfield> field, and implement the
> +          <methodname>prime_handle_to_fd</methodname> and
> +          <methodname>prime_fd_to_handle</methodname> operations.
> +        </para>
> +        <para>
> +          <synopsis>int (*prime_handle_to_fd)(struct drm_device *dev,
> +                          struct drm_file *file_priv, uint32_t handle,
> +                          uint32_t flags, int *prime_fd);
>  int (*prime_fd_to_handle)(struct drm_device *dev,
> -			  struct drm_file *file_priv, int prime_fd,
> -			  uint32_t *handle);</synopsis>
> -	    Those two operations convert a handle to a PRIME file descriptor and
> -	    vice versa. Drivers must use the kernel dma-buf buffer sharing framework
> -	    to manage the PRIME file descriptors. Similar to the mode setting
> -	    API PRIME is agnostic to the underlying buffer object manager, as
> -	    long as handles are 32bit unsigned integers.
> -	  </para>
> -	  <para>
> -	    While non-GEM drivers must implement the operations themselves, GEM
> -	    drivers must use the <function>drm_gem_prime_handle_to_fd</function>
> -	    and <function>drm_gem_prime_fd_to_handle</function> helper functions.
> -	    Those helpers rely on the driver
> -	    <methodname>gem_prime_export</methodname> and
> -	    <methodname>gem_prime_import</methodname> operations to create a dma-buf
> -	    instance from a GEM object (dma-buf exporter role) and to create a GEM
> -	    object from a dma-buf instance (dma-buf importer role).
> -	  </para>
> -	  <para>
> -	    <synopsis>struct dma_buf * (*gem_prime_export)(struct drm_device *dev,
> -				     struct drm_gem_object *obj,
> -				     int flags);
> +                          struct drm_file *file_priv, int prime_fd,
> +                          uint32_t *handle);</synopsis>
> +            Those two operations convert a handle to a PRIME file descriptor and
> +            vice versa. Drivers must use the kernel dma-buf buffer sharing framework
> +            to manage the PRIME file descriptors. Similar to the mode setting
> +            API PRIME is agnostic to the underlying buffer object manager, as
> +            long as handles are 32bit unsigned integers.
> +          </para>
> +          <para>
> +            While non-GEM drivers must implement the operations themselves, GEM
> +            drivers must use the <function>drm_gem_prime_handle_to_fd</function>
> +            and <function>drm_gem_prime_fd_to_handle</function> helper functions.
> +            Those helpers rely on the driver
> +            <methodname>gem_prime_export</methodname> and
> +            <methodname>gem_prime_import</methodname> operations to create a dma-buf
> +            instance from a GEM object (dma-buf exporter role) and to create a GEM
> +            object from a dma-buf instance (dma-buf importer role).
> +          </para>
> +          <para>
> +            <synopsis>struct dma_buf * (*gem_prime_export)(struct drm_device *dev,
> +                             struct drm_gem_object *obj,
> +                             int flags);
>  struct drm_gem_object * (*gem_prime_import)(struct drm_device *dev,
> -					    struct dma_buf *dma_buf);</synopsis>
> -	    These two operations are mandatory for GEM drivers that support
> -	    PRIME.
> -	  </para>
> -	</sect3>
> -        <sect3>
> -          <title>PRIME Helper Functions</title>
> -!Pdrivers/gpu/drm/drm_prime.c PRIME Helpers
> +                                            struct dma_buf *dma_buf);</synopsis>
> +            These two operations are mandatory for GEM drivers that support
> +            PRIME.
> +          </para>
>          </sect3>
> -      </sect2>
> -      <sect2>
> -	<title>PRIME Function References</title>
> +      <sect3>
> +        <title>PRIME Helper Functions</title>
> +!Pdrivers/gpu/drm/drm_prime.c PRIME Helpers
> +      </sect3>
> +    </sect2>
> +    <sect2>
> +      <title>PRIME Function References</title>
>  !Edrivers/gpu/drm/drm_prime.c
> -      </sect2>
> -      <sect2>
> -	<title>DRM MM Range Allocator</title>
> -	<sect3>
> -	  <title>Overview</title>
> +    </sect2>
> +    <sect2>
> +      <title>DRM MM Range Allocator</title>
> +      <sect3>
> +        <title>Overview</title>
>  !Pdrivers/gpu/drm/drm_mm.c Overview
> -	</sect3>
> -	<sect3>
> -	  <title>LRU Scan/Eviction Support</title>
> +      </sect3>
> +      <sect3>
> +        <title>LRU Scan/Eviction Support</title>
>  !Pdrivers/gpu/drm/drm_mm.c lru scan roaster
> -	</sect3>
> +      </sect3>
>        </sect2>
> -      <sect2>
> -	<title>DRM MM Range Allocator Function References</title>
> +    <sect2>
> +      <title>DRM MM Range Allocator Function References</title>
>  !Edrivers/gpu/drm/drm_mm.c
>  !Iinclude/drm/drm_mm.h
> -      </sect2>
> +    </sect2>
>    </sect1>
>  
>    <!-- Internals: mode setting -->
> -- 
> 2.1.3
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2014-11-05 14:18 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-05 13:25 [PATCH 0/7] drm: Sanitize DRM_IOCTL_MODE_CREATE_DUMB input Thierry Reding
2014-11-05 13:25 ` [PATCH 1/7] drm/gem: Fix a few kerneldoc typos Thierry Reding
2014-11-05 14:18   ` Daniel Vetter
2014-11-05 13:25 ` [PATCH 2/7] drm/doc: mm: Fix indentation Thierry Reding
2014-11-05 14:19   ` Daniel Vetter [this message]
2014-11-05 13:25 ` [PATCH 3/7] drm/doc: Add GEM/CMA helpers to kerneldoc Thierry Reding
2014-11-05 14:34   ` Daniel Vetter
2014-11-05 15:01     ` Thierry Reding
2014-11-05 15:04       ` Daniel Vetter
2014-11-05 15:16         ` Thierry Reding
2014-11-05 13:25 ` [PATCH 4/7] drm/cma: Introduce drm_gem_cma_dumb_create_internal() Thierry Reding
2014-11-05 14:36   ` Daniel Vetter
2014-11-05 13:25 ` [PATCH 5/7] drm/omap: gem: dumb: pitch is an output Thierry Reding
2014-11-05 14:38   ` Daniel Vetter
2014-11-05 13:25 ` [PATCH 6/7] drm/rcar: " Thierry Reding
2014-11-05 14:39   ` Daniel Vetter
2014-11-05 18:47   ` Laurent Pinchart
2014-11-06  0:54     ` Russell King - ARM Linux
2014-11-06 18:17       ` Laurent Pinchart
2014-11-05 13:25 ` [PATCH 7/7] drm: Sanitize DRM_IOCTL_MODE_CREATE_DUMB input Thierry Reding
2014-11-05 14:42   ` Daniel Vetter
2014-11-05 14:24 ` [PATCH 0/7] " Russell King - ARM Linux
2014-11-05 14:45   ` Thierry Reding
2014-11-05 15:01   ` Daniel Vetter
2014-11-06 15:49 ` [PATCH v2 0/8] " Thierry Reding
2014-11-06 15:49   ` [PATCH v2 1/8] drm/gem: Fix a few kerneldoc typos Thierry Reding
2014-11-06 15:49   ` [PATCH v2 2/8] drm/doc: mm: Fix indentation Thierry Reding
2014-11-06 15:49   ` [PATCH v2 3/8] drm/doc: Add GEM/CMA helpers to kerneldoc Thierry Reding
2014-11-06 20:05     ` Daniel Vetter
2014-11-06 15:49   ` [PATCH v2 4/8] drm/cma: Introduce drm_gem_cma_dumb_create_internal() Thierry Reding
2014-11-06 15:49   ` [PATCH v2 5/8] drm/omap: gem: dumb: pitch is an output Thierry Reding
2014-11-06 22:23     ` Rob Clark
2014-11-07  8:02     ` Tomi Valkeinen
2014-11-06 15:49   ` [PATCH v2 6/8] drm/rcar: " Thierry Reding
2014-11-06 15:49   ` [PATCH v2 7/8] drm: Sanitize DRM_IOCTL_MODE_CREATE_DUMB input Thierry Reding
2014-11-06 15:49   ` [PATCH v2 8/8] drm/cma: Remove call to drm_gem_free_mmap_offset() Thierry Reding
2014-11-06 20:06     ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141105141913.GN26941@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=airlied@redhat.com \
    --cc=archit@ti.com \
    --cc=benjamin.gaignard@linaro.org \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=rmk+kernel@arm.linux.org.uk \
    --cc=thierry.reding@gmail.com \
    --cc=tomi.valkeinen@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox