diff mbox

[5/6] drm/doc: diagram for mode objects and properties

Message ID 20170228171319.1786-6-daniel.vetter@ffwll.ch (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter Feb. 28, 2017, 5:13 p.m. UTC
Resulted in confusion a few times in the past.

Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 Documentation/gpu/drm-kms.rst | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

Comments

Eric Anholt Feb. 28, 2017, 11:40 p.m. UTC | #1
Daniel Vetter <daniel.vetter@ffwll.ch> writes:

> Resulted in confusion a few times in the past.
>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  Documentation/gpu/drm-kms.rst | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
>
> diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
> index 17a4cd5b14fd..20378881445f 100644
> --- a/Documentation/gpu/drm-kms.rst
> +++ b/Documentation/gpu/drm-kms.rst

> +The base structure for all KMS objects is :c:type:`struct drm_mode_object
> +<drm_mode_object>`. One of the base services is provides is tracking properties,

"it provides"?

> +which are especially important for the atomic IOCTL (see `Atomic Mode
> +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>`.
> +
diff mbox

Patch

diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
index 17a4cd5b14fd..20378881445f 100644
--- a/Documentation/gpu/drm-kms.rst
+++ b/Documentation/gpu/drm-kms.rst
@@ -161,6 +161,28 @@  KMS Core Structures and Functions
 Modeset Base Object Abstraction
 ===============================
 
+.. kernel-render:: DOT
+   :alt: Mode Objects and Properties
+   :caption: Mode Objects and Properties
+
+   digraph {
+      node [shape=box]
+
+      "drm_property A" -> "drm_mode_object A"
+      "drm_property A" -> "drm_mode_object B"
+      "drm_property B" -> "drm_mode_object A"
+   }
+
+The base structure for all KMS objects is :c:type:`struct drm_mode_object
+<drm_mode_object>`. One of the base services is provides is tracking properties,
+which are especially important for the atomic IOCTL (see `Atomic Mode
+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>`.
+
 .. kernel-doc:: include/drm/drm_mode_object.h
    :internal: