19 Jun
2010
19 Jun
'10
12:59 p.m.
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.