|
@@ -765,6 +765,9 @@ static void clk_disable_unused_subtree(struct clk_core *core)
|
|
hlist_for_each_entry(child, &core->children, child_node)
|
|
hlist_for_each_entry(child, &core->children, child_node)
|
|
clk_disable_unused_subtree(child);
|
|
clk_disable_unused_subtree(child);
|
|
|
|
|
|
|
|
+ if (core->flags & CLK_OPS_PARENT_ENABLE)
|
|
|
|
+ clk_core_prepare_enable(core->parent);
|
|
|
|
+
|
|
flags = clk_enable_lock();
|
|
flags = clk_enable_lock();
|
|
|
|
|
|
if (core->enable_count)
|
|
if (core->enable_count)
|
|
@@ -789,6 +792,8 @@ static void clk_disable_unused_subtree(struct clk_core *core)
|
|
|
|
|
|
unlock_out:
|
|
unlock_out:
|
|
clk_enable_unlock(flags);
|
|
clk_enable_unlock(flags);
|
|
|
|
+ if (core->flags & CLK_OPS_PARENT_ENABLE)
|
|
|
|
+ clk_core_disable_unprepare(core->parent);
|
|
}
|
|
}
|
|
|
|
|
|
static bool clk_ignore_unused;
|
|
static bool clk_ignore_unused;
|