clk: Change clk_ops->determine_rate to return a clk_hw as the best parent
This is in preparation for clock providers to not have to deal with struct clk. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Michael Turquette <mturquette@linaro.org>
此提交包含在:
@@ -375,7 +375,7 @@ static long alchemy_calc_div(unsigned long rate, unsigned long prate,
|
||||
|
||||
static long alchemy_clk_fgcs_detr(struct clk_hw *hw, unsigned long rate,
|
||||
unsigned long *best_parent_rate,
|
||||
struct clk **best_parent_clk,
|
||||
struct clk_hw **best_parent_clk,
|
||||
int scale, int maxdiv)
|
||||
{
|
||||
struct clk *pc, *bpc, *free;
|
||||
@@ -454,7 +454,7 @@ static long alchemy_clk_fgcs_detr(struct clk_hw *hw, unsigned long rate,
|
||||
}
|
||||
|
||||
*best_parent_rate = bpr;
|
||||
*best_parent_clk = bpc;
|
||||
*best_parent_clk = __clk_get_hw(bpc);
|
||||
return br;
|
||||
}
|
||||
|
||||
@@ -548,7 +548,7 @@ static unsigned long alchemy_clk_fgv1_recalc(struct clk_hw *hw,
|
||||
|
||||
static long alchemy_clk_fgv1_detr(struct clk_hw *hw, unsigned long rate,
|
||||
unsigned long *best_parent_rate,
|
||||
struct clk **best_parent_clk)
|
||||
struct clk_hw **best_parent_clk)
|
||||
{
|
||||
return alchemy_clk_fgcs_detr(hw, rate, best_parent_rate,
|
||||
best_parent_clk, 2, 512);
|
||||
@@ -680,7 +680,7 @@ static unsigned long alchemy_clk_fgv2_recalc(struct clk_hw *hw,
|
||||
|
||||
static long alchemy_clk_fgv2_detr(struct clk_hw *hw, unsigned long rate,
|
||||
unsigned long *best_parent_rate,
|
||||
struct clk **best_parent_clk)
|
||||
struct clk_hw **best_parent_clk)
|
||||
{
|
||||
struct alchemy_fgcs_clk *c = to_fgcs_clk(hw);
|
||||
int scale, maxdiv;
|
||||
@@ -899,7 +899,7 @@ static int alchemy_clk_csrc_setr(struct clk_hw *hw, unsigned long rate,
|
||||
|
||||
static long alchemy_clk_csrc_detr(struct clk_hw *hw, unsigned long rate,
|
||||
unsigned long *best_parent_rate,
|
||||
struct clk **best_parent_clk)
|
||||
struct clk_hw **best_parent_clk)
|
||||
{
|
||||
struct alchemy_fgcs_clk *c = to_fgcs_clk(hw);
|
||||
int scale = c->dt[2] == 3 ? 1 : 2; /* au1300 check */
|
||||
|
新增問題並參考
封鎖使用者