[alsa-devel] [PATCH] codecs/tlv320aic23: fix suspend/resume

Mark Brown broonie at opensource.wolfsonmicro.com
Sat Jun 19 12:59:29 CEST 2010

On Sat, Jun 19, 2010 at 10:56:54AM +0200, Eric Bénard wrote:
> The PWR register actually can't be restored at resume because its
> cached value was set to 0xFFFF when suspending and thus the initial
> state won't be restored. Thus, sound doesn't work after resume (tested
> on an i.MX27).

What is the actual problem here?

> +	/* backup PWR register */
> +	tmp = tlv320aic23_read_reg_cache(codec, TLV320AIC23_PWR);
> +	/* turn off the codec */
>  	tlv320aic23_set_bias_level(codec, SND_SOC_BIAS_OFF);

On power down we put the CODEC into BIAS_OFF...

> -	tlv320aic23_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
> -

...then we bring the power back up on resume.  If there's a problem here
it looks like the bias management functions need fixing but without
knowing what the actual problem with the system is it's not clear what
this is supposed to fix.

More information about the Alsa-devel mailing list