Skip to content
Snippets Groups Projects
Commit 7a8655e1 authored by Amit Daniel Kachhap's avatar Amit Daniel Kachhap Committed by Stephen Boyd
Browse files

clk: scmi: Fix the rounding of clock rate


This fix rounds the clock rate properly by using quotient and not
remainder in the calculation. This issue was found while testing HDMI
in the Juno platform.

Fixes: 6d6a1d82 ("clk: add support for clocks provided by SCMI")
Acked-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Signed-off-by: default avatarAmit Daniel Kachhap <amit.kachhap@arm.com>
Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent ce397d21
Branches
Tags
No related merge requests found
...@@ -38,7 +38,6 @@ static unsigned long scmi_clk_recalc_rate(struct clk_hw *hw, ...@@ -38,7 +38,6 @@ static unsigned long scmi_clk_recalc_rate(struct clk_hw *hw,
static long scmi_clk_round_rate(struct clk_hw *hw, unsigned long rate, static long scmi_clk_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *parent_rate) unsigned long *parent_rate)
{ {
int step;
u64 fmin, fmax, ftmp; u64 fmin, fmax, ftmp;
struct scmi_clk *clk = to_scmi_clk(hw); struct scmi_clk *clk = to_scmi_clk(hw);
...@@ -60,9 +59,9 @@ static long scmi_clk_round_rate(struct clk_hw *hw, unsigned long rate, ...@@ -60,9 +59,9 @@ static long scmi_clk_round_rate(struct clk_hw *hw, unsigned long rate,
ftmp = rate - fmin; ftmp = rate - fmin;
ftmp += clk->info->range.step_size - 1; /* to round up */ ftmp += clk->info->range.step_size - 1; /* to round up */
step = do_div(ftmp, clk->info->range.step_size); do_div(ftmp, clk->info->range.step_size);
return step * clk->info->range.step_size + fmin; return ftmp * clk->info->range.step_size + fmin;
} }
static int scmi_clk_set_rate(struct clk_hw *hw, unsigned long rate, static int scmi_clk_set_rate(struct clk_hw *hw, unsigned long rate,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment