
On Thu, Oct 13, 2022 at 10:34:29PM +0200, Michal Suchanek wrote:
k210 is 64bit but the driver and tests are also built in sandbox, and that can be built 32bit.
BIT(32) does not work on 32bit, shift before subtraction to fit into 32bit integer with BIT values.
Also see https://patchwork.ozlabs.org/project/uboot/patch/20221016071035.461454-1-hei...
Signed-off-by: Michal Suchanek msuchanek@suse.de
drivers/clk/clk_k210.c | 2 +- test/dm/k210_pll.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/clk_k210.c b/drivers/clk/clk_k210.c index 1961efaa5e..e85f8ae14a 100644 --- a/drivers/clk/clk_k210.c +++ b/drivers/clk/clk_k210.c @@ -846,7 +846,7 @@ again:
error = DIV_ROUND_CLOSEST_ULL(f * inv_ratio, r * od); /* The lower 16 bits are spurious */
error = abs((error - BIT(32))) >> 16;
error = abs((error >> 16) - BIT(32 - 16));
if (error < best_error) { best->r = r;
diff --git a/test/dm/k210_pll.c b/test/dm/k210_pll.c index a0cc84c396..622b1c9bef 100644 --- a/test/dm/k210_pll.c +++ b/test/dm/k210_pll.c @@ -33,7 +33,7 @@ static int dm_test_k210_pll_calc_config(u32 rate, u32 rate_in, error = DIV_ROUND_CLOSEST_ULL(f * inv_ratio, r * od); /* The lower 16 bits are spurious */
error = abs((error - BIT(32))) >> 16;
error = abs((error >> 16) - BIT(32 - 16)); if (error < best_error) { best->r = r; best->f = f;
-- 2.37.3