Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: actions: owl-divider: convert from divider_round_rate() to divider_determine_rate()

The divider_round_rate() function is now deprecated, so let's migrate
to divider_determine_rate() instead so that this deprecated API can be
removed. Additionally, owl_divider_helper_round_rate() is no longer used,
so let's drop that from the header file as well.

Note that when the main function itself was migrated to use
determine_rate, this was mistakenly converted to:

req->rate = divider_round_rate(...)

This is invalid in the case when an error occurs since it can set the
rate to a negative value.

Fixes: 1b04e12a8bcc ("clk: actions: owl-divider: convert from round_rate() to determine_rate()")
Acked-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Brian Masney <bmasney@redhat.com>

+2 -20
+2 -15
drivers/clk/actions/owl-divider.c
··· 13 13 14 14 #include "owl-divider.h" 15 15 16 - long owl_divider_helper_round_rate(struct owl_clk_common *common, 17 - const struct owl_divider_hw *div_hw, 18 - unsigned long rate, 19 - unsigned long *parent_rate) 20 - { 21 - return divider_round_rate(&common->hw, rate, parent_rate, 22 - div_hw->table, div_hw->width, 23 - div_hw->div_flags); 24 - } 25 - 26 16 static int owl_divider_determine_rate(struct clk_hw *hw, 27 17 struct clk_rate_request *req) 28 18 { 29 19 struct owl_divider *div = hw_to_owl_divider(hw); 30 20 31 - req->rate = owl_divider_helper_round_rate(&div->common, &div->div_hw, 32 - req->rate, 33 - &req->best_parent_rate); 34 - 35 - return 0; 21 + return divider_determine_rate(hw, req, div->div_hw.table, 22 + div->div_hw.width, div->div_hw.div_flags); 36 23 } 37 24 38 25 unsigned long owl_divider_helper_recalc_rate(struct owl_clk_common *common,
-5
drivers/clk/actions/owl-divider.h
··· 56 56 return container_of(common, struct owl_divider, common); 57 57 } 58 58 59 - long owl_divider_helper_round_rate(struct owl_clk_common *common, 60 - const struct owl_divider_hw *div_hw, 61 - unsigned long rate, 62 - unsigned long *parent_rate); 63 - 64 59 unsigned long owl_divider_helper_recalc_rate(struct owl_clk_common *common, 65 60 const struct owl_divider_hw *div_hw, 66 61 unsigned long parent_rate);