diff options
author | Noralf Trønnes <noralf@tronnes.org> | 2018-07-03 12:03:51 -0400 |
---|---|---|
committer | Noralf Trønnes <noralf@tronnes.org> | 2018-07-10 08:53:35 -0400 |
commit | e896c132eb2cb4975d99477ea7e95aedb6dffa95 (patch) | |
tree | 2c3d7befcc54a7ca2de048b5ecfaed187becc44d | |
parent | 894a677f4b3e6d2ab8d01bb46c1fbd5f92e4591b (diff) |
drm/debugfs: Add internal client debugfs file
Print the names of the internal clients currently attached.
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20180703160354.59955-6-noralf@tronnes.org
-rw-r--r-- | drivers/gpu/drm/drm_client.c | 28 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_debugfs.c | 7 | ||||
-rw-r--r-- | include/drm/drm_client.h | 3 |
3 files changed, 38 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_client.c b/drivers/gpu/drm/drm_client.c index 743495f7f833..4039a4d103a8 100644 --- a/drivers/gpu/drm/drm_client.c +++ b/drivers/gpu/drm/drm_client.c | |||
@@ -385,3 +385,31 @@ void drm_client_framebuffer_delete(struct drm_client_buffer *buffer) | |||
385 | drm_client_buffer_delete(buffer); | 385 | drm_client_buffer_delete(buffer); |
386 | } | 386 | } |
387 | EXPORT_SYMBOL(drm_client_framebuffer_delete); | 387 | EXPORT_SYMBOL(drm_client_framebuffer_delete); |
388 | |||
389 | #ifdef CONFIG_DEBUG_FS | ||
390 | static int drm_client_debugfs_internal_clients(struct seq_file *m, void *data) | ||
391 | { | ||
392 | struct drm_info_node *node = m->private; | ||
393 | struct drm_device *dev = node->minor->dev; | ||
394 | struct drm_printer p = drm_seq_file_printer(m); | ||
395 | struct drm_client_dev *client; | ||
396 | |||
397 | mutex_lock(&dev->clientlist_mutex); | ||
398 | list_for_each_entry(client, &dev->clientlist, list) | ||
399 | drm_printf(&p, "%s\n", client->name); | ||
400 | mutex_unlock(&dev->clientlist_mutex); | ||
401 | |||
402 | return 0; | ||
403 | } | ||
404 | |||
405 | static const struct drm_info_list drm_client_debugfs_list[] = { | ||
406 | { "internal_clients", drm_client_debugfs_internal_clients, 0 }, | ||
407 | }; | ||
408 | |||
409 | int drm_client_debugfs_init(struct drm_minor *minor) | ||
410 | { | ||
411 | return drm_debugfs_create_files(drm_client_debugfs_list, | ||
412 | ARRAY_SIZE(drm_client_debugfs_list), | ||
413 | minor->debugfs_root, minor); | ||
414 | } | ||
415 | #endif | ||
diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c index b2482818fee8..50a20bfc07ea 100644 --- a/drivers/gpu/drm/drm_debugfs.c +++ b/drivers/gpu/drm/drm_debugfs.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/slab.h> | 28 | #include <linux/slab.h> |
29 | #include <linux/export.h> | 29 | #include <linux/export.h> |
30 | 30 | ||
31 | #include <drm/drm_client.h> | ||
31 | #include <drm/drm_debugfs.h> | 32 | #include <drm/drm_debugfs.h> |
32 | #include <drm/drm_edid.h> | 33 | #include <drm/drm_edid.h> |
33 | #include <drm/drm_atomic.h> | 34 | #include <drm/drm_atomic.h> |
@@ -164,6 +165,12 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id, | |||
164 | DRM_ERROR("Failed to create framebuffer debugfs file\n"); | 165 | DRM_ERROR("Failed to create framebuffer debugfs file\n"); |
165 | return ret; | 166 | return ret; |
166 | } | 167 | } |
168 | |||
169 | ret = drm_client_debugfs_init(minor); | ||
170 | if (ret) { | ||
171 | DRM_ERROR("Failed to create client debugfs file\n"); | ||
172 | return ret; | ||
173 | } | ||
167 | } | 174 | } |
168 | 175 | ||
169 | if (dev->driver->debugfs_init) { | 176 | if (dev->driver->debugfs_init) { |
diff --git a/include/drm/drm_client.h b/include/drm/drm_client.h index 671052d80e38..989f8e52864d 100644 --- a/include/drm/drm_client.h +++ b/include/drm/drm_client.h | |||
@@ -10,6 +10,7 @@ struct drm_device; | |||
10 | struct drm_file; | 10 | struct drm_file; |
11 | struct drm_framebuffer; | 11 | struct drm_framebuffer; |
12 | struct drm_gem_object; | 12 | struct drm_gem_object; |
13 | struct drm_minor; | ||
13 | struct module; | 14 | struct module; |
14 | 15 | ||
15 | /** | 16 | /** |
@@ -133,4 +134,6 @@ struct drm_client_buffer * | |||
133 | drm_client_framebuffer_create(struct drm_client_dev *client, u32 width, u32 height, u32 format); | 134 | drm_client_framebuffer_create(struct drm_client_dev *client, u32 width, u32 height, u32 format); |
134 | void drm_client_framebuffer_delete(struct drm_client_buffer *buffer); | 135 | void drm_client_framebuffer_delete(struct drm_client_buffer *buffer); |
135 | 136 | ||
137 | int drm_client_debugfs_init(struct drm_minor *minor); | ||
138 | |||
136 | #endif | 139 | #endif |