Re: [PATCH] clk: qcom: clk-alpha-pll: Replace divide operator with comparison

From: Satya Priya Kakitapalli
Date: Fri Sep 06 2024 - 07:07:42 EST


Hi Vladimir,


On 8/14/2024 1:31 AM, Vladimir Zapolskiy wrote:
On 8/13/24 12:40, Satya Priya Kakitapalli wrote:
In zonda_pll_adjust_l_val() replace the divide operator with comparison
operator since comparisons are faster than divisions.

Fixes: f4973130d255 ("clk: qcom: clk-alpha-pll: Update set_rate for Zonda PLL")

Apparently the change is not a fix, therefore I believe the Fixes tag
shall be removed.

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 | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/qcom/clk-alpha-pll.c b/drivers/clk/qcom/clk-alpha-pll.c
index 2f620ccb41cb..fd8a82bb3690 100644
--- a/drivers/clk/qcom/clk-alpha-pll.c
+++ b/drivers/clk/qcom/clk-alpha-pll.c
@@ -2126,7 +2126,7 @@ static void zonda_pll_adjust_l_val(unsigned long rate, unsigned long prate, u32
      remainder = do_div(quotient, prate);
      *l = quotient;

Since it's not a fix, but a simplification, you may wish to remove
an unnecessary 'quotient' local variable:

remainder = do_div(rate, prate);


I tried removing the quotient variable, but it is leading to below build errors on arm32 architectures, so I will add the quotient variable back on V3,  to make the pointer type compatible for both arm32 and arm64.


error: passing argument 1 of '__div64_32' from incompatible pointer type [-Werror=incompatible-pointer-types]
  238 |   __rem = __div64_32(&(n), __base);


expected 'uint64_t *' {aka 'long long unsigned int *'} but argument is of type 'long unsigned int *'
   24 | static inline uint32_t __div64_32(uint64_t *n, uint32_t base)


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

*l = rate + (u32)(remainder * 2 >= prate);

I hope the assignment above is quite clear...

  }

With the review comments above implemented, feel free to add to v2

Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@xxxxxxxxxx>

--
Best wishes,
Vladimir