22 Jan
2010
22 Jan
'10
9:35 a.m.
On Wed, 20 Jan 2010, Mark Brown wrote:
On Wed, Jan 20, 2010 at 08:50:59PM +0100, Guennadi Liakhovetski wrote:
On Tue, 19 Jan 2010, Mark Brown wrote:
[snip]
- u16 power1 = snd_soc_read(codec, WM8978_POWER_MANAGEMENT_1) & ~3;
This bitmask maintains everything except the two LSB...
- switch (level) {
- case SND_SOC_BIAS_ON:
- case SND_SOC_BIAS_PREPARE:
power1 |= 1; /* VMID 75k */
snd_soc_write(codec, WM8978_POWER_MANAGEMENT_1, power1);
break;
- case SND_SOC_BIAS_STANDBY:
power1 |= 0xC;
...but this is also managing other bits.
Right, bits 7-6 are either kept or set, nothing wrong with that.
That seems wrong - if they're being managed in the bias level configuration they ought to be being turned off at some point. If they should be set all the time then set them during chip init.
Right, a couple of lines below:
+ case SND_SOC_BIAS_OFF: + snd_soc_write(codec, WM8978_POWER_MANAGEMENT_1, 0);
Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/