diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2013-03-12 20:26:04 +0100 |
---|---|---|
committer | Mike Turquette <mturquette@linaro.org> | 2013-03-19 20:58:43 +0100 |
commit | 3cc8247f1dce79511de8bf0f69ab02a46cc315b7 (patch) | |
tree | 98b33064f74afe802360f3012dc12bf2e49c1781 /drivers/clk/clk.c | |
parent | clk: Unprepare the unused prepared slow clocks at late init (diff) | |
download | linux-3cc8247f1dce79511de8bf0f69ab02a46cc315b7.tar.xz linux-3cc8247f1dce79511de8bf0f69ab02a46cc315b7.zip |
clk: Introduce optional unprepare_unused callback
An unprepare_unused callback is introduced due to the same reasons to
why the disable_unused callback was added.
During the clk_disable_unused sequence, those clk_hw that needs specific
treatment with regards to being unprepared, shall implement the
unprepare_unused callback.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
Diffstat (limited to 'drivers/clk/clk.c')
-rw-r--r-- | drivers/clk/clk.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index c0141f3e1109..253792a46c08 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -352,9 +352,12 @@ static void clk_unprepare_unused_subtree(struct clk *clk) if (clk->flags & CLK_IGNORE_UNUSED) return; - if (__clk_is_prepared(clk)) - if (clk->ops->unprepare) + if (__clk_is_prepared(clk)) { + if (clk->ops->unprepare_unused) + clk->ops->unprepare_unused(clk->hw); + else if (clk->ops->unprepare) clk->ops->unprepare(clk->hw); + } } /* caller must hold prepare_lock */ |