]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
clk_disable_unused() is bugged
authorPaul Walmsley <paul@pwsan.com>
Wed, 24 Sep 2008 10:48:05 +0000 (04:48 -0600)
committerTony Lindgren <tony@atomide.com>
Mon, 6 Oct 2008 10:26:27 +0000 (13:26 +0300)
OMAP2/3 clock: fix CONFIG_OMAP_RESET_CLOCKS

plat-omap/clock.c was skipping clocks with enable_reg == 0.  This no longer
works now that we use enable_reg as an offset from a PRCM module.

Problem found and traced by Tero Kristo <tero.kristo@nokia.com> -
thanks Tero.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/plat-omap/clock.c

index 197974defbe4f4b0e41ffebf2aae1f2c96dc6c00..7bbfba2a5c1e11949e717bee6d68bd37abcf7fd8 100644 (file)
@@ -384,8 +384,11 @@ static int __init clk_disable_unused(void)
        unsigned long flags;
 
        list_for_each_entry(ck, &clocks, node) {
-               if (ck->usecount > 0 || (ck->flags & ALWAYS_ENABLED) ||
-                       ck->enable_reg == 0)
+               if (ck->usecount > 0 ||
+                   (ck->flags & (ALWAYS_ENABLED | PARENT_CONTROLS_CLOCK)))
+                       continue;
+
+               if (cpu_class_is_omap1() && ck->enable_reg == 0)
                        continue;
 
                spin_lock_irqsave(&clockfw_lock, flags);