Re: [alsa-devel] [PATCH 1/4] ASoC: add a WM8978 codec driver

Guennadi Liakhovetski
2010-01-22T08:35:44Z

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