On Mon, Jun 18, 2018 at 04:17:36PM +0200, Noralf Trønnes wrote: > Print the names of the internal clients currently attached. > > Signed-off-by: Noralf Trønnes <noralf@xxxxxxxxxxx> Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > drivers/gpu/drm/drm_client.c | 28 ++++++++++++++++++++++++++++ > drivers/gpu/drm/drm_debugfs.c | 7 +++++++ > include/drm/drm_client.h | 2 ++ > 3 files changed, 37 insertions(+) > > diff --git a/drivers/gpu/drm/drm_client.c b/drivers/gpu/drm/drm_client.c > index f1dc04d641cc..3ebb8fa34655 100644 > --- a/drivers/gpu/drm/drm_client.c > +++ b/drivers/gpu/drm/drm_client.c > @@ -405,3 +405,31 @@ 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_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 > 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 @@ > #include <linux/slab.h> > #include <linux/export.h> > > +#include <drm/drm_client.h> > #include <drm/drm_debugfs.h> > #include <drm/drm_edid.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"); > 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) { > diff --git a/include/drm/drm_client.h b/include/drm/drm_client.h > index 80fe21c86f69..c3a87d6c30fc 100644 > --- a/include/drm/drm_client.h > +++ b/include/drm/drm_client.h > @@ -151,4 +151,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 > -- > 2.15.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel