From: Louis Chauvet <louis.chauvet@bootlin.com>
To: 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>,
jose.exposito89@gmail.com, Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
Miguel Ojeda <ojeda@kernel.org>,
Nathan Chancellor <nathan@kernel.org>,
Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>
Cc: victoria@system76.com, sebastian.wick@redhat.com,
victoria@system76.com, airlied@gmail.com,
thomas.petazzoni@bootlin.com, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
"Louis Chauvet" <louis.chauvet@bootlin.com>,
llvm@lists.linux.dev, "José Expósito" <jose.exposito@redhat.com>,
"Luca Ceresoli" <luca.ceresoli@bootlin.com>
Subject: [PATCH v4 00/37] VKMS: Introduce multiple configFS attributes
Date: Wed, 22 Apr 2026 18:47:57 +0200 [thread overview]
Message-ID: <20260422-vkms-all-config-v4-0-dbb52e9aadc3@bootlin.com> (raw)
VKMS have a wide range of options. The aim of this series is to introduce
many configfs attribute so VKMS can be used to test a wide range of
configurations.
PATCH 1-5 are to expose human readable strings from drm core
PATCH 6 is a fix for rotation value
PATCH 7 is ABI documentation
PATCH 8 added some error checks in plane configuration
PATCH 9 cleanup in plane_release
PATCH 10-12 change the display in configfs to be more readable
PATCH 13,14 plane name
PATCH 15,16 plane rotation
PATCH 17,18 plane color encoding
PATCH 19,20 plane color range
PATCH 21,22 plane format
PATCH 23 properly use zpos
PATCH 24,25 plane zpos
PATCH 26,27 connector type
PATCH 28 preparation in connector initialization
PATCH 29,30 connector supported colorspace
PATCH 31,32 connector EDID
PATCH 33-35 dynamic connectors
PATCH 36-37 PATH property
PS: Each pair of config/configfs patch are independant. I could
technically create ≈10 different series, but there will be a lot of
(trivial) conflicts between them. I will be happy to reordoer, split and
partially apply this series to help the review process.
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
---
Changes in v4:
- Introduced a way to change the PATH property
- Reordered drm-only patches to the front of the series.
- Fixed a bug when dynamic connector are allocated/freed (drmm instead of
kzalloc)
- Properly handle errors in vkms_connector_init
- Only parse formats one by one (no more complex algorithm, you will have
to write multiple times for multiple formats)
- Use sysfs_emit instead of sprintf
- Fix rotate property default value
- Link to v3: https://lore.kernel.org/r/20251222-vkms-all-config-v3-0-ba42dc3fb9ff@bootlin.com
Changes in v3:
- Added Documentation/ABI (Thomas Petazzoni)
- PATCH 2: Clarify return value
- PATCH 6,7: Avoid passing null to printf
- PATCH 7: Restrict plane name to A-Za-z0-9
- PATCH 12: Fix missing s
- PATCH 13: Add macro to avoid repetition, fix missing s, make code
consistent, remove wrong comment, properly check bit values
- PATCH 15: Fix missing s
- PATCH 16: Fix missing s, make code consistent, remove wrong comments,
properly check value and fix default_color_range value
- PATCH 17: Create function to reduce code complexity, fix missing s
- PATCH 18: Fix parsing, rename data, reject strings > 4 chars
- PATCH 20: Remove duplicated lines, fix test comments simplify conditions,
remove useless documentation,
- PATCH 21: {Min,Max}imal -> {Min,Max}imum, simplify commit log
- PATCH 25: Fix wrong comment
- PATCH 26: Rename type to colorspaces
- PATCH 27: Improve comment, avoid useless iterations
- PATCH 28: Fix typo in commit log
- PATCH 29: Fix typo in commit log
- PATCH 30: Remove useless include and move it to proper commit
- PATCH 32: Clarify documentation
- PATCH 33: Simplify code and use better variable names
- PATCH *: Fix EINVAL/EBUSY
- Link to v2: https://lore.kernel.org/r/20251029-vkms-all-config-v2-0-be20b9bf146e@bootlin.com
Changes in v2:
- PATCH 1: reorder includes (José)
- PATCH 2: use name property instead of folder name (José)
- PATCH 3: Fix default rotations (José)
- PATCH 3,5,7,12: Add tests and extract validation for planes (José)
- PATCH 3,5: Do not create color range/encoding properties if not set
- PATCH 5,6,7,8: Set plural form for vkms_config_plane fields (José)
- PATCH 4,6,8,13: Remove checking for default in supported (José)
- PATCH 9: Add break in vkms_config_plane_add_format (José)
- PATCH 12: fix zpos_enabled typo (José)
- PATCH 13: fix documentation (José)
- Add debug display (José)
- PATCH 20: use drmm_kzalloc instead of kzalloc (José)
- PATCH 22: simplify the code (José)
- Link to v1: https://lore.kernel.org/r/20251018-vkms-all-config-v1-0-a7760755d92d@bootlin.com
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
To: Maxime Ripard <mripard@kernel.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
To: David Airlie <airlied@gmail.com>
To: Simona Vetter <simona@ffwll.ch>
To: Louis Chauvet <louis.chauvet@bootlin.com>
To: Haneen Mohammed <hamohammed.sa@gmail.com>
To: Melissa Wen <melissa.srw@gmail.com>
To: Jonathan Corbet <corbet@lwn.net>
To: Shuah Khan <skhan@linuxfoundation.org>
To: Miguel Ojeda <ojeda@kernel.org>
To: Nathan Chancellor <nathan@kernel.org>
To: Nick Desaulniers <nick.desaulniers+lkml@gmail.com>
To: Bill Wendling <morbo@google.com>
To: Justin Stitt <justinstitt@google.com>
Cc: thomas.petazzoni@bootlin.com
Cc: dri-devel@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: llvm@lists.linux.dev
---
Louis Chauvet (37):
drm/drm_mode_config: Add helper to get plane type name
drm/blend: Get a rotation name from it's bitfield
drm/drm_color_mgmt: Expose drm_get_color_encoding_name
drm/drm_color_mgmt: Expose drm_get_color_range_name
drm/connector: Export drm_get_colorspace_name
drm/drm_atomic_state_helper: Properly load default value for rotation
Documentation: ABI: vkms: Add current VKMS ABI documentation
drm/vkms: Add error handling in plane config creation
drm/vkms: Simplify plane_release code
drm/vkms: Explicitly display plane type
drm/vkms: Use enabled/disabled instead of 1/0 for debug
drm/vkms: Explicitly display connector status
drm/vkms: Introduce config for plane name
drm/vkms: Introduce configfs for plane name
drm/vkms: Introduce config for plane rotation
drm/vkms: Introduce configfs for plane rotation
drm/vkms: Introduce config for plane color encoding
drm/vkms: Introduce configfs for plane color encoding
drm/vkms: Introduce config for plane color range
drm/vkms: Introduce configfs for plane color range
drm/vkms: Introduce config for plane format
drm/vkms: Introduce configfs for plane format
drm/vkms: Properly render plane using their zpos
drm/vkms: Introduce config for plane zpos property
drm/vkms: Introduce configfs for plane zpos property
drm/vkms: Introduce config for connector type
drm/vkms: Introduce configfs for connector type
drm/vkms: Rename vkms_connector_init to vkms_connector_init_static
drm/vkms: Introduce config for connector supported colorspace
drm/vkms: Introduce configfs for connector supported colorspace
drm/vkms: Introduce config for connector EDID
drm/vkms: Introduce configfs for connector EDID
drm/vkms: Store the enabled/disabled status for connector
drm/vkms: Allow to hot-add connectors
drm/vkms: Introduce configfs for dynamic connector creation
drm/vkms: Add connector parent configuration in vkms_config
drm/vkms: Add ConfigFS interface for connector parent and port_id
.clang-format | 2 +
Documentation/ABI/testing/configfs-vkms | 256 ++++
Documentation/gpu/vkms.rst | 45 +-
drivers/gpu/drm/drm_atomic_state_helper.c | 6 +
drivers/gpu/drm/drm_blend.c | 35 +-
drivers/gpu/drm/drm_color_mgmt.c | 4 +-
drivers/gpu/drm/drm_connector.c | 1 +
drivers/gpu/drm/drm_crtc_internal.h | 6 -
drivers/gpu/drm/drm_mode_config.c | 16 +
drivers/gpu/drm/vkms/tests/Makefile | 3 +-
drivers/gpu/drm/vkms/tests/vkms_config_test.c | 513 +++++++-
drivers/gpu/drm/vkms/tests/vkms_configfs_test.c | 102 ++
drivers/gpu/drm/vkms/vkms_config.c | 425 ++++++-
drivers/gpu/drm/vkms/vkms_config.h | 640 +++++++++-
drivers/gpu/drm/vkms/vkms_configfs.c | 1444 +++++++++++++++++++----
drivers/gpu/drm/vkms/vkms_configfs.h | 4 +
drivers/gpu/drm/vkms/vkms_connector.c | 266 ++++-
drivers/gpu/drm/vkms/vkms_connector.h | 48 +-
drivers/gpu/drm/vkms/vkms_crtc.c | 10 +-
drivers/gpu/drm/vkms/vkms_output.c | 15 +-
drivers/gpu/drm/vkms/vkms_plane.c | 73 +-
include/drm/drm_blend.h | 2 +
include/drm/drm_color_mgmt.h | 3 +
include/drm/drm_mode_config.h | 3 +
24 files changed, 3623 insertions(+), 299 deletions(-)
---
base-commit: 8711eb2dde2ed44c98714b875dcf7329950c71ba
change-id: 20251017-vkms-all-config-bd0c2a01846f
Best regards,
--
Louis Chauvet <louis.chauvet@bootlin.com>
next reply other threads:[~2026-04-22 16:48 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-22 16:47 Louis Chauvet [this message]
2026-04-22 16:47 ` [PATCH v4 01/37] drm/drm_mode_config: Add helper to get plane type name Louis Chauvet
2026-04-22 16:47 ` [PATCH v4 02/37] drm/blend: Get a rotation name from it's bitfield Louis Chauvet
2026-04-22 16:52 ` Ville Syrjälä
2026-04-22 16:48 ` [PATCH v4 03/37] drm/drm_color_mgmt: Expose drm_get_color_encoding_name Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 04/37] drm/drm_color_mgmt: Expose drm_get_color_range_name Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 05/37] drm/connector: Export drm_get_colorspace_name Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 06/37] drm/drm_atomic_state_helper: Properly load default value for rotation Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 07/37] Documentation: ABI: vkms: Add current VKMS ABI documentation Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 08/37] drm/vkms: Add error handling in plane config creation Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 09/37] drm/vkms: Simplify plane_release code Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 10/37] drm/vkms: Explicitly display plane type Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 11/37] drm/vkms: Use enabled/disabled instead of 1/0 for debug Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 12/37] drm/vkms: Explicitly display connector status Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 13/37] drm/vkms: Introduce config for plane name Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 14/37] drm/vkms: Introduce configfs " Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 15/37] drm/vkms: Introduce config for plane rotation Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 16/37] drm/vkms: Introduce configfs " Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 17/37] drm/vkms: Introduce config for plane color encoding Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 18/37] drm/vkms: Introduce configfs " Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 19/37] drm/vkms: Introduce config for plane color range Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 20/37] drm/vkms: Introduce configfs " Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 21/37] drm/vkms: Introduce config for plane format Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 22/37] drm/vkms: Introduce configfs " Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 23/37] drm/vkms: Properly render plane using their zpos Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 24/37] drm/vkms: Introduce config for plane zpos property Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 25/37] drm/vkms: Introduce configfs " Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 26/37] drm/vkms: Introduce config for connector type Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 27/37] drm/vkms: Introduce configfs " Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 28/37] drm/vkms: Rename vkms_connector_init to vkms_connector_init_static Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 29/37] drm/vkms: Introduce config for connector supported colorspace Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 30/37] drm/vkms: Introduce configfs " Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 31/37] drm/vkms: Introduce config for connector EDID Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 32/37] drm/vkms: Introduce configfs " Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 33/37] drm/vkms: Store the enabled/disabled status for connector Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 34/37] drm/vkms: Allow to hot-add connectors Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 35/37] drm/vkms: Introduce configfs for dynamic connector creation Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 36/37] drm/vkms: Add connector parent configuration in vkms_config Louis Chauvet
2026-04-22 16:48 ` [PATCH v4 37/37] drm/vkms: Add ConfigFS interface for connector parent and port_id 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=20260422-vkms-all-config-v4-0-dbb52e9aadc3@bootlin.com \
--to=louis.chauvet@bootlin.com \
--cc=airlied@gmail.com \
--cc=corbet@lwn.net \
--cc=dri-devel@lists.freedesktop.org \
--cc=hamohammed.sa@gmail.com \
--cc=jose.exposito89@gmail.com \
--cc=jose.exposito@redhat.com \
--cc=justinstitt@google.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=luca.ceresoli@bootlin.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=melissa.srw@gmail.com \
--cc=morbo@google.com \
--cc=mripard@kernel.org \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=ojeda@kernel.org \
--cc=sebastian.wick@redhat.com \
--cc=simona@ffwll.ch \
--cc=skhan@linuxfoundation.org \
--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