From: Ludovic Desroches <ludovic.desroc...@microchip.com>

To get the same behavior as the Linux driver, instead of selecting
the closest inferior rate, select the closest inferior or superior
rate

Signed-off-by: Ludovic Desroches <ludovic.desroc...@microchip.com>
Signed-off-by: Wenyou Yang <wenyou.y...@microchip.com>
---

 drivers/clk/at91/clk-generated.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/clk/at91/clk-generated.c b/drivers/clk/at91/clk-generated.c
index 8c9a3cb053..461b5b2c9a 100644
--- a/drivers/clk/at91/clk-generated.c
+++ b/drivers/clk/at91/clk-generated.c
@@ -98,9 +98,7 @@ static ulong generic_clk_set_rate(struct clk *clk, ulong rate)
 
                for (div = 1; div < GENERATED_MAX_DIV + 2; div++) {
                        tmp_rate = DIV_ROUND_CLOSEST(parent_rate, div);
-                       if (rate < tmp_rate)
-                               continue;
-                       tmp_diff = rate - tmp_rate;
+                       tmp_diff = abs(rate - tmp_rate);
 
                        if (best_diff < 0 || best_diff > tmp_diff) {
                                best_rate = tmp_rate;
-- 
2.13.0

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to