[alsa-devel] [PATCH] ASoC: WM8940: incorrect mask for BCLKDIV

Grzegorz Daniluk g.daniluk at elproma.com.pl
Fri Oct 1 10:23:43 CEST 2010


corrected bitmask in BCLKDIV setting (wm8940_set_dai_clkdiv) and
bias_level in wm8940 register function.

best regards,
Grzegorz Daniluk

----
diff -urN a/sound/soc/codecs/wm8940.c b/sound/soc/codecs/wm8940.c
--- a/sound/soc/codecs/wm8940.c    2010-04-16 11:10:10.000000000 +0000
+++ b/sound/soc/codecs/wm8940.c    2010-09-29 14:12:17.263497290 +0000
@@ -514,7 +514,7 @@

     if ((Ndiv < 6) || (Ndiv > 12))
         printk(KERN_WARNING
-            "WM8940 N value %d outwith recommended range!d\n",
+            "WM8940 N value %d outwith recommended range!\n",
             Ndiv);

     pll_div.n = Ndiv;
@@ -604,7 +604,7 @@

     switch (div_id) {
     case WM8940_BCLKDIV:
-        reg = snd_soc_read(codec, WM8940_CLOCK) & 0xFFEF3;
+        reg = snd_soc_read(codec, WM8940_CLOCK) & 0xFFE3;
         ret = snd_soc_write(codec, WM8940_CLOCK, reg | (div << 2));
         break;
     case WM8940_MCLKDIV:
@@ -800,9 +800,10 @@

     wm8940_dai.dev = codec->dev;

-    wm8940_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
+    wm8940_set_bias_level(codec, SND_SOC_BIAS_PREPARE);

-    ret = snd_soc_write(codec, WM8940_POWER1, 0x180);
+    reg = snd_soc_read(codec, WM8940_POWER1);
+    ret = snd_soc_write(codec, WM8940_POWER1, reg | 0x180);
     if (ret < 0)
         return ret;



More information about the Alsa-devel mailing list