OSDN Git Service

clk: Expose clk_hw_reparent() to providers
authorTomeu Vizoso <tomeu.vizoso@collabora.com>
Wed, 11 Mar 2015 10:34:25 +0000 (11:34 +0100)
committerThierry Reding <treding@nvidia.com>
Wed, 13 May 2015 13:17:08 +0000 (15:17 +0200)
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>
drivers/clk/clk.c
include/linux/clk-provider.h

index 459ce9d..5315a27 100644 (file)
@@ -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
index df69531..51efb9e 100644 (file)
@@ -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)
 {