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

Guennadi Liakhovetski g.liakhovetski at gmx.de
Fri Jan 22 09:35:44 CET 2010


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/


More information about the Alsa-devel mailing list