lkml.org 
[lkml]   [2020]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 003/477] clk: sunxi: Fix incorrect usage of round_down()
    Date
    From: Rikard Falkeborn <rikard.falkeborn@gmail.com>

    [ Upstream commit ee25d9742dabed3fd18158b518f846abeb70f319 ]

    round_down() can only round to powers of 2. If round_down() is asked
    to round to something that is not a power of 2, incorrect results are
    produced. The incorrect results can be both too large and too small.

    Instead, use rounddown() which can round to any number.

    Fixes: 6a721db180a2 ("clk: sunxi: Add A31 clocks support")
    Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/clk/sunxi/clk-sunxi.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
    index 27201fd26e442..e1aa1fbac48a0 100644
    --- a/drivers/clk/sunxi/clk-sunxi.c
    +++ b/drivers/clk/sunxi/clk-sunxi.c
    @@ -90,7 +90,7 @@ static void sun6i_a31_get_pll1_factors(struct factors_request *req)
    * Round down the frequency to the closest multiple of either
    * 6 or 16
    */
    - u32 round_freq_6 = round_down(freq_mhz, 6);
    + u32 round_freq_6 = rounddown(freq_mhz, 6);
    u32 round_freq_16 = round_down(freq_mhz, 16);

    if (round_freq_6 > round_freq_16)
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-06-23 22:02    [W:4.037 / U:0.300 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site