2011/11/5 Mark Brown broonie@opensource.wolfsonmicro.com:
On Wed, Oct 19, 2011 at 11:06:27AM +0800, Axel Lin wrote:
/* Normal bias enable & soft start off */
- reg |= WM9081_BIAS_ENA;
- reg &= ~WM9081_VMID_RAMP;
- snd_soc_write(codec, WM9081_VMID_CONTROL, reg);
- snd_soc_update_bits(codec, WM9081_VMID_CONTROL,
- WM9081_VMID_RAMP | WM9081_BIAS_ENA |
- WM9081_VMID_SEL_MASK,
- WM9081_BIAS_ENA);
This looks (and sounds) wrong - the original code didn't touch VMID_SEL_MASK for this update but the new version will clear VMID_SEL_MASK. Even with that fixed there still seems to be some issue here, though.
Hi Mark,
I just re-check current code, and I think current code (before converting to snd_soc_update_bits) is broken. See below 2 patches: ( I'm sending the patch now) ASoC: wm9081: Fix reading wrong register for setting VMID 2*240k ASoC: wm9081: Don't write WM9081_BIAS_ENA bit to WM9081_VMID_CONTROL register
Would you mind to test if above 2 patches works. If it works, I'll send a new patch to use snd_soc_update_bits for read-modify-write.
Thanks, Axel