drm/vkms: Add configfs support
From: | José Expósito <jose.exposito89-AT-gmail.com> | |
To: | louis.chauvet-AT-bootlin.com | |
Subject: | [PATCH v5 00/16] drm/vkms: Add configfs support | |
Date: | Wed, 07 May 2025 15:54:15 +0200 | |
Message-ID: | <20250507135431.53907-1-jose.exposito89@gmail.com> | |
Cc: | hamohammed.sa-AT-gmail.com, simona-AT-ffwll.ch, melissa.srw-AT-gmail.com, maarten.lankhorst-AT-linux.intel.com, mripard-AT-kernel.org, tzimmermann-AT-suse.de, airlied-AT-gmail.com, dri-devel-AT-lists.freedesktop.org, linux-kernel-AT-vger.kernel.org, José Expósito <jose.exposito89-AT-gmail.com> | |
Archive-link: | Article |
Hi everyone, This series allow to configure one or more VKMS instances without having to reload the driver using configfs. The series is structured in 3 blocks: - Patches 1..11: Basic device configuration. For simplicity, I kept the available options as minimal as possible. - Patches 12 and 13: New option to skip the default device creation and to-do cleanup. - Patches 14, 15 and 16: Allow to hot-plug and unplug connectors. This is not part of the minimal set of options, but I included in this series so it can be used as a template/example of how new configurations can be added. The process of configuring a VKMS device is documented in "vkms.rst". Finally, the code is thoroughly tested by a collection of IGT tests [1]. Best wishes, José Expósito [1] https://lists.freedesktop.org/archives/igt-dev/2025-Febru... Changes in v5: - Added Reviewed-by tags, thanks Louis! - Rebased on top of drm-misc-next - Link to v4: https://lore.kernel.org/dri-devel/20250407081425.6420-1-j... Changes in v4: - Since Louis and I worked on this together, set him as the author of some of the patches and me as co-developed-by to reflect this joint effort. - Rebased on top of drm-misc-next - Link to v3: https://lore.kernel.org/all/20250307163353.5896-1-jose.ex... Changes in v3: - Applied review comments by Louis Chauvet: (thanks!!) - Use scoped_guard() instead of guard(mutex)(...) - Fix a use-after-free error in the connector hot-plug code - Rebased on top of drm-misc-next - Link to v2: https://lore.kernel.org/all/20250225175936.7223-1-jose.ex... Changes in v2: - Applied review comments by Louis Chauvet: - Use guard(mutex)(...) instead of lock/unlock - Return -EBUSY when trying to modify a enabled device - Move the connector hot-plug related patches to the end - Rebased on top of drm-misc-next - Link to v1: https://lore.kernel.org/dri-devel/20250218170808.9507-1-j... José Expósito (6): drm/vkms: Expose device creation and destruction drm/vkms: Allow to configure the default device creation drm/vkms: Remove completed task from the TODO list drm/vkms: Allow to configure connector status drm/vkms: Allow to update the connector status drm/vkms: Allow to configure connector status via configfs Louis Chauvet (10): drm/vkms: Add and remove VKMS instances via configfs drm/vkms: Allow to configure multiple planes via configfs drm/vkms: Allow to configure the plane type via configfs drm/vkms: Allow to configure multiple CRTCs via configfs drm/vkms: Allow to configure CRTC writeback support via configfs drm/vkms: Allow to attach planes and CRTCs via configfs drm/vkms: Allow to configure multiple encoders via configfs drm/vkms: Allow to attach encoders and CRTCs via configfs drm/vkms: Allow to configure multiple connectors via configfs drm/vkms: Allow to attach connectors and encoders via configfs Documentation/gpu/vkms.rst | 100 ++- drivers/gpu/drm/vkms/Kconfig | 1 + drivers/gpu/drm/vkms/Makefile | 3 +- drivers/gpu/drm/vkms/tests/vkms_config_test.c | 24 + drivers/gpu/drm/vkms/vkms_config.c | 8 +- drivers/gpu/drm/vkms/vkms_config.h | 26 + drivers/gpu/drm/vkms/vkms_configfs.c | 833 ++++++++++++++++++ drivers/gpu/drm/vkms/vkms_configfs.h | 8 + drivers/gpu/drm/vkms/vkms_connector.c | 35 + drivers/gpu/drm/vkms/vkms_connector.h | 9 + drivers/gpu/drm/vkms/vkms_drv.c | 18 +- drivers/gpu/drm/vkms/vkms_drv.h | 20 + 12 files changed, 1072 insertions(+), 13 deletions(-) create mode 100644 drivers/gpu/drm/vkms/vkms_configfs.c create mode 100644 drivers/gpu/drm/vkms/vkms_configfs.h base-commit: a6c0a91ccb257eaec2aee080df06863ce7601315 -- 2.49.0