* [PATCH] drm/doc: Drop :c:func: markup
@ 2019-12-04 10:19 Daniel Vetter
2019-12-05 16:05 ` Thierry Reding
0 siblings, 1 reply; 5+ messages in thread
From: Daniel Vetter @ 2019-12-04 10:19 UTC (permalink / raw)
To: DRI Development; +Cc: Daniel Vetter, Daniel Vetter, Jonathan Corbet
Kernel sphinx has learned how to do that in
commit d74b0d31dddeac2b44c715588d53d9a1e5b1158e
Author: Jonathan Corbet <corbet@lwn.net>
Date: Thu Apr 25 07:55:07 2019 -0600
Docs: An initial automarkup extension for sphinx
Unfortunately it hasn't learned that yet for structures, so we're
stuck with the :c:type: noise for now still.
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
Documentation/gpu/drm-internals.rst | 4 +-
Documentation/gpu/drm-kms.rst | 7 ++-
Documentation/gpu/drm-mm.rst | 68 +++++++++++++----------------
3 files changed, 36 insertions(+), 43 deletions(-)
diff --git a/Documentation/gpu/drm-internals.rst b/Documentation/gpu/drm-internals.rst
index 966bd2d9f0cc..a73320576ca9 100644
--- a/Documentation/gpu/drm-internals.rst
+++ b/Documentation/gpu/drm-internals.rst
@@ -24,9 +24,9 @@ Driver Initialization
At the core of every DRM driver is a :c:type:`struct drm_driver
<drm_driver>` structure. Drivers typically statically initialize
a drm_driver structure, and then pass it to
-:c:func:`drm_dev_alloc()` to allocate a device instance. After the
+drm_dev_alloc() to allocate a device instance. After the
device instance is fully initialized it can be registered (which makes
-it accessible from userspace) using :c:func:`drm_dev_register()`.
+it accessible from userspace) using drm_dev_register().
The :c:type:`struct drm_driver <drm_driver>` structure
contains static information that describes the driver and features it
diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
index b9330343d1bc..906771e03103 100644
--- a/Documentation/gpu/drm-kms.rst
+++ b/Documentation/gpu/drm-kms.rst
@@ -3,7 +3,7 @@ Kernel Mode Setting (KMS)
=========================
Drivers must initialize the mode setting core by calling
-:c:func:`drm_mode_config_init()` on the DRM device. The function
+drm_mode_config_init() on the DRM device. The function
initializes the :c:type:`struct drm_device <drm_device>`
mode_config field and never fails. Once done, mode configuration must
be setup by initializing the following fields.
@@ -181,8 +181,7 @@ Setting`_). The somewhat surprising part here is that properties are not
directly instantiated on each object, but free-standing mode objects themselves,
represented by :c:type:`struct drm_property <drm_property>`, which only specify
the type and value range of a property. Any given property can be attached
-multiple times to different objects using :c:func:`drm_object_attach_property()
-<drm_object_attach_property>`.
+multiple times to different objects using drm_object_attach_property().
.. kernel-doc:: include/drm/drm_mode_object.h
:internal:
@@ -274,7 +273,7 @@ Locking of atomic state structures is internally using :c:type:`struct
drm_modeset_lock <drm_modeset_lock>`. As a general rule the locking shouldn't be
exposed to drivers, instead the right locks should be automatically acquired by
any function that duplicates or peeks into a state, like e.g.
-:c:func:`drm_atomic_get_crtc_state()`. Locking only protects the software data
+drm_atomic_get_crtc_state(). Locking only protects the software data
structure, ordering of committing state changes to hardware is sequenced using
:c:type:`struct drm_crtc_commit <drm_crtc_commit>`.
diff --git a/Documentation/gpu/drm-mm.rst b/Documentation/gpu/drm-mm.rst
index 423567ac1784..af75c91a46b1 100644
--- a/Documentation/gpu/drm-mm.rst
+++ b/Documentation/gpu/drm-mm.rst
@@ -149,19 +149,19 @@ struct :c:type:`struct drm_gem_object <drm_gem_object>`.
To create a GEM object, a driver allocates memory for an instance of its
specific GEM object type and initializes the embedded struct
:c:type:`struct drm_gem_object <drm_gem_object>` with a call
-to :c:func:`drm_gem_object_init()`. The function takes a pointer
+to drm_gem_object_init(). The function takes a pointer
to the DRM device, a pointer to the GEM object and the buffer object
size in bytes.
GEM uses shmem to allocate anonymous pageable memory.
-:c:func:`drm_gem_object_init()` will create an shmfs file of the
+drm_gem_object_init() will create an shmfs file of the
requested size and store it into the struct :c:type:`struct
drm_gem_object <drm_gem_object>` filp field. The memory is
used as either main storage for the object when the graphics hardware
uses system memory directly or as a backing store otherwise.
Drivers are responsible for the actual physical pages allocation by
-calling :c:func:`shmem_read_mapping_page_gfp()` for each page.
+calling shmem_read_mapping_page_gfp() for each page.
Note that they can decide to allocate pages when initializing the GEM
object, or to delay allocation until the memory is needed (for instance
when a page fault occurs as a result of a userspace memory access or
@@ -170,20 +170,18 @@ when the driver needs to start a DMA transfer involving the memory).
Anonymous pageable memory allocation is not always desired, for instance
when the hardware requires physically contiguous system memory as is
often the case in embedded devices. Drivers can create GEM objects with
-no shmfs backing (called private GEM objects) by initializing them with
-a call to :c:func:`drm_gem_private_object_init()` instead of
-:c:func:`drm_gem_object_init()`. Storage for private GEM objects
-must be managed by drivers.
+no shmfs backing (called private GEM objects) by initializing them with a call
+to drm_gem_private_object_init() instead of drm_gem_object_init(). Storage for
+private GEM objects must be managed by drivers.
GEM Objects Lifetime
--------------------
All GEM objects are reference-counted by the GEM core. References can be
-acquired and release by :c:func:`calling drm_gem_object_get()` and
-:c:func:`drm_gem_object_put()` respectively. The caller must hold the
-:c:type:`struct drm_device <drm_device>` struct_mutex lock when calling
-:c:func:`drm_gem_object_get()`. As a convenience, GEM provides
-:c:func:`drm_gem_object_put_unlocked()` functions that can be called without
+acquired and release by calling drm_gem_object_get() and drm_gem_object_put()
+respectively. The caller must hold the :c:type:`struct drm_device <drm_device>`
+struct_mutex lock when calling drm_gem_object_get(). As a convenience, GEM
+provides drm_gem_object_put_unlocked() functions that can be called without
holding the lock.
When the last reference to a GEM object is released the GEM core calls
@@ -194,7 +192,7 @@ free the GEM object and all associated resources.
void (\*gem_free_object) (struct drm_gem_object \*obj); Drivers are
responsible for freeing all GEM object resources. This includes the
resources created by the GEM core, which need to be released with
-:c:func:`drm_gem_object_release()`.
+drm_gem_object_release().
GEM Objects Naming
------------------
@@ -210,13 +208,11 @@ to the GEM object in other standard or driver-specific ioctls. Closing a
DRM file handle frees all its GEM handles and dereferences the
associated GEM objects.
-To create a handle for a GEM object drivers call
-:c:func:`drm_gem_handle_create()`. The function takes a pointer
-to the DRM file and the GEM object and returns a locally unique handle.
-When the handle is no longer needed drivers delete it with a call to
-:c:func:`drm_gem_handle_delete()`. Finally the GEM object
-associated with a handle can be retrieved by a call to
-:c:func:`drm_gem_object_lookup()`.
+To create a handle for a GEM object drivers call drm_gem_handle_create(). The
+function takes a pointer to the DRM file and the GEM object and returns a
+locally unique handle. When the handle is no longer needed drivers delete it
+with a call to drm_gem_handle_delete(). Finally the GEM object associated with a
+handle can be retrieved by a call to drm_gem_object_lookup().
Handles don't take ownership of GEM objects, they only take a reference
to the object that will be dropped when the handle is destroyed. To
@@ -258,7 +254,7 @@ The mmap system call can't be used directly to map GEM objects, as they
don't have their own file handle. Two alternative methods currently
co-exist to map GEM objects to userspace. The first method uses a
driver-specific ioctl to perform the mapping operation, calling
-:c:func:`do_mmap()` under the hood. This is often considered
+do_mmap() under the hood. This is often considered
dubious, seems to be discouraged for new GEM-enabled drivers, and will
thus not be described here.
@@ -267,23 +263,22 @@ The second method uses the mmap system call on the DRM file handle. void
offset); DRM identifies the GEM object to be mapped by a fake offset
passed through the mmap offset argument. Prior to being mapped, a GEM
object must thus be associated with a fake offset. To do so, drivers
-must call :c:func:`drm_gem_create_mmap_offset()` on the object.
+must call drm_gem_create_mmap_offset() on the object.
Once allocated, the fake offset value must be passed to the application
in a driver-specific way and can then be used as the mmap offset
argument.
-The GEM core provides a helper method :c:func:`drm_gem_mmap()` to
+The GEM core provides a helper method drm_gem_mmap() to
handle object mapping. The method can be set directly as the mmap file
operation handler. It will look up the GEM object based on the offset
value and set the VMA operations to the :c:type:`struct drm_driver
-<drm_driver>` gem_vm_ops field. Note that
-:c:func:`drm_gem_mmap()` doesn't map memory to userspace, but
-relies on the driver-provided fault handler to map pages individually.
+<drm_driver>` gem_vm_ops field. Note that drm_gem_mmap() doesn't map memory to
+userspace, but relies on the driver-provided fault handler to map pages
+individually.
-To use :c:func:`drm_gem_mmap()`, drivers must fill the struct
-:c:type:`struct drm_driver <drm_driver>` gem_vm_ops field
-with a pointer to VM operations.
+To use drm_gem_mmap(), drivers must fill the struct :c:type:`struct drm_driver
+<drm_driver>` gem_vm_ops field with a pointer to VM operations.
The VM operations is a :c:type:`struct vm_operations_struct <vm_operations_struct>`
made up of several fields, the more interesting ones being:
@@ -298,9 +293,8 @@ made up of several fields, the more interesting ones being:
The open and close operations must update the GEM object reference
-count. Drivers can use the :c:func:`drm_gem_vm_open()` and
-:c:func:`drm_gem_vm_close()` helper functions directly as open
-and close handlers.
+count. Drivers can use the drm_gem_vm_open() and drm_gem_vm_close() helper
+functions directly as open and close handlers.
The fault operation handler is responsible for mapping individual pages
to userspace when a page fault occurs. Depending on the memory
@@ -312,12 +306,12 @@ Drivers that want to map the GEM object upfront instead of handling page
faults can implement their own mmap file operation handler.
For platforms without MMU the GEM core provides a helper method
-:c:func:`drm_gem_cma_get_unmapped_area`. The mmap() routines will call
-this to get a proposed address for the mapping.
+drm_gem_cma_get_unmapped_area(). The mmap() routines will call this to get a
+proposed address for the mapping.
-To use :c:func:`drm_gem_cma_get_unmapped_area`, drivers must fill the
-struct :c:type:`struct file_operations <file_operations>` get_unmapped_area
-field with a pointer on :c:func:`drm_gem_cma_get_unmapped_area`.
+To use drm_gem_cma_get_unmapped_area(), drivers must fill the struct
+:c:type:`struct file_operations <file_operations>` get_unmapped_area field with
+a pointer on drm_gem_cma_get_unmapped_area().
More detailed information about get_unmapped_area can be found in
Documentation/nommu-mmap.txt
--
2.24.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/doc: Drop :c:func: markup
2019-12-04 10:19 [PATCH] drm/doc: Drop :c:func: markup Daniel Vetter
@ 2019-12-05 16:05 ` Thierry Reding
2019-12-10 10:33 ` Daniel Vetter
0 siblings, 1 reply; 5+ messages in thread
From: Thierry Reding @ 2019-12-05 16:05 UTC (permalink / raw)
To: Daniel Vetter; +Cc: Daniel Vetter, DRI Development, Jonathan Corbet
[-- Attachment #1.1: Type: text/plain, Size: 822 bytes --]
On Wed, Dec 04, 2019 at 11:19:33AM +0100, Daniel Vetter wrote:
> Kernel sphinx has learned how to do that in
>
> commit d74b0d31dddeac2b44c715588d53d9a1e5b1158e
> Author: Jonathan Corbet <corbet@lwn.net>
> Date: Thu Apr 25 07:55:07 2019 -0600
>
> Docs: An initial automarkup extension for sphinx
>
> Unfortunately it hasn't learned that yet for structures, so we're
> stuck with the :c:type: noise for now still.
>
> Cc: Jonathan Corbet <corbet@lwn.net>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
> Documentation/gpu/drm-internals.rst | 4 +-
> Documentation/gpu/drm-kms.rst | 7 ++-
> Documentation/gpu/drm-mm.rst | 68 +++++++++++++----------------
> 3 files changed, 36 insertions(+), 43 deletions(-)
Reviewed-by: Thierry Reding <treding@nvidia.com>
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/doc: Drop :c:func: markup
2019-12-05 16:05 ` Thierry Reding
@ 2019-12-10 10:33 ` Daniel Vetter
2019-12-10 12:15 ` Thierry Reding
2019-12-10 14:17 ` Jonathan Corbet
0 siblings, 2 replies; 5+ messages in thread
From: Daniel Vetter @ 2019-12-10 10:33 UTC (permalink / raw)
To: Thierry Reding
Cc: Daniel Vetter, Jonathan Corbet, DRI Development, Daniel Vetter
On Thu, Dec 05, 2019 at 05:05:37PM +0100, Thierry Reding wrote:
> On Wed, Dec 04, 2019 at 11:19:33AM +0100, Daniel Vetter wrote:
> > Kernel sphinx has learned how to do that in
> >
> > commit d74b0d31dddeac2b44c715588d53d9a1e5b1158e
> > Author: Jonathan Corbet <corbet@lwn.net>
> > Date: Thu Apr 25 07:55:07 2019 -0600
> >
> > Docs: An initial automarkup extension for sphinx
> >
> > Unfortunately it hasn't learned that yet for structures, so we're
> > stuck with the :c:type: noise for now still.
> >
> > Cc: Jonathan Corbet <corbet@lwn.net>
Jon, any plans to also add the other auto-markup eventually? We have quite
an impressive pile of :c:type: noise in our docs ...
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > ---
> > Documentation/gpu/drm-internals.rst | 4 +-
> > Documentation/gpu/drm-kms.rst | 7 ++-
> > Documentation/gpu/drm-mm.rst | 68 +++++++++++++----------------
> > 3 files changed, 36 insertions(+), 43 deletions(-)
>
> Reviewed-by: Thierry Reding <treding@nvidia.com>
Thanks for taking a look, patch merged to drm-misc-next.
Cheers, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/doc: Drop :c:func: markup
2019-12-10 10:33 ` Daniel Vetter
@ 2019-12-10 12:15 ` Thierry Reding
2019-12-10 14:17 ` Jonathan Corbet
1 sibling, 0 replies; 5+ messages in thread
From: Thierry Reding @ 2019-12-10 12:15 UTC (permalink / raw)
To: Daniel Vetter
Cc: Daniel Vetter, Jonathan Corbet, DRI Development, Daniel Vetter
[-- Attachment #1.1: Type: text/plain, Size: 1724 bytes --]
On Tue, Dec 10, 2019 at 11:33:16AM +0100, Daniel Vetter wrote:
> On Thu, Dec 05, 2019 at 05:05:37PM +0100, Thierry Reding wrote:
> > On Wed, Dec 04, 2019 at 11:19:33AM +0100, Daniel Vetter wrote:
> > > Kernel sphinx has learned how to do that in
> > >
> > > commit d74b0d31dddeac2b44c715588d53d9a1e5b1158e
> > > Author: Jonathan Corbet <corbet@lwn.net>
> > > Date: Thu Apr 25 07:55:07 2019 -0600
> > >
> > > Docs: An initial automarkup extension for sphinx
> > >
> > > Unfortunately it hasn't learned that yet for structures, so we're
> > > stuck with the :c:type: noise for now still.
> > >
> > > Cc: Jonathan Corbet <corbet@lwn.net>
>
> Jon, any plans to also add the other auto-markup eventually? We have quite
> an impressive pile of :c:type: noise in our docs ...
I had briefly taken a look at this and typed up a prototype that was
basically doing the same thing as for :c:func: but it didn't work for
some reason. After looking at the code and some Sphinx documentation
for an hour or so without an increase in understanding I gave up.
I'm sure someone with deeper knowledge of this would be able to make it
work.
Thierry
> > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > > ---
> > > Documentation/gpu/drm-internals.rst | 4 +-
> > > Documentation/gpu/drm-kms.rst | 7 ++-
> > > Documentation/gpu/drm-mm.rst | 68 +++++++++++++----------------
> > > 3 files changed, 36 insertions(+), 43 deletions(-)
> >
> > Reviewed-by: Thierry Reding <treding@nvidia.com>
>
> Thanks for taking a look, patch merged to drm-misc-next.
>
> Cheers, Daniel
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/doc: Drop :c:func: markup
2019-12-10 10:33 ` Daniel Vetter
2019-12-10 12:15 ` Thierry Reding
@ 2019-12-10 14:17 ` Jonathan Corbet
1 sibling, 0 replies; 5+ messages in thread
From: Jonathan Corbet @ 2019-12-10 14:17 UTC (permalink / raw)
To: Daniel Vetter
Cc: Daniel Vetter, Thierry Reding, DRI Development, Daniel Vetter
On Tue, 10 Dec 2019 11:33:16 +0100
Daniel Vetter <daniel@ffwll.ch> wrote:
> Jon, any plans to also add the other auto-markup eventually? We have quite
> an impressive pile of :c:type: noise in our docs ...
It's on the list...but the list is long. As in I'm shopping for a new
cloud provider that offers storage options big enough to hold my to-do
list. This shouldn't be too hard, I'll see if I can't carve out some
time in the relatively near future.
jon
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-12-10 14:17 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-04 10:19 [PATCH] drm/doc: Drop :c:func: markup Daniel Vetter
2019-12-05 16:05 ` Thierry Reding
2019-12-10 10:33 ` Daniel Vetter
2019-12-10 12:15 ` Thierry Reding
2019-12-10 14:17 ` Jonathan Corbet
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.