[alsa-devel] snd-hda-intel+dmix: Disabling power save doesn't work

Takashi Iwai tiwai at suse.de
Tue May 8 07:37:31 CEST 2012

At Mon, 07 May 2012 12:19:37 +1000,
Adam Nielsen wrote:
> Hi all,
> I'm trying to hunt down a bug in either dmix or the snd-hda-intel module and 
> I'm hoping someone can give me some pointers.
> When I am playing audio and I pause playback, the codec goes into power save 
> and stops generating a SPDIF signal.  My amplifier then displays a 'signal 
> lost' message.  This is quite annoying as it takes a few seconds to sync when 
> the signal returns (during which time I can't hear the audio being played), so 
> I set "powersave=0" to disable this behaviour.
> This works as expected when stopping playback, but if I only *pause* playback 
> then the signal drops almost exactly one second later, no matter what 
> "powersave" is set to.  So of course then resuming playback means I lose a 
> couple of seconds of audio while the amplifier re-syncs to the SPDIF signal.

Check the powersave option value when this happens.  The system such as
power-utils script may change the parameter by itself.

> Setting powersave to other values only affects the time before going into 
> powersave mode after playback has stopped.  It has no effect on whether power 
> saving is activated while paused.
> The problem happens with any audio program (e.g. mplayer and xmms2.)  Setting 
> "powersave=0" means the SPDIF signal keeps going when stopping playback, but 
> it still drops after one second when pausing playback.
> It doesn't happen if I use hw:0,1 as the output device (the SPDIF signal keeps 
> going, even when paused) but as soon as I change the output device to dmix 
> then the signal drops whenever the audio is paused.

It's weird becauase the pause function isn't implemented in dmix at
all.  Thus it's application's own behavior how to pause the stream.
Usually the application stops the stream like a normal stop then
restarts from the position manually.


More information about the Alsa-devel mailing list