regmap: Expose the driver name in debugfs
authorDimitris Papastamos <dp@opensource.wolfsonmicro.com>
Wed, 22 Feb 2012 14:20:09 +0000 (14:20 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 22 Feb 2012 14:24:45 +0000 (14:24 +0000)
Add a file called 'name' containing the name of the driver.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/base/regmap/regmap-debugfs.c

index 7accb81..c32b60a 100644 (file)
@@ -33,6 +33,35 @@ static int regmap_open_file(struct inode *inode, struct file *file)
        return 0;
 }
 
+static ssize_t regmap_name_read_file(struct file *file,
+                                    char __user *user_buf, size_t count,
+                                    loff_t *ppos)
+{
+       struct regmap *map = file->private_data;
+       int ret;
+       char *buf;
+
+       buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
+       if (!buf)
+               return -ENOMEM;
+
+       ret = snprintf(buf, PAGE_SIZE, "%s\n", map->dev->driver->name);
+       if (ret < 0) {
+               kfree(buf);
+               return ret;
+       }
+
+       ret = simple_read_from_buffer(user_buf, count, ppos, buf, ret);
+       kfree(buf);
+       return ret;
+}
+
+static const struct file_operations regmap_name_fops = {
+       .open = regmap_open_file,
+       .read = regmap_name_read_file,
+       .llseek = default_llseek,
+};
+
 static ssize_t regmap_map_read_file(struct file *file, char __user *user_buf,
                                    size_t count, loff_t *ppos)
 {
@@ -228,6 +257,9 @@ void regmap_debugfs_init(struct regmap *map)
                return;
        }
 
+       debugfs_create_file("name", 0400, map->debugfs,
+                           map, &regmap_name_fops);
+
        if (map->max_register) {
                debugfs_create_file("registers", 0400, map->debugfs,
                                    map, &regmap_map_fops);