[alsa-devel] [PATCH] asoc tlv320aic3x: set power bits correctly

Mark Brown broonie at opensource.wolfsonmicro.com
Wed Apr 30 11:57:47 CEST 2008

On Wed, Apr 30, 2008 at 11:37:19AM +0200, Daniel Mack wrote:
> Set power bits in output stage control registers to reflect the "!muted"
> bits. The codec needs them set in order to operate correctly.

Could you explain in more detail what this patch is doing, please
(ideally in comments in the code or at least the commit message)?

> +		if (*val & 0x08)
> +			*val |= 0x01;
> +		else
> +			*val &= ~0x01;
> +
> +		break;
> +	}

It would be good if the code were clearer about what these register bits
mean and why this isn't being handled via DAPM.

If what you're trying to do is avoid powering on amplifiers when they
are muted then this is best avoided since it often creates problems with
pops and clicks due to things getting powered on and off out of the
sequence generated by DAPM.  If the amplifier is powered on before its
inputs then it will amplify any noise generaetd by the inputs when they
change power state.  This is why ASoC mute controls for amplifiers are
normally independent of their power controls.

More information about the Alsa-devel mailing list