linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "José Expósito" <jose.exposito89@gmail.com>
To: Louis Chauvet <louis.chauvet@bootlin.com>
Cc: Haneen Mohammed <hamohammed.sa@gmail.com>,
	Simona Vetter <simona@ffwll.ch>,
	Melissa Wen <melissa.srw@gmail.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>,
	Jonathan Corbet <corbet@lwn.net>,
	victoria@system76.com, sebastian.wick@redhat.com,
	thomas.petazzoni@bootlin.com, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org
Subject: Re: [PATCH RESEND v2 07/32] drm/blend: Get a rotation name from it's bitfield
Date: Thu, 13 Nov 2025 15:23:14 +0100	[thread overview]
Message-ID: <aRXp0rfAoXxJ8PEh@fedora> (raw)
In-Reply-To: <20251029-vkms-all-config-v2-7-a49a2d4cba26@bootlin.com>

On Wed, Oct 29, 2025 at 03:36:44PM +0100, Louis Chauvet wrote:
> Having the rotation/reflection name from its value can be useful for
> debugging purpose. Extract the rotation property table and implement
> drm_get_rotation_name.

Reviewed-by: José Expósito <jose.exposito@redhat.com>
 
> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
> ---
>  drivers/gpu/drm/drm_blend.c | 35 ++++++++++++++++++++++++++---------
>  include/drm/drm_blend.h     |  2 ++
>  2 files changed, 28 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_blend.c b/drivers/gpu/drm/drm_blend.c
> index 6852d73c931c..bc7c05e20242 100644
> --- a/drivers/gpu/drm/drm_blend.c
> +++ b/drivers/gpu/drm/drm_blend.c
> @@ -241,6 +241,31 @@ int drm_plane_create_alpha_property(struct drm_plane *plane)
>  }
>  EXPORT_SYMBOL(drm_plane_create_alpha_property);
>  
> +static const struct drm_prop_enum_list rotation_props[] = {
> +	{ __builtin_ffs(DRM_MODE_ROTATE_0) - 1,   "rotate-0" },
> +	{ __builtin_ffs(DRM_MODE_ROTATE_90) - 1,  "rotate-90" },
> +	{ __builtin_ffs(DRM_MODE_ROTATE_180) - 1, "rotate-180" },
> +	{ __builtin_ffs(DRM_MODE_ROTATE_270) - 1, "rotate-270" },
> +	{ __builtin_ffs(DRM_MODE_REFLECT_X) - 1,  "reflect-x" },
> +	{ __builtin_ffs(DRM_MODE_REFLECT_Y) - 1,  "reflect-y" },
> +};
> +
> +/**
> + * drm_get_rotation_name - Return the name of a rotation
> + * @rotation: The rotation mask (DRM_MODE_ROTATE_* | DRM_MODE_REFLECT_*)
> + *
> + * Returns: the name of the rotation type (unknown) if rotation is not
> + * a known rotation/reflection
> + */
> +const char *drm_get_rotation_name(unsigned int rotation)
> +{
> +	if (rotation < ARRAY_SIZE(rotation_props))
> +		return rotation_props[rotation].name;
> +
> +	return "(unknown)";
> +}
> +EXPORT_SYMBOL(drm_get_rotation_name);
> +
>  /**
>   * drm_plane_create_rotation_property - create a new rotation property
>   * @plane: drm plane
> @@ -279,14 +304,6 @@ int drm_plane_create_rotation_property(struct drm_plane *plane,
>  				       unsigned int rotation,
>  				       unsigned int supported_rotations)
>  {
> -	static const struct drm_prop_enum_list props[] = {
> -		{ __builtin_ffs(DRM_MODE_ROTATE_0) - 1,   "rotate-0" },
> -		{ __builtin_ffs(DRM_MODE_ROTATE_90) - 1,  "rotate-90" },
> -		{ __builtin_ffs(DRM_MODE_ROTATE_180) - 1, "rotate-180" },
> -		{ __builtin_ffs(DRM_MODE_ROTATE_270) - 1, "rotate-270" },
> -		{ __builtin_ffs(DRM_MODE_REFLECT_X) - 1,  "reflect-x" },
> -		{ __builtin_ffs(DRM_MODE_REFLECT_Y) - 1,  "reflect-y" },
> -	};
>  	struct drm_property *prop;
>  
>  	WARN_ON((supported_rotations & DRM_MODE_ROTATE_MASK) == 0);
> @@ -294,7 +311,7 @@ int drm_plane_create_rotation_property(struct drm_plane *plane,
>  	WARN_ON(rotation & ~supported_rotations);
>  
>  	prop = drm_property_create_bitmask(plane->dev, 0, "rotation",
> -					   props, ARRAY_SIZE(props),
> +					   rotation_props, ARRAY_SIZE(rotation_props),
>  					   supported_rotations);
>  	if (!prop)
>  		return -ENOMEM;
> diff --git a/include/drm/drm_blend.h b/include/drm/drm_blend.h
> index 88bdfec3bd88..381d1f8d815b 100644
> --- a/include/drm/drm_blend.h
> +++ b/include/drm/drm_blend.h
> @@ -42,6 +42,8 @@ static inline bool drm_rotation_90_or_270(unsigned int rotation)
>  
>  #define DRM_BLEND_ALPHA_OPAQUE		0xffff
>  
> +const char *drm_get_rotation_name(unsigned int rotation);
> +
>  int drm_plane_create_alpha_property(struct drm_plane *plane);
>  int drm_plane_create_rotation_property(struct drm_plane *plane,
>  				       unsigned int rotation,
> 
> -- 
> 2.51.0
> 

  reply	other threads:[~2025-11-13 14:23 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-29 14:36 [PATCH RESEND v2 00/32] VKMS: Introduce multiple configFS attributes Louis Chauvet
2025-10-29 14:36 ` [PATCH RESEND v2 01/32] drm/drm_mode_config: Add helper to get plane type name Louis Chauvet
2025-11-13 14:06   ` José Expósito
2025-11-17 11:28     ` Louis Chauvet
2025-12-18 17:56   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 02/32] drm/vkms: Explicitly display plane type Louis Chauvet
2025-11-13 14:07   ` José Expósito
2025-12-18 17:56   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 03/32] drm/vkms: Use enabled/disabled instead of 1/0 for debug Louis Chauvet
2025-11-13 14:09   ` José Expósito
2025-12-18 17:57     ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 04/32] drm/vkms: Explicitly display connector status Louis Chauvet
2025-11-13 14:11   ` José Expósito
2025-12-18 17:56   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 05/32] drm/vkms: Introduce config for plane name Louis Chauvet
2025-11-13 14:17   ` José Expósito
2025-11-17 14:12     ` Louis Chauvet
2025-10-29 14:36 ` [PATCH RESEND v2 06/32] drm/vkms: Introduce configfs " Louis Chauvet
2025-11-13 14:21   ` José Expósito
2025-11-17  9:56     ` Louis Chauvet
2025-12-18 17:58       ` Luca Ceresoli
2025-12-19 15:49         ` Louis Chauvet
2025-10-29 14:36 ` [PATCH RESEND v2 07/32] drm/blend: Get a rotation name from it's bitfield Louis Chauvet
2025-11-13 14:23   ` José Expósito [this message]
2025-12-18 17:58   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 08/32] drm/vkms: Introduce config for plane rotation Louis Chauvet
2025-12-18 17:59   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 09/32] drm/vkms: Introduce configfs " Louis Chauvet
2025-12-18 17:59   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 10/32] drm/drm_color_mgmt: Expose drm_get_color_encoding_name Louis Chauvet
2025-12-18 17:59   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 11/32] drm/vkms: Introduce config for plane color encoding Louis Chauvet
2025-12-18 17:59   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 12/32] drm/vkms: Introduce configfs " Louis Chauvet
2025-12-18 17:59   ` Luca Ceresoli
2025-12-19 16:40     ` Louis Chauvet
2025-12-19 17:51       ` Louis Chauvet
2025-10-29 14:36 ` [PATCH RESEND v2 13/32] drm/drm_color_mgmt: Expose drm_get_color_range_name Louis Chauvet
2025-12-18 17:59   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 14/32] drm/vkms: Introduce config for plane color range Louis Chauvet
2025-12-18 17:59   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 15/32] drm/vkms: Introduce configfs " Louis Chauvet
2025-12-18 18:00   ` Luca Ceresoli
2025-12-19 16:55     ` Louis Chauvet
2025-10-29 14:36 ` [PATCH RESEND v2 16/32] drm/vkms: Introduce config for plane format Louis Chauvet
2025-12-19 14:55   ` Luca Ceresoli
2025-12-19 18:31     ` Louis Chauvet
2025-10-29 14:36 ` [PATCH RESEND v2 17/32] drm/vkms: Introduce configfs " Louis Chauvet
2025-12-19 17:07   ` Luca Ceresoli
2025-12-19 17:28     ` Louis Chauvet
2025-10-29 14:36 ` [PATCH RESEND v2 18/32] drm/vkms: Properly render plane using their zpos Louis Chauvet
2025-12-19 17:08   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 19/32] drm/vkms: Introduce config for plane zpos property Louis Chauvet
2025-12-19 17:08   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 20/32] drm/vkms: Introduce configfs " Louis Chauvet
2025-12-19 17:08   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 21/32] drm/vkms: Introduce config for connector type Louis Chauvet
2025-12-19 17:08   ` Luca Ceresoli
2025-10-29 14:36 ` [PATCH RESEND v2 22/32] drm/vkms: Introduce configfs " Louis Chauvet
2025-12-19 17:08   ` Luca Ceresoli
2025-10-29 14:37 ` [PATCH RESEND v2 23/32] drm/connector: Export drm_get_colorspace_name Louis Chauvet
2025-12-19 17:08   ` Luca Ceresoli
2025-10-29 14:37 ` [PATCH RESEND v2 24/32] drm/vkms: Introduce config for connector supported colorspace Louis Chauvet
2025-12-19 17:08   ` Luca Ceresoli
2025-10-29 14:37 ` [PATCH RESEND v2 25/32] drm/vkms: Introduce configfs " Louis Chauvet
2025-12-19 18:56   ` Luca Ceresoli
2025-10-29 14:37 ` [PATCH RESEND v2 26/32] drm/vkms: Introduce config for connector EDID Louis Chauvet
2025-12-19 18:56   ` Luca Ceresoli
2025-10-29 14:37 ` [PATCH RESEND v2 27/32] drm/vkms: Introduce configfs " Louis Chauvet
2025-12-19 18:56   ` Luca Ceresoli
2025-10-29 14:37 ` [PATCH RESEND v2 28/32] drm/vkms: Store the enabled/disabled status for connector Louis Chauvet
2025-12-19 18:57   ` Luca Ceresoli
2025-10-29 14:37 ` [PATCH RESEND v2 29/32] drm/vkms: Rename vkms_connector_init to vkms_connector_init_static Louis Chauvet
2025-12-19 18:58   ` Luca Ceresoli
2025-12-19 19:11     ` Louis Chauvet
2025-12-19 20:47       ` Luca Ceresoli
2025-10-29 14:37 ` [PATCH RESEND v2 30/32] drm/vkms: Extract common code for connector initialization Louis Chauvet
2025-12-19 20:47   ` Luca Ceresoli
2025-10-29 14:37 ` [PATCH RESEND v2 31/32] drm/vkms: Allow to hot-add connectors Louis Chauvet
2025-12-19 20:47   ` Luca Ceresoli
2025-10-29 14:37 ` [PATCH RESEND v2 32/32] drm/vkms: Introduce configfs for dynamic connector creation Louis Chauvet
2025-12-19 20:47   ` Luca Ceresoli
2025-12-19 22:01     ` Louis Chauvet

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=aRXp0rfAoXxJ8PEh@fedora \
    --to=jose.exposito89@gmail.com \
    --cc=airlied@gmail.com \
    --cc=corbet@lwn.net \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hamohammed.sa@gmail.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=louis.chauvet@bootlin.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=melissa.srw@gmail.com \
    --cc=mripard@kernel.org \
    --cc=sebastian.wick@redhat.com \
    --cc=simona@ffwll.ch \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=tzimmermann@suse.de \
    --cc=victoria@system76.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;
as well as URLs for NNTP newsgroup(s).