drm/vkms: Create a debugfs file to get vkms config data
authorBeatriz Martins de Carvalho <martinsdecarvalhobeatriz@gmail.com>
Thu, 8 Jul 2021 09:20:02 +0000 (10:20 +0100)
committerMelissa Wen <melissa.srw@gmail.com>
Thu, 8 Jul 2021 20:44:13 +0000 (21:44 +0100)
Creating a vkms_config debugfs file in vkms_drv.c to get/track vkms config
data, for the long-term plan of making vkms configurable and have multiple
different instances.

Reviewed-by: Melissa Wen <melissa.srw@gmail.com>
Signed-off-by: Beatriz Martins de Carvalho <martinsdecarvalhobeatriz@gmail.com>
Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210708092002.11847-1-martinsdecarvalhobeatriz@gmail.com
drivers/gpu/drm/vkms/vkms_drv.c

index e806958027c2b483ede57d6925cd11d7c90b7bc4..0ffe5f0e33f75b96adacdc5f607e1a373e8bf7c2 100644 (file)
@@ -28,6 +28,9 @@
 
 #include "vkms_drv.h"
 
+#include <drm/drm_print.h>
+#include <drm/drm_debugfs.h>
+
 #define DRIVER_NAME    "vkms"
 #define DRIVER_DESC    "Virtual Kernel Mode Setting"
 #define DRIVER_DATE    "20180514"
@@ -86,12 +89,37 @@ static void vkms_atomic_commit_tail(struct drm_atomic_state *old_state)
        drm_atomic_helper_cleanup_planes(dev, old_state);
 }
 
+static int vkms_config_show(struct seq_file *m, void *data)
+{
+       struct drm_info_node *node = (struct drm_info_node *)m->private;
+       struct drm_device *dev = node->minor->dev;
+       struct vkms_device *vkmsdev = drm_device_to_vkms_device(dev);
+
+       seq_printf(m, "writeback=%d\n", vkmsdev->config->writeback);
+       seq_printf(m, "cursor=%d\n", vkmsdev->config->cursor);
+       seq_printf(m, "overlay=%d\n", vkmsdev->config->overlay);
+
+       return 0;
+}
+
+static const struct drm_info_list vkms_config_debugfs_list[] = {
+       { "vkms_config", vkms_config_show, 0 },
+};
+
+static void vkms_config_debugfs_init(struct drm_minor *minor)
+{
+       drm_debugfs_create_files(vkms_config_debugfs_list, ARRAY_SIZE(vkms_config_debugfs_list),
+                                minor->debugfs_root, minor);
+}
+
 static const struct drm_driver vkms_driver = {
        .driver_features        = DRIVER_MODESET | DRIVER_ATOMIC | DRIVER_GEM,
        .release                = vkms_release,
        .fops                   = &vkms_driver_fops,
        DRM_GEM_SHMEM_DRIVER_OPS,
 
+       .debugfs_init           = vkms_config_debugfs_init,
+
        .name                   = DRIVER_NAME,
        .desc                   = DRIVER_DESC,
        .date                   = DRIVER_DATE,