]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
PM: OMAP3: Make sure clk_disable_unused() order is correct
authorTero Kristo <tero.kristo@nokia.com>
Wed, 12 Nov 2008 09:42:10 +0000 (11:42 +0200)
committerKevin Hilman <khilman@deeprootsystems.com>
Wed, 7 Jan 2009 22:03:20 +0000 (14:03 -0800)
Current implementation will disable clocks in the order defined in clock34xx.h,
at least DPLL4_M2X2 will hang in certain cases (and prevent retention / off)
if clocks are not disabled in correct order. This patch makes sure the parent
clocks will be active when disabling a clock.

Signed-off-by: Tero Kristo <tero.kristo@nokia.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
arch/arm/mach-omap2/clock.c

index 413fb684e9c43fda6d1bcd8e87c9761750f3c91d..4344f5e79239c8a1639e743afb09ef062c13578e 100644 (file)
@@ -1077,7 +1077,11 @@ void omap2_clk_disable_unused(struct clk *clk)
                return;
 
        printk(KERN_INFO "Disabling unused clock \"%s\"\n", clk->name);
-       _omap2_clk_disable(clk);
+       if (cpu_is_omap34xx()) {
+               omap2_clk_enable(clk);
+               omap2_clk_disable(clk);
+       } else
+               _omap2_clk_disable(clk);
 }
 #endif