[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