]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
clk: zynqmp: divider: convert from divider_round_rate() to divider_determine_rate()
authorBrian Masney <bmasney@redhat.com>
Thu, 8 Jan 2026 21:16:41 +0000 (16:16 -0500)
committerBrian Masney <bmasney@redhat.com>
Thu, 22 Jan 2026 15:48:26 +0000 (10:48 -0500)
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.

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: 0f9cf96a01fd ("clk: zynqmp: divider: convert from round_rate() to determine_rate()")
Signed-off-by: Brian Masney <bmasney@redhat.com>
drivers/clk/zynqmp/divider.c

index c824eeacd8ebd4d670d78f1af2186e61008bdae2..de6f478d527d89881a9c0deb04e7bc0a5bf6ebba 100644 (file)
@@ -151,8 +151,9 @@ static int zynqmp_clk_divider_determine_rate(struct clk_hw *hw,
 
        width = fls(divider->max_div);
 
-       req->rate = divider_round_rate(hw, req->rate, &req->best_parent_rate,
-                                      NULL, width, divider->flags);
+       ret = divider_determine_rate(hw, req, NULL, width, divider->flags);
+       if (ret != 0)
+               return ret;
 
        if (divider->is_frac && (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT) &&
            (req->rate % req->best_parent_rate))