]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/mach-omap2/clock34xx.c
[ARM] OMAP2/3 clock: don't tinker with hardirqs when they are supposed to be disabled
[linux-2.6-omap-h63xx.git] / arch / arm / mach-omap2 / clock34xx.c
index 06a81febe45715edb33a05fa280dab63f793f293..3b6e27bc9fe39eb55a7c48d1694b6961123c7fd2 100644 (file)
@@ -614,8 +614,6 @@ static int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate)
        omap3_noncore_dpll_program(clk, dd->last_rounded_m, dd->last_rounded_n,
                                   freqsel);
 
-       omap3_dpll_recalc(clk);
-
        return 0;
 }
 
@@ -688,12 +686,8 @@ static int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate)
        WARN_ON(new_div != 1 && new_div != 2);
 
        /* REVISIT: Add SDRC_MR changing to this code also */
-       local_irq_disable();
        omap3_configure_core_dpll(sp->rfr_ctrl, sp->actim_ctrla,
                                  sp->actim_ctrlb, new_div);
-       local_irq_enable();
-
-       omap2_clksel_recalc(clk);
 
        return 0;
 }
@@ -907,6 +901,9 @@ int __init omap2_clk_init(void)
 
        clk_init(&omap2_clk_functions);
 
+       for (c = omap34xx_clks; c < omap34xx_clks + ARRAY_SIZE(omap34xx_clks); c++)
+               clk_init_one(c->lk.clk);
+
        for (c = omap34xx_clks; c < omap34xx_clks + ARRAY_SIZE(omap34xx_clks); c++)
                if (c->cpu & cpu_clkflg) {
                        clkdev_add(&c->lk);