davinci: make /proc/davinci_clocks display multi-rooted clock tree
authorSekhar Nori <nsekhar@ti.com>
Thu, 3 Dec 2009 10:06:51 +0000 (15:36 +0530)
committerKevin Hilman <khilman@deeprootsystems.com>
Thu, 4 Feb 2010 21:29:45 +0000 (13:29 -0800)
This patch modifies clock dump to take care of
clock tress rooted at multiple oscillators.
Current code assumes the entire tree is rooted
on a single oscillator. When using off-chip
clock synthesizers, some of the clocks can
be obtained from a different on-board oscillator.

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
arch/arm/mach-davinci/clock.c

index 0fa68c558320a69d238c97da40b32407eee9a28b..2c27caefa62e4883aaa57f96185377907f3ca50f 100644 (file)
@@ -516,12 +516,15 @@ dump_clock(struct seq_file *s, unsigned nest, struct clk *parent)
 
 static int davinci_ck_show(struct seq_file *m, void *v)
 {
-       /* Show clock tree; we know the main oscillator is first.
-        * We trust nonzero usecounts equate to PSC enables...
+       struct clk *clk;
+
+       /*
+        * Show clock tree; We trust nonzero usecounts equate to PSC enables...
         */
        mutex_lock(&clocks_mutex);
-       if (!list_empty(&clocks))
-               dump_clock(m, 0, list_first_entry(&clocks, struct clk, node));
+       list_for_each_entry(clk, &clocks, node)
+               if (!clk->parent)
+                       dump_clock(m, 0, clk);
        mutex_unlock(&clocks_mutex);
 
        return 0;