Commit 6f220c22 authored by Stephen Boyd's avatar Stephen Boyd Committed by Michael Turquette

clk: bcm: Convert to clk_hw based provider APIs

We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Reviewed-by: default avatarAlex Elder <elder@linaro.org>
Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
parent d0979335
...@@ -1011,7 +1011,7 @@ static long kona_peri_clk_round_rate(struct clk_hw *hw, unsigned long rate, ...@@ -1011,7 +1011,7 @@ static long kona_peri_clk_round_rate(struct clk_hw *hw, unsigned long rate,
struct bcm_clk_div *div = &bcm_clk->u.peri->div; struct bcm_clk_div *div = &bcm_clk->u.peri->div;
if (!divider_exists(div)) if (!divider_exists(div))
return __clk_get_rate(hw->clk); return clk_hw_get_rate(hw);
/* Quietly avoid a zero rate */ /* Quietly avoid a zero rate */
return round_rate(bcm_clk->ccu, div, &bcm_clk->u.peri->pre_div, return round_rate(bcm_clk->ccu, div, &bcm_clk->u.peri->pre_div,
...@@ -1022,8 +1022,7 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw, ...@@ -1022,8 +1022,7 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw,
struct clk_rate_request *req) struct clk_rate_request *req)
{ {
struct kona_clk *bcm_clk = to_kona_clk(hw); struct kona_clk *bcm_clk = to_kona_clk(hw);
struct clk *clk = hw->clk; struct clk_hw *current_parent;
struct clk *current_parent;
unsigned long parent_rate; unsigned long parent_rate;
unsigned long best_delta; unsigned long best_delta;
unsigned long best_rate; unsigned long best_rate;
...@@ -1048,14 +1047,14 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw, ...@@ -1048,14 +1047,14 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw,
} }
/* Unless we can do better, stick with current parent */ /* Unless we can do better, stick with current parent */
current_parent = clk_get_parent(clk); current_parent = clk_hw_get_parent(hw);
parent_rate = __clk_get_rate(current_parent); parent_rate = clk_hw_get_rate(current_parent);
best_rate = kona_peri_clk_round_rate(hw, req->rate, &parent_rate); best_rate = kona_peri_clk_round_rate(hw, req->rate, &parent_rate);
best_delta = abs(best_rate - req->rate); best_delta = abs(best_rate - req->rate);
/* Check whether any other parent clock can produce a better result */ /* Check whether any other parent clock can produce a better result */
for (which = 0; which < parent_count; which++) { for (which = 0; which < parent_count; which++) {
struct clk *parent = clk_get_parent_by_index(clk, which); struct clk_hw *parent = clk_hw_get_parent_by_index(hw, which);
unsigned long delta; unsigned long delta;
unsigned long other_rate; unsigned long other_rate;
...@@ -1064,14 +1063,14 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw, ...@@ -1064,14 +1063,14 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw,
continue; continue;
/* We don't support CLK_SET_RATE_PARENT */ /* We don't support CLK_SET_RATE_PARENT */
parent_rate = __clk_get_rate(parent); parent_rate = clk_hw_get_rate(parent);
other_rate = kona_peri_clk_round_rate(hw, req->rate, other_rate = kona_peri_clk_round_rate(hw, req->rate,
&parent_rate); &parent_rate);
delta = abs(other_rate - req->rate); delta = abs(other_rate - req->rate);
if (delta < best_delta) { if (delta < best_delta) {
best_delta = delta; best_delta = delta;
best_rate = other_rate; best_rate = other_rate;
req->best_parent_hw = __clk_get_hw(parent); req->best_parent_hw = parent;
req->best_parent_rate = parent_rate; req->best_parent_rate = parent_rate;
} }
} }
...@@ -1139,7 +1138,7 @@ static int kona_peri_clk_set_rate(struct clk_hw *hw, unsigned long rate, ...@@ -1139,7 +1138,7 @@ static int kona_peri_clk_set_rate(struct clk_hw *hw, unsigned long rate,
if (parent_rate > (unsigned long)LONG_MAX) if (parent_rate > (unsigned long)LONG_MAX)
return -EINVAL; return -EINVAL;
if (rate == __clk_get_rate(hw->clk)) if (rate == clk_hw_get_rate(hw))
return 0; return 0;
if (!divider_exists(div)) if (!divider_exists(div))
...@@ -1258,6 +1257,7 @@ bool __init kona_ccu_init(struct ccu_data *ccu) ...@@ -1258,6 +1257,7 @@ bool __init kona_ccu_init(struct ccu_data *ccu)
unsigned long flags; unsigned long flags;
unsigned int which; unsigned int which;
struct clk **clks = ccu->clk_data.clks; struct clk **clks = ccu->clk_data.clks;
struct kona_clk *kona_clks = ccu->kona_clks;
bool success = true; bool success = true;
flags = ccu_lock(ccu); flags = ccu_lock(ccu);
...@@ -1268,7 +1268,7 @@ bool __init kona_ccu_init(struct ccu_data *ccu) ...@@ -1268,7 +1268,7 @@ bool __init kona_ccu_init(struct ccu_data *ccu)
if (!clks[which]) if (!clks[which])
continue; continue;
bcm_clk = to_kona_clk(__clk_get_hw(clks[which])); bcm_clk = &kona_clks[which];
success &= __kona_clk_init(bcm_clk); success &= __kona_clk_init(bcm_clk);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment