summaryrefslogtreecommitdiffstats
path: root/drivers/clk/clk.c
diff options
context:
space:
mode:
authorLee Jones <lee.jones@linaro.org>2016-02-11 13:19:09 -0800
committerMichael Turquette <mturquette@baylibre.com>2016-04-09 11:58:10 -0700
commit32b9b10961860860268961d9aad0c56a73018c37 (patch)
tree11f87cde0a2b51009dac9bd872421c95cb487009 /drivers/clk/clk.c
parentc0553d04f8d35bf9706e20ba392ffa61ab2b6f5c (diff)
downloadop-kernel-dev-32b9b10961860860268961d9aad0c56a73018c37.zip
op-kernel-dev-32b9b10961860860268961d9aad0c56a73018c37.tar.gz
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
Diffstat (limited to 'drivers/clk/clk.c')
-rw-r--r--drivers/clk/clk.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index fb74dc1..275201f 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -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();
OpenPOWER on IntegriCloud