[alsa-devel] [ALSA] ALSA Power Management, Drivers behaving unexpectedly after suspend/resume cycle

Liam Girdwood lg at opensource.wolfsonmicro.com
Fri May 25 14:39:40 CEST 2007


On Fri, 2007-05-25 at 17:34 +0530, Nobin Mathew wrote:
> Every ALSA driver is calling these for suspend
> 
> snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
> snd_pcm_suspend_all(pcm[i]);
> 
> And for resume
> snd_power_change_state(card, SNDRV_CTL_POWER_D0)
> 
> 
> In ALSA ASoC no driver is calling any of this, even not in soc-core.c
> 
> My driver is an ASoC driver and I am also not calling these functions
> 
> Will this cause any Issue?
> 

These should probably be called to inform the upper layers of the PM
state. Can you log a bug for this in ALSA bugzilla.

Fwiw, this _shouldn't_ effect your resume. You should still see calls to
trigger for your DMA / AC97 to re-start transmission of PCM data.

PM was well tested on pxa2xx, although we did find a few applications
were not too happy resuming audio. e.g. mplayer in alsa mode, although
this was about 1 year ago and afaik it's been fixed.

It may be best to debug this using aplay and placing some debug in your
trigger functions to make sure PCM transmission is restarted correctly.

Liam



More information about the Alsa-devel mailing list