Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2cb4fc7a authored by Lee Jones's avatar Lee Jones Committed by Taniya Das
Browse files

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: default avatarLee Jones <lee.jones@linaro.org>
Signed-off-by: default avatarMichael Turquette <mturquette@baylibre.com>
Link: lkml.kernel.org/r/1455225554-13267-2-git-send-email-mturquette@baylibre.com
(cherry picked from commit 32b9b10961860860268961d9aad0c56a73018c37)
[tdas@codeaurora.org: resolve trivial merge conflict]
Git-commit: 32b9b10961860860268961d9aad0c56a73018c37
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git



Change-Id: I003abf22da8600dd90ef397d293544b4bc9e0160
Signed-off-by: default avatarTaniya Das <tdas@codeaurora.org>
parent b4598042
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -3121,6 +3121,11 @@ static int __clk_init(struct device *dev, struct clk *clk_user)
	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();
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@
#define CLK_SET_RATE_NO_REPARENT BIT(7) /* don't re-parent on rate change */
#define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */
#define CLK_RECALC_NEW_RATES	BIT(9) /* recalc rates after notifications */
#define CLK_IS_CRITICAL		BIT(11) /* do not gate, ever */

struct clk;
struct clk_hw;