static int clk_factors_determine_rate(struct clk_hw *hw,
                                      struct clk_rate_request *req)
 {
-       struct clk *clk = hw->clk, *parent, *best_parent = NULL;
+       struct clk_hw *parent, *best_parent = NULL;
        int i, num_parents;
        unsigned long parent_rate, best = 0, child_rate, best_child_rate = 0;
 
        /* find the parent that can help provide the fastest rate <= rate */
        num_parents = clk_hw_get_num_parents(hw);
        for (i = 0; i < num_parents; i++) {
-               parent = clk_get_parent_by_index(clk, i);
+               parent = clk_hw_get_parent_by_index(hw, i);
                if (!parent)
                        continue;
                if (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT)
-                       parent_rate = __clk_round_rate(parent, req->rate);
+                       parent_rate = clk_hw_round_rate(parent, req->rate);
                else
-                       parent_rate = __clk_get_rate(parent);
+                       parent_rate = clk_hw_get_rate(parent);
 
                child_rate = clk_factors_round_rate(hw, req->rate,
                                                    &parent_rate);
        if (!best_parent)
                return -EINVAL;
 
-       req->best_parent_hw = __clk_get_hw(best_parent);
+       req->best_parent_hw = best_parent;
        req->best_parent_rate = best;
        req->rate = best_child_rate;
 
 
        for (i = 0; i < nparents; i++) {
                unsigned long parent_rate;
                unsigned long tmp_rate;
-               struct clk *parent;
+               struct clk_hw *parent;
                unsigned long div;
                int shift;
 
-               parent = clk_get_parent_by_index(hw->clk, i);
-               parent_rate = __clk_get_rate(parent);
+               parent = clk_hw_get_parent_by_index(hw, i);
+               parent_rate = clk_hw_get_rate(parent);
                div = DIV_ROUND_UP(parent_rate, req->rate);
 
                /*
 
                tmp_rate = (parent_rate >> shift) / div;
                if (!req->best_parent_hw || tmp_rate > best_rate) {
-                       req->best_parent_hw = __clk_get_hw(parent);
+                       req->best_parent_hw = parent;
                        req->best_parent_rate = parent_rate;
                        best_rate = tmp_rate;
                }
 
 static int sun6i_ahb1_clk_determine_rate(struct clk_hw *hw,
                                         struct clk_rate_request *req)
 {
-       struct clk *clk = hw->clk, *parent, *best_parent = NULL;
+       struct clk_hw *parent, *best_parent = NULL;
        int i, num_parents;
        unsigned long parent_rate, best = 0, child_rate, best_child_rate = 0;
 
        /* find the parent that can help provide the fastest rate <= rate */
        num_parents = clk_hw_get_num_parents(hw);
        for (i = 0; i < num_parents; i++) {
-               parent = clk_get_parent_by_index(clk, i);
+               parent = clk_hw_get_parent_by_index(hw, i);
                if (!parent)
                        continue;
                if (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT)
-                       parent_rate = __clk_round_rate(parent, req->rate);
+                       parent_rate = clk_hw_round_rate(parent, req->rate);
                else
-                       parent_rate = __clk_get_rate(parent);
+                       parent_rate = clk_hw_get_rate(parent);
 
                child_rate = sun6i_ahb1_clk_round(req->rate, NULL, NULL, i,
                                                  parent_rate);
        if (!best_parent)
                return -EINVAL;
 
-       req->best_parent_hw = __clk_get_hw(best_parent);
+       req->best_parent_hw = best_parent;
        req->best_parent_rate = best;
        req->rate = best_child_rate;