Re: [PATCH V3] clk: qcom: clk-alpha-pll: Simplify the zonda_pll_adjust_l_val()

From: Stephen Boyd
Date: Mon Sep 09 2024 - 17:08:21 EST


Quoting Jon Hunter (2024-09-09 03:57:09)
>
> On 06/09/2024 15:14, Jon Hunter wrote:
> >
> > On 06/09/2024 12:39, Satya Priya Kakitapalli wrote:
> >> In zonda_pll_adjust_l_val() replace the divide operator with comparison
> >> operator to fix below build error and smatch warning.
> >>
> >> drivers/clk/qcom/clk-alpha-pll.o: In function `clk_zonda_pll_set_rate':
> >> clk-alpha-pll.c:(.text+0x45dc): undefined reference to `__aeabi_uldivmod'
> >>
> >> smatch warnings:
> >> drivers/clk/qcom/clk-alpha-pll.c:2129 zonda_pll_adjust_l_val() warn:
> >> replace
> >> divide condition '(remainder * 2) / prate' with '(remainder * 2) >=
> >> prate'
> >>
> >> Fixes: f4973130d255 ("clk: qcom: clk-alpha-pll: Update set_rate for
> >> Zonda PLL")
> >> Reported-by: Jon Hunter <jonathanh@xxxxxxxxxx>
> >> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> >> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> >> Closes: https://lore.kernel.org/r/202408110724.8pqbpDiD-lkp@xxxxxxxxx/
> >> Signed-off-by: Satya Priya Kakitapalli <quic_skakitap@xxxxxxxxxxx>
> >> ---
> >>   drivers/clk/qcom/clk-alpha-pll.c | 4 +---
> >>   1 file changed, 1 insertion(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/clk/qcom/clk-alpha-pll.c
> >> b/drivers/clk/qcom/clk-alpha-pll.c
> >> index 019713c38f25..f9105443d7db 100644
> >> --- a/drivers/clk/qcom/clk-alpha-pll.c
> >> +++ b/drivers/clk/qcom/clk-alpha-pll.c
> >> @@ -2176,10 +2176,8 @@ static void zonda_pll_adjust_l_val(unsigned
> >> long rate, unsigned long prate, u32
> >>       quotient = rate;
> >>       remainder = do_div(quotient, prate);
> >> -    *l = quotient;
> >> -    if ((remainder * 2) / prate)
> >> -        *l = *l + 1;
> >> +    *l = rate + (u32)(remainder * 2 >= prate);
> >>   }
> >>   static int clk_zonda_pll_set_rate(struct clk_hw *hw, unsigned long
> >> rate,
> >
> >
> > Tested-by: Jon Hunter <jonathanh@xxxxxxxxxx>
>
>
> Looks like this has now landed in the mainline. Can we see if we can get
> this into v6.11?
>

Applied to clk-fixes. Was it too hard to keep the if statement and just
change to a comparison?

if (remainder * 2 >= prate)
*l = *l + 1;