sh: Show all clocks and their state in /proc/clocks
Magnus Damm [Thu, 17 Jul 2008 10:05:54 +0000 (19:05 +0900)]
Show all clocks in /proc/clocks, and also show if they are enabled or
disabled. This is useful to show MSTPCR bits on SuperH Mobile processors.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

arch/sh/kernel/cpu/clock.c

index 73334c6..f5eb56e 100644 (file)
@@ -308,15 +308,11 @@ static int show_clocks(char *buf, char **start, off_t off,
        list_for_each_entry_reverse(clk, &clock_list, node) {
                unsigned long rate = clk_get_rate(clk);
 
-               /*
-                * Don't bother listing dummy clocks with no ancestry
-                * that only support enable and disable ops.
-                */
-               if (unlikely(!rate && !clk->parent))
-                       continue;
-
-               p += sprintf(p, "%-12s\t: %ld.%02ldMHz\n", clk->name,
-                            rate / 1000000, (rate % 1000000) / 10000);
+               p += sprintf(p, "%-12s\t: %ld.%02ldMHz\t%s\n", clk->name,
+                            rate / 1000000, (rate % 1000000) / 10000,
+                            ((clk->flags & CLK_ALWAYS_ENABLED) ||
+                             (atomic_read(&clk->kref.refcount) != 1)) ?
+                            "enabled" : "disabled");
        }
 
        return p - buf;