diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.com> | 2015-03-11 11:34:25 +0100 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2015-05-13 15:17:08 +0200 |
commit | 42c86547f4e5c2e81616c76ce9a2badce515c41f (patch) | |
tree | b95a89f8eacfe6ec20ea7efe9c538161d8977d1d | |
parent | Merge branch 'for-4.2/ramcode' into for-4.2/clk (diff) | |
download | linux-42c86547f4e5c2e81616c76ce9a2badce515c41f.tar.xz linux-42c86547f4e5c2e81616c76ce9a2badce515c41f.zip |
clk: Expose clk_hw_reparent() to providers
To be used by clock implementations for switching to a new parent during
rate change.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r-- | drivers/clk/clk.c | 8 | ||||
-rw-r--r-- | include/linux/clk-provider.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 459ce9da13e0..5315a273eae9 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -2020,6 +2020,14 @@ static void clk_core_reparent(struct clk_core *clk, __clk_recalc_rates(clk, POST_RATE_CHANGE); } +void clk_hw_reparent(struct clk_hw *hw, struct clk_hw *new_parent) +{ + if (!hw) + return; + + clk_core_reparent(hw->core, !new_parent ? NULL : new_parent->core); +} + /** * clk_has_parent - check if a clock is a possible parent for another * @clk: clock source diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index df695313f975..51efb9ec3e37 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -589,6 +589,7 @@ long __clk_mux_determine_rate_closest(struct clk_hw *hw, unsigned long rate, unsigned long max_rate, unsigned long *best_parent_rate, struct clk_hw **best_parent_p); +void clk_hw_reparent(struct clk_hw *hw, struct clk_hw *new_parent); static inline void __clk_hw_set_clk(struct clk_hw *dst, struct clk_hw *src) { |