This source file includes following definitions.
- virtio_add_bool
- virtio_add_int
- virtio_gpu_features
- virtio_gpu_debugfs_irq_info
- virtio_gpu_debugfs_init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #include <drm/drm_debugfs.h>
27 #include <drm/drm_file.h>
28
29 #include "virtgpu_drv.h"
30
31 static void virtio_add_bool(struct seq_file *m, const char *name,
32 bool value)
33 {
34 seq_printf(m, "%-16s : %s\n", name, value ? "yes" : "no");
35 }
36
37 static void virtio_add_int(struct seq_file *m, const char *name,
38 int value)
39 {
40 seq_printf(m, "%-16s : %d\n", name, value);
41 }
42
43 static int virtio_gpu_features(struct seq_file *m, void *data)
44 {
45 struct drm_info_node *node = (struct drm_info_node *) m->private;
46 struct virtio_gpu_device *vgdev = node->minor->dev->dev_private;
47
48 virtio_add_bool(m, "virgl", vgdev->has_virgl_3d);
49 virtio_add_bool(m, "edid", vgdev->has_edid);
50 virtio_add_int(m, "cap sets", vgdev->num_capsets);
51 virtio_add_int(m, "scanouts", vgdev->num_scanouts);
52 return 0;
53 }
54
55 static int
56 virtio_gpu_debugfs_irq_info(struct seq_file *m, void *data)
57 {
58 struct drm_info_node *node = (struct drm_info_node *) m->private;
59 struct virtio_gpu_device *vgdev = node->minor->dev->dev_private;
60
61 seq_printf(m, "fence %llu %lld\n",
62 (u64)atomic64_read(&vgdev->fence_drv.last_seq),
63 vgdev->fence_drv.sync_seq);
64 return 0;
65 }
66
67 static struct drm_info_list virtio_gpu_debugfs_list[] = {
68 { "virtio-gpu-features", virtio_gpu_features },
69 { "virtio-gpu-irq-fence", virtio_gpu_debugfs_irq_info, 0, NULL },
70 };
71
72 #define VIRTIO_GPU_DEBUGFS_ENTRIES ARRAY_SIZE(virtio_gpu_debugfs_list)
73
74 int
75 virtio_gpu_debugfs_init(struct drm_minor *minor)
76 {
77 drm_debugfs_create_files(virtio_gpu_debugfs_list,
78 VIRTIO_GPU_DEBUGFS_ENTRIES,
79 minor->debugfs_root, minor);
80 return 0;
81 }