OSDN Git Service

clk: at91: clk-generated: continue if __clk_determine_rate() returns error
authorClaudiu Beznea <claudiu.beznea@microchip.com>
Wed, 22 Jul 2020 07:38:09 +0000 (10:38 +0300)
committerStephen Boyd <sboyd@kernel.org>
Fri, 24 Jul 2020 09:18:47 +0000 (02:18 -0700)
__clk_determine_rate() may return error. Skip the current step
in case of error.

Fixes: 1a1a36d72e3d3 ("clk: at91: clk-generated: make gclk determine audio_pll rate")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/1595403506-8209-2-git-send-email-claudiu.beznea@microchip.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/at91/clk-generated.c

index 44a46dc..995a131 100644 (file)
@@ -170,7 +170,8 @@ static int clk_generated_determine_rate(struct clk_hw *hw,
 
        for (div = 1; div < GENERATED_MAX_DIV + 2; div++) {
                req_parent.rate = req->rate * div;
-               __clk_determine_rate(parent, &req_parent);
+               if (__clk_determine_rate(parent, &req_parent))
+                       continue;
                clk_generated_best_diff(req, parent, req_parent.rate, div,
                                        &best_diff, &best_rate);