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/ _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel