From: Pekka Paalanen <ppaalanen@gmail.com>
To: Simon Ser <contact@emersion.fr>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
Leandro Ribeiro <leandro.ribeiro@collabora.com>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm: document drm_mode_get_property
Date: Thu, 22 Jul 2021 10:32:10 +0300 [thread overview]
Message-ID: <20210722103210.3fd9b2ae@eldfell> (raw)
In-Reply-To: <1tz9tpGFTp14Rdm6Qrih80WnzsUdM9GdHBqcT7t0zuc@cp3-web-021.plabs.ch>
[-- Attachment #1: Type: text/plain, Size: 3785 bytes --]
On Wed, 21 Jul 2021 06:49:32 +0000
Simon Ser <contact@emersion.fr> wrote:
> It's not obvious what the fields mean and how they should be used.
> The most important detail is the link to drm_property.flags, which
> describes how property types work.
>
> Signed-off-by: Simon Ser <contact@emersion.fr>
> Cc: Pekka Paalanen <pekka.paalanen@collabora.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Leandro Ribeiro <leandro.ribeiro@collabora.com>
> ---
> include/uapi/drm/drm_mode.h | 52 ++++++++++++++++++++++++++++++++++---
> 1 file changed, 48 insertions(+), 4 deletions(-)
>
> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> index 98bf130feda5..dfdb595875aa 100644
> --- a/include/uapi/drm/drm_mode.h
> +++ b/include/uapi/drm/drm_mode.h
> @@ -546,17 +546,61 @@ struct drm_mode_property_enum {
> char name[DRM_PROP_NAME_LEN];
> };
>
> +/**
> + * struct drm_mode_get_property - Get property metadata.
> + *
> + * User-space can perform a GETPROPERTY ioctl to retrieve information about a
> + * property.
> + *
> + * The meaning of the @values_ptr field changes depending on the property type.
> + * See &drm_property.flags for more details.
> + *
> + * The @enum_blob_ptr and @count_enum_blobs fields are only meaningful when the
> + * property has the type &DRM_MODE_PROP_ENUM or &DRM_MODE_PROP_BITMASK. For
> + * backwards compatibility, the kernel will always set @count_enum_blobs to
> + * zero when the property has the type &DRM_MODE_PROP_BLOB. User-space must
> + * ignore these two fields if the property has a different type.
> + *
> + * User-space is expected to retrieve values and enums by performing this ioctl
> + * at least twice: the first time to retrieve the number of elements, the
> + * second time to retrieve the elements themselves.
> + *
> + * To retrieve the number of elements, set @count_values and @count_enum_blobs
> + * to zero, then call the ioctl. @count_values will be updated with the number
> + * of elements. If the property has the type &DRM_MODE_PROP_ENUM or
> + * &DRM_MODE_PROP_BITMASK, @count_enum_blobs will be updated as well.
> + *
> + * To retrieve the elements themselves, allocate an array for @values_ptr and
> + * set @count_values to its capacity. If the property has the type
> + * &DRM_MODE_PROP_ENUM or &DRM_MODE_PROP_BITMASK, allocate an array for
> + * @enum_blob_ptr and set @count_enum_blobs to its capacity. Calling the ioctl
> + * again will fill the arrays.
> + */
> struct drm_mode_get_property {
> - __u64 values_ptr; /* values and blob lengths */
> - __u64 enum_blob_ptr; /* enum and blob id ptrs */
> + /** @values_ptr: Pointer to a ``__u64`` array. */
> + __u64 values_ptr;
> + /** @enum_blob_ptr: Pointer to a struct drm_mode_property_enum array. */
> + __u64 enum_blob_ptr;
>
> + /**
> + * @prop_id: Object ID of the property which should be retrieved. Set
> + * by the caller.
> + */
> __u32 prop_id;
> + /**
> + * @flags: ``DRM_MODE_PROP_*`` bitfield. See &drm_property.flags for
> + * a definition of the flags.
> + */
> __u32 flags;
> + /**
> + * @name: Symbolic property name. User-space should use this field to
> + * recognize properties.
> + */
> char name[DRM_PROP_NAME_LEN];
>
> + /** @count_values: Number of elements in @values_ptr. */
> __u32 count_values;
> - /* This is only used to count enum values, not blobs. The _blobs is
> - * simply because of a historical reason, i.e. backwards compat. */
> + /** @count_enum_blobs: Number of elements in @enum_blob_ptr. */
> __u32 count_enum_blobs;
> };
>
LGTM.
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
You can keep the ack after addressing Daniel's comments, too.
Thanks,
pq
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2021-07-22 7:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-21 6:49 [PATCH] drm: document drm_mode_get_property Simon Ser
2021-07-21 11:39 ` Daniel Vetter
2021-07-26 8:34 ` Simon Ser
2021-07-27 9:26 ` Daniel Vetter
2021-07-27 9:27 ` Simon Ser
2021-07-22 7:32 ` Pekka Paalanen [this message]
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=20210722103210.3fd9b2ae@eldfell \
--to=ppaalanen@gmail.com \
--cc=contact@emersion.fr \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=leandro.ribeiro@collabora.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 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.