{
struct snd_soc_codec *codec = dai->codec;
struct wm8711_priv *wm8711 = snd_soc_codec_get_drvdata(codec);
- u16 iface = snd_soc_read(codec, WM8711_IFACE) & 0xfffc;
+ u16 iface = snd_soc_read(codec, WM8711_IFACE) & ~0xc;
int i = get_coeff(wm8711->sysclk, params_rate(params));
u16 srate = (coeff_div[i].sr << 2) |
(coeff_div[i].bosr << 1) | coeff_div[i].usb;
u16 mute_reg = snd_soc_read(codec, WM8711_APDIGI) & 0xfff7;
if (mute)
- snd_soc_write(codec, WM8711_APDIGI, mute_reg | 0x8);
- else
- snd_soc_write(codec, WM8711_APDIGI, mute_reg);
+ mute_reg |= 0x8;
+ snd_soc_write(codec, WM8711_APDIGI, mute_reg);
+
+ printk("wm8711 mute: 0x%x\n", mute_reg);
return 0;
}