On Tue, Nov 03, 2015 at 05:01:46PM -0500, Nicolas Pitre wrote: > do_div() must only be used with a u64 dividend. > > Signed-off-by: Nicolas Pitre <nico@xxxxxxxxxx> > > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c > index 254094ab7f..5da2aa8cc3 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c > @@ -141,9 +141,8 @@ gk20a_pllg_calc_rate(struct gk20a_clk *clk) > > rate = clk->parent_rate * clk->n; > divider = clk->m * pl_to_div[clk->pl]; > - do_div(rate, divider); > > - return rate / 2; > + return rate / divider / 2; > } > > static int This causes build breakage on 32-bit ARM. I'm also confused by the commit message because the code that I'm looking at has u64 rate and u32 divider, which matches the types given in include/asm-generic/div64.h: * The semantics of do_div() are: * * uint32_t do_div(uint64_t *n, uint32_t base) * { * uint32_t remainder = *n % base; * *n = *n / base; * return remainder; * } Thierry
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel