tegra/clk-divider: fix wrong do_div() usage
authorNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 4 Nov 2015 02:49:15 +0000 (21:49 -0500)
committerNicolas Pitre <nicolas.pitre@linaro.org>
Mon, 16 Nov 2015 17:37:55 +0000 (12:37 -0500)
do_div() is meant to be used with an unsigned dividend.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
drivers/clk/tegra/clk-divider.c

index 48c83ef..16e0aee 100644 (file)
@@ -32,7 +32,7 @@
 static int get_div(struct tegra_clk_frac_div *divider, unsigned long rate,
                   unsigned long parent_rate)
 {
-       s64 divider_ux1 = parent_rate;
+       u64 divider_ux1 = parent_rate;
        u8 flags = divider->flags;
        int mul;
 
@@ -54,7 +54,7 @@ static int get_div(struct tegra_clk_frac_div *divider, unsigned long rate,
 
        divider_ux1 -= mul;
 
-       if (divider_ux1 < 0)
+       if ((s64)divider_ux1 < 0)
                return 0;
 
        if (divider_ux1 > get_max_div(divider))