staging/android: create a 'sync' dir for debugfs information
authorGustavo Padovan <gustavo.padovan@collabora.co.uk>
Thu, 21 Jan 2016 12:49:17 +0000 (10:49 -0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Feb 2016 01:34:58 +0000 (17:34 -0800)
Creates the 'sync' dir on debugfs root dir and move the 'sync' file
to sync/info. This is the preparation to add more debug info and control.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/android/sync_debug.c

index c7ee98f3b851853f676d47e605eeddfd3c0d8ba3..4dc6e03d648791f344f24bccda96ffb64fd4b8f7 100644 (file)
@@ -15,6 +15,7 @@
  */
 
 #include <linux/debugfs.h>
+#include <linux/module.h>
 #include <linux/export.h>
 #include <linux/file.h>
 #include <linux/fs.h>
@@ -30,6 +31,8 @@
 
 #ifdef CONFIG_DEBUG_FS
 
+static struct dentry *dbgfs;
+
 static LIST_HEAD(sync_timeline_list_head);
 static DEFINE_SPINLOCK(sync_timeline_list_lock);
 static LIST_HEAD(sync_fence_list_head);
@@ -192,13 +195,13 @@ static int sync_debugfs_show(struct seq_file *s, void *unused)
        return 0;
 }
 
-static int sync_debugfs_open(struct inode *inode, struct file *file)
+static int sync_info_debugfs_open(struct inode *inode, struct file *file)
 {
        return single_open(file, sync_debugfs_show, inode->i_private);
 }
 
-static const struct file_operations sync_debugfs_fops = {
-       .open           = sync_debugfs_open,
+static const struct file_operations sync_info_debugfs_fops = {
+       .open           = sync_info_debugfs_open,
        .read           = seq_read,
        .llseek         = seq_lseek,
        .release        = single_release,
@@ -206,11 +209,21 @@ static const struct file_operations sync_debugfs_fops = {
 
 static __init int sync_debugfs_init(void)
 {
-       debugfs_create_file("sync", S_IRUGO, NULL, NULL, &sync_debugfs_fops);
+       dbgfs = debugfs_create_dir("sync", NULL);
+
+       debugfs_create_file("info", 0444, dbgfs, NULL, &sync_info_debugfs_fops);
+
        return 0;
 }
 late_initcall(sync_debugfs_init);
 
+static __exit void sync_debugfs_exit(void)
+{
+       if (dbgfs)
+               debugfs_remove_recursive(dbgfs);
+}
+module_exit(sync_debugfs_exit);
+
 #define DUMP_CHUNK 256
 static char sync_dump_buf[64 * 1024];
 void sync_dump(void)