Re: [PATCH] clk: hisilicon: Remove unnecessary local variable

From: Stephen Boyd
Date: Mon Jul 29 2024 - 19:23:12 EST


Quoting Thorsten Blum (2024-07-10 13:18:45)
> diff --git a/drivers/clk/hisilicon/clk-hi3559a.c b/drivers/clk/hisilicon/clk-hi3559a.c
> index c79a94f6d9d2..30d5a6ba8fa5 100644
> --- a/drivers/clk/hisilicon/clk-hi3559a.c
> +++ b/drivers/clk/hisilicon/clk-hi3559a.c
> @@ -407,7 +407,7 @@ static unsigned long clk_pll_recalc_rate(struct clk_hw *hw,
> unsigned long parent_rate)
> {
> struct hi3559av100_clk_pll *clk = to_pll_clk(hw);
> - u64 frac_val, fbdiv_val, refdiv_val;
> + u64 frac_val, fbdiv_val;
> u32 postdiv1_val, postdiv2_val;
> u32 val;

I see 'val' is u32 here.

> u64 tmp, rate;
> @@ -435,13 +435,12 @@ static unsigned long clk_pll_recalc_rate(struct clk_hw *hw,
> val = readl_relaxed(clk->ctrl_reg2);
> val = val >> clk->refdiv_shift;
> val &= ((1 << clk->refdiv_width) - 1);
> - refdiv_val = val;
>
> /* rate = 24000000 * (fbdiv + frac / (1<<24) ) / refdiv */
> rate = 0;
> tmp = 24000000 * fbdiv_val + (24000000 * frac_val) / (1 << 24);
> rate += tmp;
> - do_div(rate, refdiv_val);
> + do_div(rate, val);

So this can be div_u64() now?

> do_div(rate, postdiv1_val * postdiv2_val);