ASoC: rx1950: Fix clkdiv for 16khz and 48khz
authorVasily Khoruzhick <anarsoul@gmail.com>
Tue, 7 Sep 2010 14:04:18 +0000 (17:04 +0300)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 8 Sep 2010 10:27:25 +0000 (11:27 +0100)
Usage of 256 as clkdiv gives better rounding error (<1%)
for 16khz and 48khz

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/s3c24xx/rx1950_uda1380.c

index 9552296d27d99412dda78a4677ff272547de1347..ffd5cf2fb0a91c3ebbb45d7c58951e3915670a69 100644 (file)
@@ -171,9 +171,9 @@ static int rx1950_hw_params(struct snd_pcm_substream *substream,
        case 16000:
        case 48000:
                clk_source = S3C24XX_CLKSRC_PCLK;
-               fs_mode = S3C2410_IISMOD_384FS;
-               div = s3c24xx_i2s_get_clockrate() / (384 * rate);
-               if (s3c24xx_i2s_get_clockrate() % (384 * rate) > (182 * rate))
+               fs_mode = S3C2410_IISMOD_256FS;
+               div = s3c24xx_i2s_get_clockrate() / (256 * rate);
+               if (s3c24xx_i2s_get_clockrate() % (256 * rate) > (128 * rate))
                        div++;
                break;
        case 44100: