]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ASoC: S3C: I2Sv2: Reject immidiate register value
authorJassi Brar <jassi.brar@samsung.com>
Wed, 10 Mar 2010 07:48:51 +0000 (16:48 +0900)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 10 Mar 2010 14:12:58 +0000 (14:12 +0000)
Towards generalizing CPU driver interface, do not accept direct field
values for the BCLK and RCLK.
The machine driver should simply request the FS-multiple and not provide
the value to be set in divide field of IISMOD.

[Confirmed by Jassi that no existing machine drivers are affected --
broonie]

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/s3c24xx/s3c-i2s-v2.c

index 65d1cddc4b3ae0fee33ecf58a6f16a20bb4268f0..b846f563cb50606eb5924e3e482634cf734d763c 100644 (file)
@@ -463,29 +463,25 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,
 
        switch (div_id) {
        case S3C_I2SV2_DIV_BCLK:
-               if (div > 3) {
-                       /* convert value to bit field */
-
-                       switch (div) {
-                       case 16:
-                               div = S3C2412_IISMOD_BCLK_16FS;
-                               break;
+               switch (div) {
+               case 16:
+                       div = S3C2412_IISMOD_BCLK_16FS;
+                       break;
 
-                       case 32:
-                               div = S3C2412_IISMOD_BCLK_32FS;
-                               break;
+               case 32:
+                       div = S3C2412_IISMOD_BCLK_32FS;
+                       break;
 
-                       case 24:
-                               div = S3C2412_IISMOD_BCLK_24FS;
-                               break;
+               case 24:
+                       div = S3C2412_IISMOD_BCLK_24FS;
+                       break;
 
-                       case 48:
-                               div = S3C2412_IISMOD_BCLK_48FS;
-                               break;
+               case 48:
+                       div = S3C2412_IISMOD_BCLK_48FS;
+                       break;
 
-                       default:
-                               return -EINVAL;
-                       }
+               default:
+                       return -EINVAL;
                }
 
                reg = readl(i2s->regs + S3C2412_IISMOD);
@@ -496,29 +492,25 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,
                break;
 
        case S3C_I2SV2_DIV_RCLK:
-               if (div > 3) {
-                       /* convert value to bit field */
-
-                       switch (div) {
-                       case 256:
-                               div = S3C2412_IISMOD_RCLK_256FS;
-                               break;
+               switch (div) {
+               case 256:
+                       div = S3C2412_IISMOD_RCLK_256FS;
+                       break;
 
-                       case 384:
-                               div = S3C2412_IISMOD_RCLK_384FS;
-                               break;
+               case 384:
+                       div = S3C2412_IISMOD_RCLK_384FS;
+                       break;
 
-                       case 512:
-                               div = S3C2412_IISMOD_RCLK_512FS;
-                               break;
+               case 512:
+                       div = S3C2412_IISMOD_RCLK_512FS;
+                       break;
 
-                       case 768:
-                               div = S3C2412_IISMOD_RCLK_768FS;
-                               break;
+               case 768:
+                       div = S3C2412_IISMOD_RCLK_768FS;
+                       break;
 
-                       default:
-                               return -EINVAL;
-                       }
+               default:
+                       return -EINVAL;
                }
 
                reg = readl(i2s->regs + S3C2412_IISMOD);