]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
msm: clock: Invert debugfs directory layout
authorStephen Boyd <sboyd@codeaurora.org>
Thu, 27 Jan 2011 00:20:55 +0000 (16:20 -0800)
committerDavid Brown <davidb@codeaurora.org>
Fri, 28 Jan 2011 19:20:49 +0000 (11:20 -0800)
There are currently 3 separate directories for clock debugging in
debugfs: clk_enable, clk_rate, and clk_local. Each of these
directories contains a list of clocks. This is rather annoying
when you are focusing on one clock and want to enable/disable it
and then check its rate. You either have to cd to the other
directory or cat ../clk_rate/<clk>.

Invert the layout so that there is one clock directory containing
a directory for each clock. Inside each respective clock
directory place an enable, rate, and is_local file relating to
the clk_enable, clk_disable, and clk_local directories that exist
today.

Reviewed-by: Saravana Kannan <skannan@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
arch/arm/mach-msm/clock-debug.c

index 6f603edbb4d0ba7e7802ce3e72c166284d59bb33..b67b9e82ece66d7ebbdd12ad395ad3685821c4cf 100644 (file)
@@ -87,47 +87,45 @@ static int clock_debug_local_get(void *data, u64 *val)
 DEFINE_SIMPLE_ATTRIBUTE(clock_local_fops, clock_debug_local_get,
                        NULL, "%llu\n");
 
-static struct dentry *dent_rate, *dent_enable, *dent_local;
+static struct dentry *debugfs_base;
 
 int __init clock_debug_init(void)
 {
-       dent_rate = debugfs_create_dir("clk_rate", 0);
-       if (!dent_rate)
-               goto err;
-
-       dent_enable = debugfs_create_dir("clk_enable", 0);
-       if (!dent_enable)
-               goto err;
-
-       dent_local = debugfs_create_dir("clk_local", NULL);
-       if (!dent_local)
-               goto err;
-
+       debugfs_base = debugfs_create_dir("clk", NULL);
+       if (!debugfs_base)
+               return -ENOMEM;
        return 0;
-err:
-       debugfs_remove(dent_local);
-       debugfs_remove(dent_enable);
-       debugfs_remove(dent_rate);
-       return -ENOMEM;
 }
 
 int __init clock_debug_add(struct clk *clock)
 {
        char temp[50], *ptr;
+       struct dentry *clk_dir;
 
-       if (!dent_rate || !dent_enable || !dent_local)
+       if (!debugfs_base)
                return -ENOMEM;
 
        strncpy(temp, clock->dbg_name, ARRAY_SIZE(temp)-1);
        for (ptr = temp; *ptr; ptr++)
                *ptr = tolower(*ptr);
 
-       debugfs_create_file(temp, S_IRUGO | S_IWUSR, dent_rate,
-                           clock, &clock_rate_fops);
-       debugfs_create_file(temp, S_IRUGO | S_IWUSR, dent_enable,
-                           clock, &clock_enable_fops);
-       debugfs_create_file(temp, S_IRUGO, dent_local,
-                           clock, &clock_local_fops);
+       clk_dir = debugfs_create_dir(temp, debugfs_base);
+       if (!clk_dir)
+               return -ENOMEM;
+
+       if (!debugfs_create_file("rate", S_IRUGO | S_IWUSR, clk_dir,
+                               clock, &clock_rate_fops))
+               goto error;
 
+       if (!debugfs_create_file("enable", S_IRUGO | S_IWUSR, clk_dir,
+                               clock, &clock_enable_fops))
+               goto error;
+
+       if (!debugfs_create_file("is_local", S_IRUGO, clk_dir, clock,
+                               &clock_local_fops))
+               goto error;
        return 0;
+error:
+       debugfs_remove_recursive(clk_dir);
+       return -ENOMEM;
 }