[PATCH RESEND v2 00/32] VKMS: Introduce multiple configFS attributes

Louis Chauvet
2025-10-29T14:36:53Z

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,7,10,13,23 are to expose human readable strings from drm core
PATCH 2-4 are to expose human readable plane type in debugfs
PATCH 5,6 plane attribute
PATCH 8,9 plane rotation
PATCH 11,12 plane color encoding
PATCH 14,15 plane color range
PATCH 16,17 plane format
PATCH 18 properly use zpos
PATCH 19,20 plane zpos
PATCH 21,22 connector type
PATCH 24,25 connector supported colorspace
PATCH 26,27 connector EDID
PATCH 28,29 preparatory work for dynamic connectors
PATCH 30,31 dynamic connectors

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.

PPS: Resend because it was rejected by dri-devel

Signed-off-by: Louis Chauvet <louis.chauvet@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

---
Louis Chauvet (32):
drm/drm_mode_config: Add helper to get plane type name
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/blend: Get a rotation name from it's bitfield
drm/vkms: Introduce config for plane rotation
drm/vkms: Introduce configfs for plane rotation
drm/drm_color_mgmt: Expose drm_get_color_encoding_name
drm/vkms: Introduce config for plane color encoding
drm/vkms: Introduce configfs for plane color encoding
drm/drm_color_mgmt: Expose drm_get_color_range_name
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/connector: Export drm_get_colorspace_name
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: Rename vkms_connector_init to vkms_connector_init_static
drm/vkms: Extract common code for connector initialization
drm/vkms: Allow to hot-add connectors
drm/vkms: Introduce configfs for dynamic connector creation

Documentation/gpu/vkms.rst | 45 +-
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 | 13 +
drivers/gpu/drm/vkms/tests/Makefile | 1 +
drivers/gpu/drm/vkms/tests/vkms_config_test.c | 247 +++++++
drivers/gpu/drm/vkms/tests/vkms_configfs_test.c | 102 +++
drivers/gpu/drm/vkms/vkms_config.c | 333 ++++++++-
drivers/gpu/drm/vkms/vkms_config.h | 577 +++++++++++++++
drivers/gpu/drm/vkms/vkms_configfs.c | 939 +++++++++++++++++++++++-
drivers/gpu/drm/vkms/vkms_configfs.h | 6 +
drivers/gpu/drm/vkms/vkms_connector.c | 168 ++++-
drivers/gpu/drm/vkms/vkms_connector.h | 38 +-
drivers/gpu/drm/vkms/vkms_crtc.c | 11 +-
drivers/gpu/drm/vkms/vkms_drv.h | 5 +-
drivers/gpu/drm/vkms/vkms_output.c | 19 +-
drivers/gpu/drm/vkms/vkms_plane.c | 79 +-
include/drm/drm_blend.h | 2 +
include/drm/drm_color_mgmt.h | 3 +
include/drm/drm_mode_config.h | 3 +
22 files changed, 2534 insertions(+), 103 deletions(-)
---
base-commit: 57fe8285dc4764171fa9eb1f153cae3bb313d6fc
change-id: 20251017-vkms-all-config-bd0c2a01846f

Best regards,
--
Louis Chauvet <louis.chauvet@bootlin.com>