clk: Convert basic types 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. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
This commit is contained in:
committed by
Michael Turquette
parent
6f220c2243
commit
2f508a955a
@@ -63,7 +63,7 @@ static int clk_composite_determine_rate(struct clk_hw *hw,
|
|||||||
const struct clk_ops *mux_ops = composite->mux_ops;
|
const struct clk_ops *mux_ops = composite->mux_ops;
|
||||||
struct clk_hw *rate_hw = composite->rate_hw;
|
struct clk_hw *rate_hw = composite->rate_hw;
|
||||||
struct clk_hw *mux_hw = composite->mux_hw;
|
struct clk_hw *mux_hw = composite->mux_hw;
|
||||||
struct clk *parent;
|
struct clk_hw *parent;
|
||||||
unsigned long parent_rate;
|
unsigned long parent_rate;
|
||||||
long tmp_rate, best_rate = 0;
|
long tmp_rate, best_rate = 0;
|
||||||
unsigned long rate_diff;
|
unsigned long rate_diff;
|
||||||
@@ -79,9 +79,9 @@ static int clk_composite_determine_rate(struct clk_hw *hw,
|
|||||||
req->best_parent_hw = NULL;
|
req->best_parent_hw = NULL;
|
||||||
|
|
||||||
if (clk_hw_get_flags(hw) & CLK_SET_RATE_NO_REPARENT) {
|
if (clk_hw_get_flags(hw) & CLK_SET_RATE_NO_REPARENT) {
|
||||||
parent = clk_get_parent(mux_hw->clk);
|
parent = clk_hw_get_parent(mux_hw);
|
||||||
req->best_parent_hw = __clk_get_hw(parent);
|
req->best_parent_hw = parent;
|
||||||
req->best_parent_rate = __clk_get_rate(parent);
|
req->best_parent_rate = clk_hw_get_rate(parent);
|
||||||
|
|
||||||
rate = rate_ops->round_rate(rate_hw, req->rate,
|
rate = rate_ops->round_rate(rate_hw, req->rate,
|
||||||
&req->best_parent_rate);
|
&req->best_parent_rate);
|
||||||
@@ -93,11 +93,11 @@ static int clk_composite_determine_rate(struct clk_hw *hw,
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < clk_hw_get_num_parents(mux_hw); i++) {
|
for (i = 0; i < clk_hw_get_num_parents(mux_hw); i++) {
|
||||||
parent = clk_get_parent_by_index(mux_hw->clk, i);
|
parent = clk_hw_get_parent_by_index(mux_hw, i);
|
||||||
if (!parent)
|
if (!parent)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
parent_rate = __clk_get_rate(parent);
|
parent_rate = clk_hw_get_rate(parent);
|
||||||
|
|
||||||
tmp_rate = rate_ops->round_rate(rate_hw, req->rate,
|
tmp_rate = rate_ops->round_rate(rate_hw, req->rate,
|
||||||
&parent_rate);
|
&parent_rate);
|
||||||
@@ -108,7 +108,7 @@ static int clk_composite_determine_rate(struct clk_hw *hw,
|
|||||||
|
|
||||||
if (!rate_diff || !req->best_parent_hw
|
if (!rate_diff || !req->best_parent_hw
|
||||||
|| best_rate_diff > rate_diff) {
|
|| best_rate_diff > rate_diff) {
|
||||||
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;
|
||||||
best_rate_diff = rate_diff;
|
best_rate_diff = rate_diff;
|
||||||
best_rate = tmp_rate;
|
best_rate = tmp_rate;
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ unsigned long divider_recalc_rate(struct clk_hw *hw, unsigned long parent_rate,
|
|||||||
if (!div) {
|
if (!div) {
|
||||||
WARN(!(flags & CLK_DIVIDER_ALLOW_ZERO),
|
WARN(!(flags & CLK_DIVIDER_ALLOW_ZERO),
|
||||||
"%s: Zero divisor and CLK_DIVIDER_ALLOW_ZERO not set\n",
|
"%s: Zero divisor and CLK_DIVIDER_ALLOW_ZERO not set\n",
|
||||||
__clk_get_name(hw->clk));
|
clk_hw_get_name(hw));
|
||||||
return parent_rate;
|
return parent_rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -316,7 +316,7 @@ static int clk_divider_bestdiv(struct clk_hw *hw, unsigned long rate,
|
|||||||
*best_parent_rate = parent_rate_saved;
|
*best_parent_rate = parent_rate_saved;
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
parent_rate = __clk_round_rate(__clk_get_parent(hw->clk),
|
parent_rate = clk_hw_round_rate(clk_hw_get_parent(hw),
|
||||||
rate * i);
|
rate * i);
|
||||||
now = DIV_ROUND_UP(parent_rate, i);
|
now = DIV_ROUND_UP(parent_rate, i);
|
||||||
if (_is_best_div(rate, now, best, flags)) {
|
if (_is_best_div(rate, now, best, flags)) {
|
||||||
@@ -328,7 +328,7 @@ static int clk_divider_bestdiv(struct clk_hw *hw, unsigned long rate,
|
|||||||
|
|
||||||
if (!bestdiv) {
|
if (!bestdiv) {
|
||||||
bestdiv = _get_maxdiv(table, width, flags);
|
bestdiv = _get_maxdiv(table, width, flags);
|
||||||
*best_parent_rate = __clk_round_rate(__clk_get_parent(hw->clk), 1);
|
*best_parent_rate = clk_hw_round_rate(clk_hw_get_parent(hw), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return bestdiv;
|
return bestdiv;
|
||||||
|
|||||||
@@ -45,8 +45,7 @@ static long clk_factor_round_rate(struct clk_hw *hw, unsigned long rate,
|
|||||||
unsigned long best_parent;
|
unsigned long best_parent;
|
||||||
|
|
||||||
best_parent = (rate / fix->mult) * fix->div;
|
best_parent = (rate / fix->mult) * fix->div;
|
||||||
*prate = __clk_round_rate(__clk_get_parent(hw->clk),
|
*prate = clk_hw_round_rate(clk_hw_get_parent(hw), best_parent);
|
||||||
best_parent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (*prate / fix->div) * fix->mult;
|
return (*prate / fix->div) * fix->mult;
|
||||||
|
|||||||
Reference in New Issue
Block a user