Loading drivers/clk/bcm/clk-kona.c +10 −10 Original line number Diff line number Diff line Loading @@ -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; if (!divider_exists(div)) return __clk_get_rate(hw->clk); return clk_hw_get_rate(hw); /* Quietly avoid a zero rate */ return round_rate(bcm_clk->ccu, div, &bcm_clk->u.peri->pre_div, Loading @@ -1022,8 +1022,7 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw, struct clk_rate_request *req) { struct kona_clk *bcm_clk = to_kona_clk(hw); struct clk *clk = hw->clk; struct clk *current_parent; struct clk_hw *current_parent; unsigned long parent_rate; unsigned long best_delta; unsigned long best_rate; Loading @@ -1048,14 +1047,14 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw, } /* Unless we can do better, stick with current parent */ current_parent = clk_get_parent(clk); parent_rate = __clk_get_rate(current_parent); current_parent = clk_hw_get_parent(hw); parent_rate = clk_hw_get_rate(current_parent); best_rate = kona_peri_clk_round_rate(hw, req->rate, &parent_rate); best_delta = abs(best_rate - req->rate); /* Check whether any other parent clock can produce a better result */ 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 other_rate; Loading @@ -1064,14 +1063,14 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw, continue; /* 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, &parent_rate); delta = abs(other_rate - req->rate); if (delta < best_delta) { best_delta = delta; best_rate = other_rate; req->best_parent_hw = __clk_get_hw(parent); req->best_parent_hw = parent; req->best_parent_rate = parent_rate; } } Loading Loading @@ -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) return -EINVAL; if (rate == __clk_get_rate(hw->clk)) if (rate == clk_hw_get_rate(hw)) return 0; if (!divider_exists(div)) Loading Loading @@ -1258,6 +1257,7 @@ bool __init kona_ccu_init(struct ccu_data *ccu) unsigned long flags; unsigned int which; struct clk **clks = ccu->clk_data.clks; struct kona_clk *kona_clks = ccu->kona_clks; bool success = true; flags = ccu_lock(ccu); Loading @@ -1268,7 +1268,7 @@ bool __init kona_ccu_init(struct ccu_data *ccu) if (!clks[which]) continue; bcm_clk = to_kona_clk(__clk_get_hw(clks[which])); bcm_clk = &kona_clks[which]; success &= __kona_clk_init(bcm_clk); } Loading Loading
drivers/clk/bcm/clk-kona.c +10 −10 Original line number Diff line number Diff line Loading @@ -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; if (!divider_exists(div)) return __clk_get_rate(hw->clk); return clk_hw_get_rate(hw); /* Quietly avoid a zero rate */ return round_rate(bcm_clk->ccu, div, &bcm_clk->u.peri->pre_div, Loading @@ -1022,8 +1022,7 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw, struct clk_rate_request *req) { struct kona_clk *bcm_clk = to_kona_clk(hw); struct clk *clk = hw->clk; struct clk *current_parent; struct clk_hw *current_parent; unsigned long parent_rate; unsigned long best_delta; unsigned long best_rate; Loading @@ -1048,14 +1047,14 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw, } /* Unless we can do better, stick with current parent */ current_parent = clk_get_parent(clk); parent_rate = __clk_get_rate(current_parent); current_parent = clk_hw_get_parent(hw); parent_rate = clk_hw_get_rate(current_parent); best_rate = kona_peri_clk_round_rate(hw, req->rate, &parent_rate); best_delta = abs(best_rate - req->rate); /* Check whether any other parent clock can produce a better result */ 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 other_rate; Loading @@ -1064,14 +1063,14 @@ static int kona_peri_clk_determine_rate(struct clk_hw *hw, continue; /* 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, &parent_rate); delta = abs(other_rate - req->rate); if (delta < best_delta) { best_delta = delta; best_rate = other_rate; req->best_parent_hw = __clk_get_hw(parent); req->best_parent_hw = parent; req->best_parent_rate = parent_rate; } } Loading Loading @@ -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) return -EINVAL; if (rate == __clk_get_rate(hw->clk)) if (rate == clk_hw_get_rate(hw)) return 0; if (!divider_exists(div)) Loading Loading @@ -1258,6 +1257,7 @@ bool __init kona_ccu_init(struct ccu_data *ccu) unsigned long flags; unsigned int which; struct clk **clks = ccu->clk_data.clks; struct kona_clk *kona_clks = ccu->kona_clks; bool success = true; flags = ccu_lock(ccu); Loading @@ -1268,7 +1268,7 @@ bool __init kona_ccu_init(struct ccu_data *ccu) if (!clks[which]) continue; bcm_clk = to_kona_clk(__clk_get_hw(clks[which])); bcm_clk = &kona_clks[which]; success &= __kona_clk_init(bcm_clk); } Loading