Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e962e95 authored by Noralf Trønnes's avatar Noralf Trønnes Committed by Gerrit - the friendly Code Review server
Browse files

drm/debugfs: Add internal client debugfs file



Print the names of the internal clients currently attached.

Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarNoralf Trønnes <noralf@tronnes.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20180703160354.59955-6-noralf@tronnes.org


Patch-mainline: 20180703160354.59955-6-noralf@tronnes.org @ 03/07/18, 04:03 p.m.

Change-Id: I59ab9d56a82ddd4c4727a74dc48d9a3c8a222ae9
Signed-off-by: default avatarShubham Talekar <stalek@codeaurora.org>
parent 46799a8f
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -382,3 +382,30 @@ void drm_client_framebuffer_delete(struct drm_client_buffer *buffer)
	drm_client_buffer_delete(buffer);
}
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_client_dev *client;

	mutex_lock(&dev->clientlist_mutex);
	list_for_each_entry(client, &dev->clientlist, list)
		seq_printf(m, "%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
+7 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@
#include <drm/drmP.h>
#include <drm/drm_edid.h>
#include "drm_internal.h"
#include <drm/drm_client.h>

#if defined(CONFIG_DEBUG_FS)

@@ -163,6 +164,12 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
		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) {
		ret = dev->driver->debugfs_init(minor);
		if (ret) {
+3 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ struct drm_device;
struct drm_file;
struct drm_framebuffer;
struct drm_gem_object;
struct drm_minor;
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);
void drm_client_framebuffer_delete(struct drm_client_buffer *buffer);

int drm_client_debugfs_init(struct drm_minor *minor);

#endif