summaryrefslogtreecommitdiffstats
path: root/drivers/clk/clk.c
diff options
context:
space:
mode:
authorUlf Hansson <ulf.hansson@linaro.org>2013-03-12 20:26:04 +0100
committerMike Turquette <mturquette@linaro.org>2013-03-19 20:58:43 +0100
commit3cc8247f1dce79511de8bf0f69ab02a46cc315b7 (patch)
tree98b33064f74afe802360f3012dc12bf2e49c1781 /drivers/clk/clk.c
parentclk: Unprepare the unused prepared slow clocks at late init (diff)
downloadlinux-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.c7
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 */