ASoC: rsnd: Fixup SRCm_IFSVR calculate method
authorHiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Mon, 25 Jul 2016 01:52:43 +0000 (01:52 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 27 Jul 2016 19:12:30 +0000 (20:12 +0100)
This patch fixes the calculation accuracy degradation of SRCm_IFSVR
register value.

Signed-off-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/src.c

index e39f916d0f2fa811b1faece1d212b0f8fe1fc5d8..969a5169de255a2fe66202ffc89808c89bfe98ec 100644 (file)
@@ -226,8 +226,12 @@ static void rsnd_src_set_convert_rate(struct rsnd_dai_stream *io,
        ifscr = 0;
        fsrate = 0;
        if (fin != fout) {
+               u64 n;
+
                ifscr = 1;
-               fsrate = 0x0400000 / fout * fin;
+               n = (u64)0x0400000 * fin;
+               do_div(n, fout);
+               fsrate = n;
        }
 
        /*