[alsa-devel] [PATCH v2 RESEND] ASoC: wm9081: Use snd_soc_update_bits for read-modify-write
Axel Lin
axel.lin at gmail.com
Sat Nov 5 07:46:55 CET 2011
2011/11/5 Mark Brown <broonie at 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
More information about the Alsa-devel
mailing list