]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/vkms: Expose device creation and destruction
authorJosé Expósito <jose.exposito89@gmail.com>
Thu, 16 Oct 2025 17:56:03 +0000 (19:56 +0200)
committerLuca Ceresoli <luca.ceresoli@bootlin.com>
Wed, 22 Oct 2025 11:19:25 +0000 (13:19 +0200)
In preparation for configfs support, expose vkms_create() and
vkms_destroy().

Tested-by: Mark Yacoub <markyacoub@google.com>
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com>
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Link: https://lore.kernel.org/r/20251016175618.10051-2-jose.exposito89@gmail.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
drivers/gpu/drm/vkms/vkms_drv.c
drivers/gpu/drm/vkms/vkms_drv.h

index e8472d9b6e3b2b5d6d497763288bf3dc6fde5987..78af37c7bd833e9a923769f068813dc77676b056 100644 (file)
@@ -146,7 +146,7 @@ static int vkms_modeset_init(struct vkms_device *vkmsdev)
        return vkms_output_init(vkmsdev);
 }
 
-static int vkms_create(struct vkms_config *config)
+int vkms_create(struct vkms_config *config)
 {
        int ret;
        struct faux_device *fdev;
@@ -229,7 +229,7 @@ static int __init vkms_init(void)
        return 0;
 }
 
-static void vkms_destroy(struct vkms_config *config)
+void vkms_destroy(struct vkms_config *config)
 {
        struct faux_device *fdev;
 
index fb9711e1c6fbd3e31671bbafafa8178eedb1eec3..db260df1d4f64a3a778d32939dd09d3dee35a4b7 100644 (file)
@@ -256,6 +256,26 @@ struct vkms_device {
 #define to_vkms_plane_state(target)\
        container_of(target, struct vkms_plane_state, base.base)
 
+/**
+ * vkms_create() - Create a device from a configuration
+ * @config: Config used to configure the new device
+ *
+ * A pointer to the created vkms_device is stored in @config
+ *
+ * Returns:
+ * 0 on success or an error.
+ */
+int vkms_create(struct vkms_config *config);
+
+/**
+ * vkms_destroy() - Destroy a device
+ * @config: Config from which the device was created
+ *
+ * The device is completely removed, but the @config is not freed. It can be
+ * reused or destroyed with vkms_config_destroy().
+ */
+void vkms_destroy(struct vkms_config *config);
+
 /**
  * vkms_crtc_init() - Initialize a CRTC for VKMS
  * @dev: DRM device associated with the VKMS buffer