ASoC: fsl-ssi: fix do_div build warning in fsl_ssi_set_bclk()
authorTimur Tabi <timur@tabi.org>
Fri, 13 Jun 2014 12:42:40 +0000 (07:42 -0500)
committerMark Brown <broonie@linaro.org>
Tue, 17 Jun 2014 14:44:53 +0000 (15:44 +0100)
do_div() requires that the first parameter is a 64-bit integer,
which but clkrate was defined as an unsigned long.  This caused
the following warnings:

 CC      sound/soc/fsl/fsl_ssi.o
sound/soc/fsl/fsl_ssi.c: In function 'fsl_ssi_set_bclk':
sound/soc/fsl/fsl_ssi.c:593:3: warning: comparison of distinct pointer types lacks a cast
sound/soc/fsl/fsl_ssi.c:593:3: warning: right shift count >= width of type
sound/soc/fsl/fsl_ssi.c:593:3: warning: passing argument 1 of '__div64_32' from incompatible pointer type
include/asm-generic/div64.h:35:17: note: expected 'uint64_t *' but argument is of type 'long unsigned int *'

Signed-off-by: Timur Tabi <timur@tabi.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/fsl/fsl_ssi.c

index 9bfef55..3043d57 100644 (file)
@@ -590,8 +590,8 @@ static int fsl_ssi_set_bclk(struct snd_pcm_substream *substream,
                else
                        clkrate = clk_round_rate(ssi_private->baudclk, tmprate);
 
-               do_div(clkrate, factor);
-               afreq = (u32)clkrate / (i + 1);
+               clkrate /= factor;
+               afreq = clkrate / (i + 1);
 
                if (freq == afreq)
                        sub = 0;