]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/mach-omap2/clock.c
OMAP2/3 clock: omap2_clk_enable(): fix bugs in clockdomain handling
[linux-2.6-omap-h63xx.git] / arch / arm / mach-omap2 / clock.c
index 3f8354da62a3f88c5024b69d717c9616d0eb747b..55f43d0e6889a2076bcbc571781ad60028973c52 100644 (file)
@@ -488,16 +488,17 @@ int omap2_clk_enable(struct clk *clk)
        if (++clk->usecount > 1)
                return 0;
 
+       omap2_clkdm_clk_enable(clk->clkdm.ptr, clk);
+
        if (clk->parent)
                ret = omap2_clk_enable(clk->parent);
 
        if (ret != 0) {
                clk->usecount--;
+               omap2_clkdm_clk_disable(clk->clkdm.ptr, clk);
                return ret;
        }
 
-       omap2_clkdm_clk_enable(clk->clkdm.ptr, clk);
-
        ret = _omap2_clk_enable(clk);
 
        if (ret != 0) {