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-heinrich.schucha...@canonical.com/ > > Signed-off-by: Michal Suchanek <msucha...@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 >