clk: Allow clocks to be marked as CRITICAL

Critical clocks are those which must not be gated, else undefined
or catastrophic failure would occur.  Here we have chosen to
ensure the prepare/enable counts are correctly incremented, so as
not to confuse users with enabled clocks with no visible users.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Link: lkml.kernel.org/r/1455225554-13267-2-git-send-email-mturquette@baylibre.com
This commit is contained in:
Lee Jones
2016-02-11 13:19:09 -08:00
committed by Michael Turquette
parent c0553d04f8
commit 32b9b10961
2 changed files with 6 additions and 0 deletions

View File

@@ -2397,6 +2397,11 @@ static int __clk_core_init(struct clk_core *core)
if (core->ops->init)
core->ops->init(core->hw);
if (core->flags & CLK_IS_CRITICAL) {
clk_core_prepare(core);
clk_core_enable(core);
}
kref_init(&core->ref);
out:
clk_prepare_unlock();