[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