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
This commit is contained in:
@@ -385,3 +385,31 @@ void drm_client_framebuffer_delete(struct drm_client_buffer *buffer)
|
|||||||
drm_client_buffer_delete(buffer);
|
drm_client_buffer_delete(buffer);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_client_framebuffer_delete);
|
EXPORT_SYMBOL(drm_client_framebuffer_delete);
|
||||||
|
|
||||||
|
#ifdef CONFIG_DEBUG_FS
|
||||||
|
static int drm_client_debugfs_internal_clients(struct seq_file *m, void *data)
|
||||||
|
{
|
||||||
|
struct drm_info_node *node = m->private;
|
||||||
|
struct drm_device *dev = node->minor->dev;
|
||||||
|
struct drm_printer p = drm_seq_file_printer(m);
|
||||||
|
struct drm_client_dev *client;
|
||||||
|
|
||||||
|
mutex_lock(&dev->clientlist_mutex);
|
||||||
|
list_for_each_entry(client, &dev->clientlist, list)
|
||||||
|
drm_printf(&p, "%s\n", client->name);
|
||||||
|
mutex_unlock(&dev->clientlist_mutex);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct drm_info_list drm_client_debugfs_list[] = {
|
||||||
|
{ "internal_clients", drm_client_debugfs_internal_clients, 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
int drm_client_debugfs_init(struct drm_minor *minor)
|
||||||
|
{
|
||||||
|
return drm_debugfs_create_files(drm_client_debugfs_list,
|
||||||
|
ARRAY_SIZE(drm_client_debugfs_list),
|
||||||
|
minor->debugfs_root, minor);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
|
|
||||||
|
#include <drm/drm_client.h>
|
||||||
#include <drm/drm_debugfs.h>
|
#include <drm/drm_debugfs.h>
|
||||||
#include <drm/drm_edid.h>
|
#include <drm/drm_edid.h>
|
||||||
#include <drm/drm_atomic.h>
|
#include <drm/drm_atomic.h>
|
||||||
@@ -164,6 +165,12 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
|
|||||||
DRM_ERROR("Failed to create framebuffer debugfs file\n");
|
DRM_ERROR("Failed to create framebuffer debugfs file\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = drm_client_debugfs_init(minor);
|
||||||
|
if (ret) {
|
||||||
|
DRM_ERROR("Failed to create client debugfs file\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dev->driver->debugfs_init) {
|
if (dev->driver->debugfs_init) {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ struct drm_device;
|
|||||||
struct drm_file;
|
struct drm_file;
|
||||||
struct drm_framebuffer;
|
struct drm_framebuffer;
|
||||||
struct drm_gem_object;
|
struct drm_gem_object;
|
||||||
|
struct drm_minor;
|
||||||
struct module;
|
struct module;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -133,4 +134,6 @@ struct drm_client_buffer *
|
|||||||
drm_client_framebuffer_create(struct drm_client_dev *client, u32 width, u32 height, u32 format);
|
drm_client_framebuffer_create(struct drm_client_dev *client, u32 width, u32 height, u32 format);
|
||||||
void drm_client_framebuffer_delete(struct drm_client_buffer *buffer);
|
void drm_client_framebuffer_delete(struct drm_client_buffer *buffer);
|
||||||
|
|
||||||
|
int drm_client_debugfs_init(struct drm_minor *minor);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user