return;
 
        if (core->flags & CLK_SET_RATE_UNGATE) {
-               unsigned long flags;
-
                clk_core_prepare(core);
-               flags = clk_enable_lock();
-               clk_core_enable(core);
-               clk_enable_unlock(flags);
+               clk_core_enable_lock(core);
        }
 
        if (core->new_parent && core->new_parent != core->parent) {
        core->rate = clk_recalc(core, best_parent_rate);
 
        if (core->flags & CLK_SET_RATE_UNGATE) {
-               unsigned long flags;
-
-               flags = clk_enable_lock();
-               clk_core_disable(core);
-               clk_enable_unlock(flags);
+               clk_core_disable_lock(core);
                clk_core_unprepare(core);
        }
 
         * reparenting clocks
         */
        if (core->flags & CLK_IS_CRITICAL) {
-               unsigned long flags;
-
                ret = clk_core_prepare(core);
                if (ret) {
                        pr_warn("%s: critical clk '%s' failed to prepare\n",
                        goto out;
                }
 
-               flags = clk_enable_lock();
-               ret = clk_core_enable(core);
-               clk_enable_unlock(flags);
+               ret = clk_core_enable_lock(core);
                if (ret) {
                        pr_warn("%s: critical clk '%s' failed to enable\n",
                               __func__, core->name);