From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wenyou Yang Date: Fri, 17 Nov 2017 14:50:21 +0800 Subject: [U-Boot] [PATCH 1/2] clk: at91: clk-generated: select absolute closest rate In-Reply-To: <20171117065022.10609-1-wenyou.yang@microchip.com> References: <20171117065022.10609-1-wenyou.yang@microchip.com> Message-ID: <20171117065022.10609-2-wenyou.yang@microchip.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de From: Ludovic Desroches 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 Signed-off-by: Wenyou Yang --- 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