[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