On 10/09, Tomeu Vizoso wrote: > @@ -946,6 +946,7 @@ unsigned long __clk_round_rate(struct clk *clk, unsigned long rate) > { > unsigned long parent_rate = 0; > struct clk *parent; > + struct clk_hw *parent_hw; > > if (!clk) > return 0; > @@ -956,7 +957,7 @@ unsigned long __clk_round_rate(struct clk *clk, unsigned long rate) > > if (clk->ops->determine_rate) > return clk->ops->determine_rate(clk->hw, rate, &parent_rate, > - &parent); > + &parent_hw); We should assign the value of parent_hw somewhere here so that drivers don't need to if they want the current parent. This would match the current behavior where parent is already assigned the current parent. > else if (clk->ops->round_rate) > return clk->ops->round_rate(clk->hw, rate, &parent_rate); > else if (clk->flags & CLK_SET_RATE_PARENT) > @@ -1345,6 +1346,7 @@ static struct clk *clk_calc_new_rates(struct clk *clk, unsigned long rate) > { > struct clk *top = clk; > struct clk *old_parent, *parent; > + struct clk_hw *parent_hw; > unsigned long best_parent_rate = 0; > unsigned long new_rate; > int p_index = 0; > @@ -1362,7 +1364,8 @@ static struct clk *clk_calc_new_rates(struct clk *clk, unsigned long rate) > if (clk->ops->determine_rate) { > new_rate = clk->ops->determine_rate(clk->hw, rate, > &best_parent_rate, > - &parent); > + &parent_hw); > + parent = parent_hw->clk; Same comment here. > } else if (clk->ops->round_rate) { > new_rate = clk->ops->round_rate(clk->hw, rate, > &best_parent_rate); > -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project